From: Deepak S <deepak.s@linux.intel.com>
Date: Wed, 31 May 2017 12:56:50 +0000 (+0000)
Subject: [SAMPLEVNF] Adding support to handle more than 16 ports
X-Git-Tag: v1.0.0~9^2
X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=10745be7adb099f559ba1b00b8d97fda59f75d62;p=samplevnf.git

[SAMPLEVNF] Adding support to handle more than 16 ports

This patch extends num_ports vnf can handle ports > 16 . This include
changes in the memory allocatiion and size of different paramters

Change-Id: Id8907327023ba863ad107bb874cfb60bd38daee5
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
---

diff --git a/VNFs/vCGNAPT/pipeline/pipeline_cgnapt_be.c b/VNFs/vCGNAPT/pipeline/pipeline_cgnapt_be.c
index a7f10dbd..2da8b5e4 100644
--- a/VNFs/vCGNAPT/pipeline/pipeline_cgnapt_be.c
+++ b/VNFs/vCGNAPT/pipeline/pipeline_cgnapt_be.c
@@ -101,7 +101,8 @@ struct rte_ct_cnxn_tracker *cgnat_cnxn_tracker;
 /***** Common Port Allocation declarations *****/
 
 struct rte_ring *port_alloc_ring[MAX_CGNAPT_SETS] = { NULL, NULL, NULL, NULL,
-						NULL, NULL, NULL, NULL };
+						NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+                                                NULL, NULL, NULL, NULL};
 const char *napt_port_alloc_ring_name[MAX_CGNAPT_SETS] = {
 	"NAPT_PORT_ALLOC_0 ",
 	"NAPT_PORT_ALLOC_1 ",
@@ -110,7 +111,15 @@ const char *napt_port_alloc_ring_name[MAX_CGNAPT_SETS] = {
 	"NAPT_PORT_ALLOC_4 ",
 	"NAPT_PORT_ALLOC_5 ",
 	"NAPT_PORT_ALLOC_6 ",
-	"NAPT_PORT_ALLOC_7 "
+	"NAPT_PORT_ALLOC_7 ",
+	"NAPT_PORT_ALLOC_8 ",
+	"NAPT_PORT_ALLOC_9 ",
+	"NAPT_PORT_ALLOC_10 ",
+	"NAPT_PORT_ALLOC_11 ",
+	"NAPT_PORT_ALLOC_12 ",
+	"NAPT_PORT_ALLOC_13 ",
+	"NAPT_PORT_ALLOC_14 ",
+	"NAPT_PORT_ALLOC_16 "
 };
 
 int vnf_set_count = -1;
diff --git a/VNFs/vCGNAPT/pipeline/pipeline_cgnapt_be.h b/VNFs/vCGNAPT/pipeline/pipeline_cgnapt_be.h
index c9b81fa8..94f19f1e 100644
--- a/VNFs/vCGNAPT/pipeline/pipeline_cgnapt_be.h
+++ b/VNFs/vCGNAPT/pipeline/pipeline_cgnapt_be.h
@@ -560,7 +560,7 @@ struct pub_ip_range {
 int create_napt_common_table(uint32_t nFlows);
 struct rte_mempool *napt_port_pool;
 
-#define MAX_CGNAPT_SETS 8
+#define MAX_CGNAPT_SETS 16
 
 /**
  * A structure defining a bulk port allocation element.
diff --git a/common/VIL/l2l3_stack/lib_arp.c b/common/VIL/l2l3_stack/lib_arp.c
index 042dd39c..0162f820 100644
--- a/common/VIL/l2l3_stack/lib_arp.c
+++ b/common/VIL/l2l3_stack/lib_arp.c
@@ -57,7 +57,7 @@
 #define is_multicast_ipv4_addr(ipv4_addr) \
 	(((rte_be_to_cpu_32((ipv4_addr)) >> 24) & 0x000000FF) == 0xE0)
 
-extern uint8_t prv_in_port_a[16];
+extern uint8_t prv_in_port_a[PIPELINE_MAX_PORT_IN];
 extern uint32_t timer_lcore;
 uint32_t arp_timeout = ARP_TIMER_EXPIRY;
 
@@ -185,6 +185,38 @@ struct table_nd_entry_data nd_entry_data_table[MAX_ND_DATA_ENTRY_TABLE] = {
 };
 
 struct lib_nd_route_table_entry lib_nd_route_table[MAX_ND_RT_ENTRY] = {
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
 	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
 	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
 	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
@@ -220,6 +252,22 @@ struct lib_nd_route_table_entry lib_nd_route_table[MAX_ND_RT_ENTRY] = {
 };
 
 struct lib_arp_route_table_entry lib_arp_route_table[MAX_ARP_RT_ENTRY] = {
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
 	{0, 0, 0, 0},
 	{0, 0, 0, 0},
 	{0, 0, 0, 0},
diff --git a/common/VIL/l2l3_stack/lib_arp.h b/common/VIL/l2l3_stack/lib_arp.h
index 33875679..e2d38419 100644
--- a/common/VIL/l2l3_stack/lib_arp.h
+++ b/common/VIL/l2l3_stack/lib_arp.h
@@ -27,8 +27,8 @@
 #define ARP_TIMER_EXPIRY 1800	 /**< in Seconds, TIMER for ARP Expiry */
 #define TIMER_MILLISECOND 1
 #define RTE_LOGTYPE_LIBARP RTE_LOGTYPE_USER1
-#define MAX_ND_RT_ENTRY 16
-#define MAX_ARP_RT_ENTRY 16
+#define MAX_ND_RT_ENTRY 32
+#define MAX_ARP_RT_ENTRY 32
 
 /**
 * A structure for Route table entries of IPv4
diff --git a/common/VIL/pipeline_arpicmp/pipeline_arpicmp_be.c b/common/VIL/pipeline_arpicmp/pipeline_arpicmp_be.c
index 7238bd1d..4ec544db 100644
--- a/common/VIL/pipeline_arpicmp/pipeline_arpicmp_be.c
+++ b/common/VIL/pipeline_arpicmp/pipeline_arpicmp_be.c
@@ -167,6 +167,38 @@ struct pipeline_arpicmp {
 
 
 struct lib_nd_route_table_entry lib_nd_route_table[MAX_ND_RT_ENTRY] = {
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
+	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
 	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
 	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
 	{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0,
@@ -204,6 +236,22 @@ struct lib_nd_route_table_entry lib_nd_route_table[MAX_ND_RT_ENTRY] = {
 struct lib_arp_route_table_entry lib_arp_route_table[MAX_ARP_RT_ENTRY] = {
 //   {0xac102814, 1, 0xac102814},
 //   {0xac106414, 0, 0xac106414},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
+	{0, 0, 0, 0},
 	{0, 0, 0, 0},
 	{0, 0, 0, 0},
 	{0, 0, 0, 0},
diff --git a/common/VIL/pipeline_arpicmp/pipeline_arpicmp_be.h b/common/VIL/pipeline_arpicmp/pipeline_arpicmp_be.h
index 2c7fce2e..cfbbe617 100644
--- a/common/VIL/pipeline_arpicmp/pipeline_arpicmp_be.h
+++ b/common/VIL/pipeline_arpicmp/pipeline_arpicmp_be.h
@@ -61,8 +61,8 @@ struct ether_addr *get_link_hw_addr(uint8_t out_port);
 #endif
 
 
-#define MAX_ARP_RT_ENTRY 16
-#define MAX_ND_RT_ENTRY 16
+#define MAX_ARP_RT_ENTRY 32
+#define MAX_ND_RT_ENTRY 32
 
 #define ND_IPV6_ADDR_SIZE 16	/* 16 Byte of IPv6 Address */
 
diff --git a/common/cscope.out b/common/cscope.out
new file mode 100644
index 00000000..54523acb
--- /dev/null
+++ b/common/cscope.out
@@ -0,0 +1,250740 @@
+cscope 15 $HOME/work/opnfv/samplevnf/common               0001447068
+	@VIL/acl/lib_acl.c
+
+16 
+	~"lib_aþ.h
+"
+
+17 
+	~"vnf_commÚ.h
+"
+
+18 
+	~<¹e_pÜt.h
+>
+
+19 
+	#ACL_LIB_DEBUG
+ 0
+
+	)
+
+20 
+¹e_aþ_f›ld_def
+ 
+	gf›ld_fÜm©_v4
+[] = {
+
+23 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_BITMASK
+,
+
+24 .
+	gsize
+ = (
+ušt8_t
+),
+
+25 .
+	gf›ld_šdex
+ = 0,
+
+26 .
+	gšput_šdex
+ = 0,
+
+27 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+28 
+off£tof
+(
+v4_hdr
+, 
+Ãxt_´Ùo_id
+),
+
+33 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+34 .
+	gsize
+ = (
+ušt32_t
+),
+
+35 .
+	gf›ld_šdex
+ = 1,
+
+36 .
+	gšput_šdex
+ = 1,
+
+37 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+38 
+off£tof
+(
+v4_hdr
+, 
+¤c_addr
+),
+
+43 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+44 .
+	gsize
+ = (
+ušt32_t
+),
+
+45 .
+	gf›ld_šdex
+ = 2,
+
+46 .
+	gšput_šdex
+ = 2,
+
+47 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+48 
+off£tof
+(
+v4_hdr
+, 
+d¡_addr
+),
+
+53 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+54 .
+	gsize
+ = (
+ušt16_t
+),
+
+55 .
+	gf›ld_šdex
+ = 3,
+
+56 .
+	gšput_šdex
+ = 3,
+
+57 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+58 (
+v4_hdr
+è+ 
+off£tof
+(
+tý_hdr
+, 
+¤c_pÜt
+),
+
+63 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+64 .
+	gsize
+ = (
+ušt16_t
+),
+
+65 .
+	gf›ld_šdex
+ = 4,
+
+66 .
+	gšput_šdex
+ = 3,
+
+67 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+68 (
+v4_hdr
+è+ 
+off£tof
+(
+tý_hdr
+, 
+d¡_pÜt
+),
+
+72 
+	#SIZEOF_VLAN_HDR
+ 4
+
+	)
+
+74 
+¹e_aþ_f›ld_def
+ 
+	gf›ld_fÜm©_vÏn_v4
+[] = {
+
+77 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_BITMASK
+,
+
+78 .
+	gsize
+ = (
+ušt8_t
+),
+
+79 .
+	gf›ld_šdex
+ = 0,
+
+80 .
+	gšput_šdex
+ = 0,
+
+81 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+82 
+SIZEOF_VLAN_HDR
+ + 
+off£tof
+(
+v4_hdr
+, 
+Ãxt_´Ùo_id
+),
+
+87 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+88 .
+	gsize
+ = (
+ušt32_t
+),
+
+89 .
+	gf›ld_šdex
+ = 1,
+
+90 .
+	gšput_šdex
+ = 1,
+
+91 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+92 
+SIZEOF_VLAN_HDR
+ + 
+off£tof
+(
+v4_hdr
+, 
+¤c_addr
+),
+
+97 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+98 .
+	gsize
+ = (
+ušt32_t
+),
+
+99 .
+	gf›ld_šdex
+ = 2,
+
+100 .
+	gšput_šdex
+ = 2,
+
+101 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+102 
+SIZEOF_VLAN_HDR
+ + 
+off£tof
+(
+v4_hdr
+, 
+d¡_addr
+),
+
+107 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+108 .
+	gsize
+ = (
+ušt16_t
+),
+
+109 .
+	gf›ld_šdex
+ = 3,
+
+110 .
+	gšput_šdex
+ = 3,
+
+111 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+112 
+SIZEOF_VLAN_HDR
+ +
+
+113 (
+v4_hdr
+è+ 
+off£tof
+(
+tý_hdr
+, 
+¤c_pÜt
+),
+
+118 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+119 .
+	gsize
+ = (
+ušt16_t
+),
+
+120 .
+	gf›ld_šdex
+ = 4,
+
+121 .
+	gšput_šdex
+ = 4,
+
+122 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+123 
+SIZEOF_VLAN_HDR
+ +
+
+124 (
+v4_hdr
+è+ 
+off£tof
+(
+tý_hdr
+, 
+d¡_pÜt
+),
+
+128 
+	#SIZEOF_QINQ_HEADER
+ 8
+
+	)
+
+130 
+¹e_aþ_f›ld_def
+ 
+	gf›ld_fÜm©_qšq_v4
+[] = {
+
+133 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_BITMASK
+,
+
+134 .
+	gsize
+ = (
+ušt8_t
+),
+
+135 .
+	gf›ld_šdex
+ = 0,
+
+136 .
+	gšput_šdex
+ = 0,
+
+137 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+138 
+SIZEOF_QINQ_HEADER
+ + 
+off£tof
+(
+v4_hdr
+, 
+Ãxt_´Ùo_id
+),
+
+143 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+144 .
+	gsize
+ = (
+ušt32_t
+),
+
+145 .
+	gf›ld_šdex
+ = 1,
+
+146 .
+	gšput_šdex
+ = 1,
+
+147 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+148 
+SIZEOF_QINQ_HEADER
+ + 
+off£tof
+(
+v4_hdr
+, 
+¤c_addr
+),
+
+153 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+154 .
+	gsize
+ = (
+ušt32_t
+),
+
+155 .
+	gf›ld_šdex
+ = 2,
+
+156 .
+	gšput_šdex
+ = 2,
+
+157 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+158 
+SIZEOF_QINQ_HEADER
+ + 
+off£tof
+(
+v4_hdr
+, 
+d¡_addr
+),
+
+163 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+164 .
+	gsize
+ = (
+ušt16_t
+),
+
+165 .
+	gf›ld_šdex
+ = 3,
+
+166 .
+	gšput_šdex
+ = 3,
+
+167 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+168 
+SIZEOF_QINQ_HEADER
+ +
+
+169 (
+v4_hdr
+è+ 
+off£tof
+(
+tý_hdr
+, 
+¤c_pÜt
+),
+
+174 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+175 .
+	gsize
+ = (
+ušt16_t
+),
+
+176 .
+	gf›ld_šdex
+ = 4,
+
+177 .
+	gšput_šdex
+ = 4,
+
+178 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+179 
+SIZEOF_QINQ_HEADER
+ +
+
+180 (
+v4_hdr
+è+ 
+off£tof
+(
+tý_hdr
+, 
+d¡_pÜt
+),
+
+184 
+¹e_aþ_f›ld_def
+ 
+	gf›ld_fÜm©_v6
+[] = {
+
+187 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_BITMASK
+,
+
+188 .
+	gsize
+ = (
+ušt8_t
+),
+
+189 .
+	gf›ld_šdex
+ = 0,
+
+190 .
+	gšput_šdex
+ = 0,
+
+191 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+192 
+off£tof
+(
+v6_hdr
+, 
+´Ùo
+),
+
+197 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+198 .
+	gsize
+ = (
+ušt32_t
+),
+
+199 .
+	gf›ld_šdex
+ = 1,
+
+200 .
+	gšput_šdex
+ = 1,
+
+201 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+202 
+off£tof
+(
+v6_hdr
+, 
+¤c_addr
+),
+
+206 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+207 .
+	gsize
+ = (
+ušt32_t
+),
+
+208 .
+	gf›ld_šdex
+ = 2,
+
+209 .
+	gšput_šdex
+ = 2,
+
+210 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+211 
+off£tof
+(
+v6_hdr
+, 
+¤c_addr
+è+ (
+	gušt32_t
+),
+
+215 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+216 .
+	gsize
+ = (
+ušt32_t
+),
+
+217 .
+	gf›ld_šdex
+ = 3,
+
+218 .
+	gšput_šdex
+ = 3,
+
+219 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+220 
+off£tof
+(
+v6_hdr
+, 
+¤c_addr
+è+ 2 * (
+	gušt32_t
+),
+
+224 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+225 .
+	gsize
+ = (
+ušt32_t
+),
+
+226 .
+	gf›ld_šdex
+ = 4,
+
+227 .
+	gšput_šdex
+ = 4,
+
+228 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+229 
+off£tof
+(
+v6_hdr
+, 
+¤c_addr
+è+ 3 * (
+	gušt32_t
+),
+
+234 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+235 .
+	gsize
+ = (
+ušt32_t
+),
+
+236 .
+	gf›ld_šdex
+ = 5,
+
+237 .
+	gšput_šdex
+ = 5,
+
+238 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+239 
+off£tof
+(
+v6_hdr
+, 
+d¡_addr
+),
+
+243 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+244 .
+	gsize
+ = (
+ušt32_t
+),
+
+245 .
+	gf›ld_šdex
+ = 6,
+
+246 .
+	gšput_šdex
+ = 6,
+
+247 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+248 
+off£tof
+(
+v6_hdr
+, 
+d¡_addr
+è+ (
+	gušt32_t
+),
+
+252 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+253 .
+	gsize
+ = (
+ušt32_t
+),
+
+254 .
+	gf›ld_šdex
+ = 7,
+
+255 .
+	gšput_šdex
+ = 7,
+
+256 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+257 
+off£tof
+(
+v6_hdr
+, 
+d¡_addr
+è+ 2 * (
+	gušt32_t
+),
+
+261 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+262 .
+	gsize
+ = (
+ušt32_t
+),
+
+263 .
+	gf›ld_šdex
+ = 8,
+
+264 .
+	gšput_šdex
+ = 8,
+
+265 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+266 
+off£tof
+(
+v6_hdr
+, 
+d¡_addr
+è+ 3 * (
+	gušt32_t
+),
+
+271 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+272 .
+	gsize
+ = (
+ušt16_t
+),
+
+273 .
+	gf›ld_šdex
+ = 9,
+
+274 .
+	gšput_šdex
+ = 9,
+
+275 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+276 (
+v6_hdr
+è+ 
+off£tof
+(
+tý_hdr
+, 
+¤c_pÜt
+),
+
+281 .
+ty³
+ = 
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+282 .
+	gsize
+ = (
+ušt16_t
+),
+
+283 .
+	gf›ld_šdex
+ = 10,
+
+284 .
+	gšput_šdex
+ = 9,
+
+285 .
+	goff£t
+ = (
+‘h”_hdr
+) +
+
+286 (
+v6_hdr
+è+ 
+off£tof
+(
+tý_hdr
+, 
+d¡_pÜt
+),
+
+290 *
+	$lib_aþ_ü—‹_aùive_¡ªdby_bË_v4
+(
+ušt8_t
+ 
+bË_num
+,
+
+291 
+ušt32_t
+ *
+libaþ_n_ruËs
+)
+
+293 
+	`´štf
+("Create LIBACL‡ctive IPV4 Tables„te_socket_id(): %i\n",
+
+294 
+	`¹e_sock‘_id
+());
+
+297 
+¹e_bË_aþ_·¿ms
+ 
+commÚ_v4_bË_libaþ_·¿ms
+ = {
+
+298 .
+Çme
+ = "LIBACLIPV4A",
+
+299 .
+n_ruËs
+ = *
+libaþ_n_ruËs
+,
+
+300 .
+n_ruË_f›lds
+ = 
+	`RTE_DIM
+(
+f›ld_fÜm©_v4
+),
+
+303 
+	`memýy
+(
+commÚ_v4_bË_libaþ_·¿ms
+.
+f›ld_fÜm©
+,
+
+304 
+f›ld_fÜm©_v4
+, (field_format_ipv4));
+
+306 
+ušt32_t
+ 
+v4_’Œy_size
+ = (
+lib_aþ_bË_’Œy
+);
+
+308 ià(
+bË_num
+ == 2)
+
+309 
+commÚ_v4_bË_libaþ_·¿ms
+.
+Çme
+ = "LIBACLIPV4B";
+
+310  
+¹e_bË_aþ_Ýs
+.
+	`f_ü—‹
+(&
+commÚ_v4_bË_libaþ_·¿ms
+,
+
+311 
+	`¹e_sock‘_id
+(),
+
+312 
+v4_’Œy_size
+);
+
+315 
+	}
+}
+
+317 *
+	$lib_aþ_ü—‹_aùive_¡ªdby_bË_v6
+(
+ušt8_t
+ 
+bË_num
+,
+
+318 
+ušt32_t
+ *
+libaþ_n_ruËs
+)
+
+320 
+	`´štf
+("Create LIBACL‡ctive IPV6 Tables„te_socket_id(): %i\n",
+
+321 
+	`¹e_sock‘_id
+());
+
+323 
+¹e_bË_aþ_·¿ms
+ 
+commÚ_v6_bË_libaþ_·¿ms
+ = {
+
+324 .
+Çme
+ = "LIBACLIPV6A",
+
+325 .
+n_ruËs
+ = *
+libaþ_n_ruËs
+,
+
+326 .
+n_ruË_f›lds
+ = 
+	`RTE_DIM
+(
+f›ld_fÜm©_v6
+),
+
+329 
+	`memýy
+(
+commÚ_v6_bË_libaþ_·¿ms
+.
+f›ld_fÜm©
+,
+
+330 
+f›ld_fÜm©_v6
+, (field_format_ipv6));
+
+332 
+ušt32_t
+ 
+v6_’Œy_size
+ = (
+lib_aþ_bË_’Œy
+);
+
+334 ià(
+bË_num
+ == 2)
+
+335 
+commÚ_v6_bË_libaþ_·¿ms
+.
+Çme
+ = "LIBACLIPV6B";
+
+336  
+¹e_bË_aþ_Ýs
+.
+	`f_ü—‹
+(&
+commÚ_v6_bË_libaþ_·¿ms
+,
+
+337 
+	`¹e_sock‘_id
+(),
+
+338 
+v6_’Œy_size
+);
+
+341 
+	}
+}
+
+342 
+	$lib_aþ_·r£_cÚfig
+(
+lib_aþ
+ *
+¶ib_aþ
+,
+
+343 *
+¬g_Çme
+, *
+¬g_v®ue
+,
+
+344 
+ušt32_t
+ *
+libaþ_n_ruËs
+)
+
+346 
+ušt32_t
+ 
+n_ruËs_´e£Á
+ = 0;
+
+347 
+ušt32_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›lds
+ = 
+	`RTE_DIM
+(
+f›ld_fÜm©_v4
+);
+
+352 
+¶ib_aþ
+->
+f›ld_fÜm©
+ = 
+f›ld_fÜm©_v4
+;
+
+353 
+¶ib_aþ
+->
+f›ld_fÜm©_size
+ = (
+f›ld_fÜm©_v4
+);
+
+354 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "n_rules") == 0) {
+
+355 ià(
+n_ruËs_´e£Á
+) {
+
+356 
+	`´štf
+("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 
+	`´štf
+("pkt_type");
+
+370 
+pkt_ty³_´e£Á
+ = 1;
+
+373 ià(
+	`¡rcmp
+(
+¬g_v®ue
+, "ipv4") == 0) {
+
+374 
+¶ib_aþ
+->
+n_ruË_f›lds
+ =
+
+375 
+	`RTE_DIM
+(
+f›ld_fÜm©_v4
+);
+
+376 
+¶ib_aþ
+->
+f›ld_fÜm©
+ = 
+f›ld_fÜm©_v4
+;
+
+377 
+¶ib_aþ
+->
+f›ld_fÜm©_size
+ =
+
+378 (
+f›ld_fÜm©_v4
+);
+
+383 ià(
+	`¡rcmp
+(
+¬g_v®ue
+, "vlan_ipv4") == 0) {
+
+384 
+¶ib_aþ
+->
+n_ruË_f›lds
+ =
+
+385 
+	`RTE_DIM
+(
+f›ld_fÜm©_vÏn_v4
+);
+
+386 
+¶ib_aþ
+->
+f›ld_fÜm©
+ =
+
+387 
+f›ld_fÜm©_vÏn_v4
+;
+
+388 
+¶ib_aþ
+->
+f›ld_fÜm©_size
+ =
+
+389 (
+f›ld_fÜm©_vÏn_v4
+);
+
+394 ià(
+	`¡rcmp
+(
+¬g_v®ue
+, "qinq_ipv4") == 0) {
+
+395 
+¶ib_aþ
+->
+n_ruË_f›lds
+ =
+
+396 
+	`RTE_DIM
+(
+f›ld_fÜm©_qšq_v4
+);
+
+397 
+¶ib_aþ
+->
+f›ld_fÜm©
+ =
+
+398 
+f›ld_fÜm©_qšq_v4
+;
+
+399 
+¶ib_aþ
+->
+f›ld_fÜm©_size
+ =
+
+400 (
+f›ld_fÜm©_qšq_v4
+);
+
+405 ià(
+	`¡rcmp
+(
+¬g_v®ue
+, "ipv6") == 0) {
+
+406 
+¶ib_aþ
+->
+n_ruË_f›lds
+ =
+
+407 
+	`RTE_DIM
+(
+f›ld_fÜm©_v6
+);
+
+408 
+¶ib_aþ
+->
+f›ld_fÜm©
+ = 
+f›ld_fÜm©_v6
+;
+
+409 
+¶ib_aþ
+->
+f›ld_fÜm©_size
+ =
+
+410 (
+f›ld_fÜm©_v6
+);
+
+414 
+	`´štf
+("other");
+
+419 
+	}
+}
+
+444 
+ušt64_t
+
+
+445 
+lib_aþ_pkt_wÜk_key
+(
+lib_aþ
+ *
+¶ib_aþ
+,
+
+446 
+¹e_mbuf
+ **
+pkts
+, 
+ušt64_t
+ 
+pkts_mask
+,
+
+447 
+ušt64_t
+ *
+pkts_drÝ_w™hout_ruË
+,
+
+448 *
+¶ib_aþ_ruË_bË_v4_aùive
+,
+
+449 *
+¶ib_aþ_ruË_bË_v6_aùive
+,
+
+450 
+p–še_aùiÚ_key
+ *
+aùiÚ_¬¿y_aùive
+,
+
+451 
+aùiÚ_couÁ”_block
+ (*
+p_aùiÚ_couÁ”_bË
+)[
+aùiÚ_¬¿y_max
+],
+
+452 
+ušt64_t
+ *
+cÚÁ¿ck_mask
+,
+
+453 
+ušt64_t
+ *
+cÚÃxi¡_mask
+,
+
+454 
+lib_aþ_v4_’abËd
+, 
+lib_aþ_v6_’abËd
+)
+
+457 
+ušt64_t
+ 
+	glookup_h™_mask
+ = 0;
+
+458 
+ušt64_t
+ 
+	glookup_h™_mask_v4
+ = 0;
+
+459 
+ušt64_t
+ 
+	glookup_h™_mask_v6
+ = 0;
+
+460 
+ušt64_t
+ 
+	glookup_miss_mask
+ = 0;
+
+461 
+	g¡©us
+;
+
+464 ià(
+	glib_aþ_v4_’abËd
+) {
+
+465 ià(
+	gACL_LIB_DEBUG
+)
+
+466 
+´štf
+("ACL IPV4 Looku°Mask Befܐð0x%"
+PRIx64
+"\n",
+
+467 
+pkts_mask
+);
+
+468 
+	g¡©us
+ = 
+¹e_bË_aþ_Ýs
+.
+f_lookup
+(
+
+469 
+¶ib_aþ_ruË_bË_v4_aùive
+,
+
+470 
+pkts
+, 
+pkts_mask
+, &
+lookup_h™_mask_v4
+,
+
+471 (**è
+¶ib_aþ
+->
+¶ib_aþ_’Œ›s_v4
+);
+
+472 ià(
+	g¡©us
+ < 0)
+
+473 
+´štf
+("Lookup failed\n");
+
+474 ià(
+	gACL_LIB_DEBUG
+)
+
+475 
+´štf
+("ACL IPV4 Looku°Mask Aᔠ= 0x%"
+PRIx64
+"\n",
+
+476 
+lookup_h™_mask_v4
+);
+
+479 ià(
+	glib_aþ_v6_’abËd
+) {
+
+480 ià(
+	gACL_LIB_DEBUG
+)
+
+481 
+´štf
+("ACL IPV6 Looku°Mask Befܐð0x%"
+PRIx64
+"\n",
+
+482 
+pkts_mask
+);
+
+483 
+	g¡©us
+ = 
+¹e_bË_aþ_Ýs
+.
+f_lookup
+(
+
+484 
+¶ib_aþ_ruË_bË_v6_aùive
+,
+
+485 
+pkts
+, 
+pkts_mask
+, &
+lookup_h™_mask_v6
+,
+
+486 (**è
+¶ib_aþ
+->
+¶ib_aþ_’Œ›s_v6
+);
+
+487 ià(
+	g¡©us
+ < 0)
+
+488 
+´štf
+("Lookup Failed\n");
+
+489 ià(
+	gACL_LIB_DEBUG
+)
+
+490 
+´štf
+("ACL IPV6 Looku°Mask Aᔠ= 0x%"
+PRIx64
+"\n",
+
+491 
+lookup_h™_mask_v6
+);
+
+495 
+	glookup_h™_mask
+ = 
+lookup_h™_mask_v4
+ | 
+lookup_h™_mask_v6
+;
+
+496 ià(
+	gACL_LIB_DEBUG
+)
+
+497 
+´štf
+("ACL Looku°Mask Aᔠ= 0x%"
+PRIx64
+"\n",
+
+498 
+lookup_h™_mask
+);
+
+500 
+	glookup_miss_mask
+ = 
+pkts_mask
+ & (~
+lookup_h™_mask
+);
+
+501 
+	gpkts_mask
+ = 
+lookup_h™_mask
+;
+
+502 *
+	gpkts_drÝ_w™hout_ruË
+ +ð
+__bužtš_pÝcouÁÎ
+(
+lookup_miss_mask
+);
+
+503 ià(
+	gACL_LIB_DEBUG
+)
+
+504 
+´štf
+("pkt_wÜk_aþ_key…kts_drÝ: %" 
+PRIu64
+ "‚_pkts: %u\n",
+
+505 *
+pkts_drÝ_w™hout_ruË
+,
+
+506 
+__bužtš_pÝcouÁÎ
+(
+lookup_miss_mask
+));
+
+508 
+ušt64_t
+ 
+	gpkts_to_´oûss
+ = 
+lookup_h™_mask
+;
+
+510 ; 
+	gpkts_to_´oûss
+;) {
+
+511 
+ušt8_t
+ 
+	gpos
+ = (ušt8_t)
+__bužtš_ùzÎ
+(
+pkts_to_´oûss
+);
+
+513 
+ušt64_t
+ 
+	gpkt_mask
+ = 1LLU << 
+pos
+;
+
+515 
+	gpkts_to_´oûss
+ &ð~
+pkt_mask
+;
+
+516 
+¹e_mbuf
+ *
+	gpkt
+ = 
+pkts
+[
+pos
+];
+
+518 
+ušt8_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 
+lib_aþ_bË_’Œy
+ *
+’Œy
+ =
+
+525 (
+lib_aþ_bË_’Œy
+ *)
+
+526 
+¶ib_aþ
+->
+¶ib_aþ_’Œ›s_v4
+[
+pos
+];
+
+527 
+ušt16_t
+ 
+	gphy_pÜt
+ = 
+’Œy
+->
+h—d
+.
+pÜt_id
+;
+
+528 
+ušt32_t
+ 
+	gaùiÚ_id
+ = 
+’Œy
+->
+aùiÚ_id
+;
+
+530 ià(
+	gACL_LIB_DEBUG
+)
+
+531 
+´štf
+("aùiÚ_id = %u\n", 
+aùiÚ_id
+);
+
+533 
+ušt32_t
+ 
+	gdsý_off£t
+ = 
+IP_START
+ + 
+IP_HDR_DSCP_OFST
+;
+
+535 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+536 
+	glib_aþ_aùiÚ_couÁ
+) {
+
+537 
+	gp_aùiÚ_couÁ”_bË
+
+
+538 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+539 [
+aùiÚ_id
+].
+	g·ck‘CouÁ
+++;
+
+540 
+	gp_aùiÚ_couÁ”_bË
+
+
+541 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+542 [
+aùiÚ_id
+].
+	gby‹CouÁ
+ +=
+
+543 
+¹e_pktmbuf_pkt_Ën
+(
+pkt
+);
+
+544 ià(
+	gACL_LIB_DEBUG
+)
+
+545 
+´štf
+("Action Count Packet Count: %"
+
+546 
+PRIu64
+ " Byte Count: %"
+
+547 
+PRIu64
+ "\n"
+
+548 , 
+p_aùiÚ_couÁ”_bË
+
+
+549 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+550 [
+aùiÚ_id
+].
+·ck‘CouÁ
+,
+
+551 
+p_aùiÚ_couÁ”_bË
+
+
+552 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+553 [
+aùiÚ_id
+].
+by‹CouÁ
+);
+
+556 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+557 
+	glib_aþ_aùiÚ_·ck‘_drÝ
+) {
+
+560 ià(
+	gACL_LIB_DEBUG
+)
+
+561 
+´štf
+("ACL before drop…kt_mask %"
+
+562 
+PRIx64
+",…kt_num %d\n",
+
+563 
+pkts_mask
+, 
+pos
+);
+
+564 
+	gpkts_mask
+ &ð~(1LLU << 
+pos
+);
+
+565 (*
+	gpkts_drÝ_w™hout_ruË
+)++;
+
+566 ià(
+	gACL_LIB_DEBUG
+)
+
+567 
+´štf
+("ACL‡á” dr݅kt_mask %"
+PRIx64
+
+
+569 
+PRIu64
+"\n", 
+pkts_mask
+, 
+pos
+,
+
+570 *
+pkts_drÝ_w™hout_ruË
+);
+
+573 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+574 
+	glib_aþ_aùiÚ_fwd
+) {
+
+575 
+	gphy_pÜt
+ = 
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+576 
+fwd_pÜt
+;
+
+577 
+	g’Œy
+->
+	gh—d
+.
+	gpÜt_id
+ = 
+phy_pÜt
+;
+
+578 ià(
+	gACL_LIB_DEBUG
+)
+
+579 
+´štf
+("Action FWD Port ID: %"
+
+580 
+PRIu16
+"\n", 
+phy_pÜt
+);
+
+583 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+584 
+	glib_aþ_aùiÚ_Çt
+) {
+
+585 
+	gphy_pÜt
+ = 
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+586 
+Çt_pÜt
+;
+
+587 
+	g’Œy
+->
+	gh—d
+.
+	gpÜt_id
+ = 
+phy_pÜt
+;
+
+588 ià(
+	gACL_LIB_DEBUG
+)
+
+589 
+´štf
+("Action NAT Port ID: %"
+
+590 
+PRIu16
+"\n", 
+phy_pÜt
+);
+
+593 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+594 
+	glib_aþ_aùiÚ_dsý
+) {
+
+597 
+ušt8_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ܙy
+ << 2;
+
+601 ià(
+	gACL_LIB_DEBUG
+)
+
+602 
+´štf
+("Action DSCP DSCP Priority: %"
+
+603 
+PRIu16
+ "\n", *
+dsý
+);
+
+606 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+607 
+	glib_aþ_aùiÚ_·ck‘_acû±
+) {
+
+608 ià(
+	gACL_LIB_DEBUG
+)
+
+609 
+´štf
+("Action Accept\n");
+
+611 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+
+
+612 & 
+	glib_aþ_aùiÚ_cÚÁ¿ck
+) {
+
+615 *
+	gcÚÁ¿ck_mask
+ |ð
+pkt_mask
+;
+
+616 ià(
+	gACL_LIB_DEBUG
+)
+
+617 
+´štf
+("ACL CTƒnabled: 0x%"
+
+618 
+PRIx64
+"…kt_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™m­
+
+
+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 
+´štf
+("Connexist ENB CT:0x%"
+
+641 
+PRIx64
+" connexist: 0x%"
+
+642 
+PRIx64
+"…kt_mask: 0x%"
+
+643 
+PRIx64
+"\n",
+
+644 *
+cÚÁ¿ck_mask
+,
+
+645 *
+cÚÃxi¡_mask
+,
+
+646 
+pkt_mask
+);
+
+651 ià(
+	ghdr_chk
+ =ð
+IPv6_HDR_VERSION
+) {
+
+653 
+lib_aþ_bË_’Œy
+ *
+’Œy
+ =
+
+654 (
+lib_aþ_bË_’Œy
+ *)
+
+655 
+¶ib_aþ
+->
+¶ib_aþ_’Œ›s_v6
+[
+pos
+];
+
+656 
+ušt16_t
+ 
+	gphy_pÜt
+ = 
+’Œy
+->
+h—d
+.
+pÜt_id
+;
+
+657 
+ušt32_t
+ 
+	gaùiÚ_id
+ = 
+’Œy
+->
+aùiÚ_id
+;
+
+659 ià(
+	gACL_LIB_DEBUG
+)
+
+660 
+´štf
+("aùiÚ_id = %u\n", 
+aùiÚ_id
+);
+
+662 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+663 
+	glib_aþ_aùiÚ_couÁ
+) {
+
+664 
+	gp_aùiÚ_couÁ”_bË
+
+
+665 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+666 [
+aùiÚ_id
+].
+	g·ck‘CouÁ
+++;
+
+667 
+	gp_aùiÚ_couÁ”_bË
+
+
+668 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+669 [
+aùiÚ_id
+].
+	gby‹CouÁ
+ +=
+
+670 
+¹e_pktmbuf_pkt_Ën
+(
+pkt
+);
+
+671 ià(
+	gACL_LIB_DEBUG
+)
+
+672 
+´štf
+("Action Count Packet Count: %"
+
+673 
+PRIu64
+ " Byte Count: %"
+
+674 
+PRIu64
+ "\n",
+
+675 
+p_aùiÚ_couÁ”_bË
+
+
+676 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+677 [
+aùiÚ_id
+].
+·ck‘CouÁ
+,
+
+678 
+p_aùiÚ_couÁ”_bË
+
+
+679 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+680 [
+aùiÚ_id
+].
+by‹CouÁ
+);
+
+683 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+684 
+	glib_aþ_aùiÚ_·ck‘_drÝ
+) {
+
+686 ià(
+	gACL_LIB_DEBUG
+)
+
+687 
+´štf
+("ACL before drop…kt_mask %"
+
+688 
+PRIx64
+",…kt_num %d\n",
+
+689 
+pkts_mask
+, 
+pos
+);
+
+690 
+	gpkts_mask
+ &ð~(1LLU << 
+pos
+);
+
+691 (*
+	gpkts_drÝ_w™hout_ruË
+)++;
+
+692 ià(
+	gACL_LIB_DEBUG
+)
+
+693 
+´štf
+("ACL‡á” dr݅kt_mask %"
+PRIx64
+
+
+695 
+PRIu64
+ "\n", 
+pkts_mask
+, 
+pos
+,
+
+696 *
+pkts_drÝ_w™hout_ruË
+);
+
+700 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+701 
+	glib_aþ_aùiÚ_fwd
+) {
+
+702 
+	gphy_pÜt
+ = 
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+703 
+fwd_pÜt
+;
+
+704 
+	g’Œy
+->
+	gh—d
+.
+	gpÜt_id
+ = 
+phy_pÜt
+;
+
+705 ià(
+	gACL_LIB_DEBUG
+)
+
+706 
+´štf
+("Action FWD Port ID: %"
+
+707 
+PRIu16
+"\n", 
+phy_pÜt
+);
+
+710 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+711 
+	glib_aþ_aùiÚ_Çt
+) {
+
+712 
+	gphy_pÜt
+ = 
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+713 
+Çt_pÜt
+;
+
+714 
+	g’Œy
+->
+	gh—d
+.
+	gpÜt_id
+ = 
+phy_pÜt
+;
+
+715 ià(
+	gACL_LIB_DEBUG
+)
+
+716 
+´štf
+("Action NAT Port ID: %"
+
+717 
+PRIu16
+"\n", 
+phy_pÜt
+);
+
+720 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+721 
+	glib_aþ_aùiÚ_dsý
+) {
+
+724 
+ušt32_t
+ 
+	gdsý_off£t
+ = 
+IP_START
+ +
+
+725 
+IP_HDR_DSCP_OFST_IPV6
+;
+
+726 
+ušt16_t
+ *
+	gdsý
+ = 
+RTE_MBUF_METADATA_UINT16_PTR
+(
+
+727 
+pkt
+, 
+dsý_off£t
+);
+
+728 
+ušt16_t
+ 
+	g‹mp
+ = *
+dsý
+;
+
+729 
+ušt16_t
+ 
+	gdsý_v®ue
+ = (
+¹e_bsw­16
+(
+‹mp
+) &
+
+731 
+ušt8_t
+ 
+	gdsý_¡Üe
+ =
+
+732 
+aùiÚ_¬¿y_aùive
+
+
+733 [
+aùiÚ_id
+].
+dsý_´iܙy
+ << 2;
+
+734 
+ušt16_t
+ 
+	gdsý_‹mp
+ = 
+dsý_¡Üe
+;
+
+736 
+	gdsý_‹mp
+ = 
+dsý_‹mp
+ << 4;
+
+737 *
+	gdsý
+ = 
+¹e_bsw­16
+(
+dsý_‹mp
+ | 
+dsý_v®ue
+);
+
+738 ià(
+	gACL_LIB_DEBUG
+)
+
+739 
+´štf
+("Action DSCP DSCP Priority: %"
+
+740 
+PRIu16
+"\n", *
+dsý
+);
+
+743 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+
+
+744 & 
+	glib_aþ_aùiÚ_·ck‘_acû±
+) {
+
+745 ià(
+	gACL_LIB_DEBUG
+)
+
+746 
+´štf
+("Action Accept\n");
+
+748 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+
+
+749 & 
+	glib_aþ_aùiÚ_cÚÁ¿ck
+) {
+
+752 *
+	gcÚÁ¿ck_mask
+ |ð
+pkt_mask
+;
+
+753 ià(
+	gACL_LIB_DEBUG
+)
+
+754 
+´štf
+("ACL CTƒnabled: 0x%"
+
+755 
+PRIx64
+"…kt_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™m­
+
+
+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 
+´štf
+("Connexist ENB CT:0x%"
+
+778 
+PRIx64
+" connexist: 0x%"
+
+779 
+PRIx64
+"…kt_mask: 0x%"
+
+780 
+PRIx64
+"\n",
+
+781 *
+cÚÁ¿ck_mask
+,
+
+782 *
+cÚÃxi¡_mask
+,
+
+783 
+pkt_mask
+);
+
+788  
+	gpkts_mask
+;
+
+813 
+ušt64_t
+
+
+814 
+lib_aþ_v4_pkt_wÜk_key
+(
+lib_aþ
+ *
+¶ib_aþ
+,
+
+815 
+¹e_mbuf
+ **
+pkts
+, 
+ušt64_t
+ 
+pkts_mask
+,
+
+816 
+ušt64_t
+ *
+pkts_drÝ_w™hout_ruË
+,
+
+817 *
+¶ib_aþ_ruË_bË_v4_aùive
+,
+
+818 
+p–še_aùiÚ_key
+ *
+aùiÚ_¬¿y_aùive
+,
+
+819 
+aùiÚ_couÁ”_block
+ (*
+p_aùiÚ_couÁ”_bË
+)[
+aùiÚ_¬¿y_max
+],
+
+820 
+ušt64_t
+ *
+cÚÁ¿ck_mask
+,
+
+821 
+ušt64_t
+ *
+cÚÃxi¡_mask
+)
+
+824 
+ušt64_t
+ 
+	glookup_h™_mask_v4
+ = 0;
+
+825 
+ušt64_t
+ 
+	glookup_miss_mask_v4
+ = 0;
+
+826 
+	g¡©us
+;
+
+828 ià(
+	gACL_LIB_DEBUG
+)
+
+829 
+´štf
+("ACL IPV4 Looku°Mask Befܐð0x%"
+PRIx64
+"\n",
+
+830 
+pkts_mask
+);
+
+831 
+	g¡©us
+ = 
+¹e_bË_aþ_Ýs
+.
+f_lookup
+(
+
+832 
+¶ib_aþ_ruË_bË_v4_aùive
+,
+
+833 
+pkts
+, 
+pkts_mask
+, &
+lookup_h™_mask_v4
+,
+
+834 (**è
+¶ib_aþ
+->
+¶ib_aþ_’Œ›s_v4
+);
+
+835 ià(
+	g¡©us
+ < 0)
+
+836 
+´štf
+("Lookup Failed\n");
+
+837 ià(
+	gACL_LIB_DEBUG
+)
+
+838 
+´štf
+("ACL IPV4 Looku°Mask Aᔠ= 0x%"
+PRIx64
+"\n",
+
+839 
+lookup_h™_mask_v4
+);
+
+840 ià(
+	gACL_LIB_DEBUG
+)
+
+841 
+´štf
+("ACL Looku°Mask Aᔠ= 0x%"
+PRIx64
+"\n",
+
+842 
+lookup_h™_mask_v4
+);
+
+844 
+	glookup_miss_mask_v4
+ = 
+pkts_mask
+ & (~
+lookup_h™_mask_v4
+);
+
+845 
+	gpkts_mask
+ = 
+lookup_h™_mask_v4
+;
+
+846 *
+	gpkts_drÝ_w™hout_ruË
+ +ð
+__bužtš_pÝcouÁÎ
+(
+lookup_miss_mask_v4
+);
+
+847 ià(
+	gACL_LIB_DEBUG
+)
+
+848 
+´štf
+("pkt_wÜk_aþ_key…kts_drÝ: %" 
+PRIu64
+ "‚_pkts: %u\n",
+
+849 *
+pkts_drÝ_w™hout_ruË
+,
+
+850 
+__bužtš_pÝcouÁÎ
+(
+lookup_miss_mask_v4
+));
+
+852 
+ušt64_t
+ 
+	gpkts_to_´oûss
+ = 
+lookup_h™_mask_v4
+;
+
+854 ; 
+	gpkts_to_´oûss
+;) {
+
+855 
+ušt8_t
+ 
+	gpos
+ = (ušt8_t)
+__bužtš_ùzÎ
+(
+pkts_to_´oûss
+);
+
+857 
+ušt64_t
+ 
+	gpkt_mask
+ = 1LLU << 
+pos
+;
+
+859 
+	gpkts_to_´oûss
+ &ð~
+pkt_mask
+;
+
+860 
+¹e_mbuf
+ *
+	gpkt
+ = 
+pkts
+[
+pos
+];
+
+864 
+lib_aþ_bË_’Œy
+ *
+	g’Œy
+ =
+
+865 (
+lib_aþ_bË_’Œy
+ *)
+
+866 
+¶ib_aþ
+->
+¶ib_aþ_’Œ›s_v4
+[
+pos
+];
+
+867 
+ušt16_t
+ 
+	gphy_pÜt
+ = 
+’Œy
+->
+h—d
+.
+pÜt_id
+;
+
+868 
+ušt32_t
+ 
+	gaùiÚ_id
+ = 
+’Œy
+->
+aùiÚ_id
+;
+
+870 ià(
+	gACL_LIB_DEBUG
+)
+
+871 
+´štf
+("aùiÚ_id = %u\n", 
+aùiÚ_id
+);
+
+873 
+ušt32_t
+ 
+	gdsý_off£t
+ = 
+IP_START
+ + 
+IP_HDR_DSCP_OFST
+;
+
+875 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+876 
+	glib_aþ_aùiÚ_couÁ
+) {
+
+877 
+	gp_aùiÚ_couÁ”_bË
+
+
+878 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+879 [
+aùiÚ_id
+].
+	g·ck‘CouÁ
+++;
+
+880 
+	gp_aùiÚ_couÁ”_bË
+
+
+881 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+882 [
+aùiÚ_id
+].
+	gby‹CouÁ
+ +=
+
+883 
+¹e_pktmbuf_pkt_Ën
+(
+pkt
+);
+
+884 ià(
+	gACL_LIB_DEBUG
+)
+
+885 
+´štf
+("Action Count Packet Count: %"
+
+886 
+PRIu64
+ " Byte Count: %"
+
+887 
+PRIu64
+ "\n"
+
+888 , 
+p_aùiÚ_couÁ”_bË
+
+
+889 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+890 [
+aùiÚ_id
+].
+·ck‘CouÁ
+,
+
+891 
+p_aùiÚ_couÁ”_bË
+
+
+892 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+893 [
+aùiÚ_id
+].
+by‹CouÁ
+);
+
+896 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+897 
+	glib_aþ_aùiÚ_·ck‘_drÝ
+) {
+
+900 ià(
+	gACL_LIB_DEBUG
+)
+
+901 
+´štf
+("ACL before drop…kt_mask %"
+
+902 
+PRIx64
+",…kt_num %d\n",
+
+903 
+pkts_mask
+, 
+pos
+);
+
+904 
+	gpkts_mask
+ &ð~(1LLU << 
+pos
+);
+
+905 (*
+	gpkts_drÝ_w™hout_ruË
+)++;
+
+906 ià(
+	gACL_LIB_DEBUG
+)
+
+907 
+´štf
+("ACL‡á” dr݅kt_mask %" 
+PRIx64
+
+
+909 
+PRIu64
+ "\n", 
+pkts_mask
+, 
+pos
+,
+
+910 *
+pkts_drÝ_w™hout_ruË
+);
+
+913 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+914 
+	glib_aþ_aùiÚ_fwd
+) {
+
+915 
+	gphy_pÜt
+ = 
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+916 
+fwd_pÜt
+;
+
+917 
+	g’Œy
+->
+	gh—d
+.
+	gpÜt_id
+ = 
+phy_pÜt
+;
+
+918 ià(
+	gACL_LIB_DEBUG
+)
+
+919 
+´štf
+("Action FWD Port ID: %"
+
+920 
+PRIu16
+"\n", 
+phy_pÜt
+);
+
+923 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+924 
+	glib_aþ_aùiÚ_Çt
+) {
+
+925 
+	gphy_pÜt
+ = 
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+926 
+Çt_pÜt
+;
+
+927 
+	g’Œy
+->
+	gh—d
+.
+	gpÜt_id
+ = 
+phy_pÜt
+;
+
+928 ià(
+	gACL_LIB_DEBUG
+)
+
+929 
+´štf
+("Action NAT Port ID: %"
+
+930 
+PRIu16
+"\n", 
+phy_pÜt
+);
+
+933 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+934 
+	glib_aþ_aùiÚ_dsý
+) {
+
+937 
+ušt8_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ܙy
+ << 2;
+
+941 ià(
+	gACL_LIB_DEBUG
+)
+
+942 
+´štf
+("Action DSCP DSCP Priority: %"
+
+943 
+PRIu16
+ "\n", *
+dsý
+);
+
+946 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+947 
+	glib_aþ_aùiÚ_·ck‘_acû±
+) {
+
+948 ià(
+	gACL_LIB_DEBUG
+)
+
+949 
+´štf
+("Action Accept\n");
+
+951 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+
+
+952 & 
+	glib_aþ_aùiÚ_cÚÁ¿ck
+) {
+
+955 *
+	gcÚÁ¿ck_mask
+ |ð
+pkt_mask
+;
+
+956 ià(
+	gACL_LIB_DEBUG
+)
+
+957 
+´štf
+("ACL CTƒnabled: 0x%"
+
+958 
+PRIx64
+"…kt_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™m­
+
+
+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 
+´štf
+("ACL Connexist ENB CT:0x%"
+
+981 
+PRIx64
+" connexist: 0x%"
+
+982 
+PRIx64
+"…kt_mask: 0x%"
+
+983 
+PRIx64
+"\n",
+
+984 *
+cÚÁ¿ck_mask
+,
+
+985 *
+cÚÃxi¡_mask
+,
+
+986 
+pkt_mask
+);
+
+991  
+	gpkts_mask
+;
+
+1016 
+ušt64_t
+
+
+1017 
+lib_aþ_v6_pkt_wÜk_key
+(
+lib_aþ
+ *
+¶ib_aþ
+,
+
+1018 
+¹e_mbuf
+ **
+pkts
+, 
+ušt64_t
+ 
+pkts_mask
+,
+
+1019 
+ušt64_t
+ *
+pkts_drÝ_w™hout_ruË
+,
+
+1020 *
+¶ib_aþ_ruË_bË_v6_aùive
+,
+
+1021 
+p–še_aùiÚ_key
+ *
+aùiÚ_¬¿y_aùive
+,
+
+1022 
+aùiÚ_couÁ”_block
+ (*
+p_aùiÚ_couÁ”_bË
+)[
+aùiÚ_¬¿y_max
+],
+
+1023 
+ušt64_t
+ *
+cÚÁ¿ck_mask
+,
+
+1024 
+ušt64_t
+ *
+cÚÃxi¡_mask
+)
+
+1027 
+ušt64_t
+ 
+	glookup_h™_mask_v6
+ = 0;
+
+1028 
+ušt64_t
+ 
+	glookup_miss_mask_v6
+ = 0;
+
+1029 
+	g¡©us
+;
+
+1032 ià(
+	gACL_LIB_DEBUG
+)
+
+1033 
+´štf
+("ACL IPV6 Looku°Mask Befܐð0x%"
+PRIx64
+"\n",
+
+1034 
+pkts_mask
+);
+
+1035 
+	g¡©us
+ = 
+¹e_bË_aþ_Ýs
+.
+f_lookup
+(
+
+1036 
+¶ib_aþ_ruË_bË_v6_aùive
+,
+
+1037 
+pkts
+, 
+pkts_mask
+, &
+lookup_h™_mask_v6
+,
+
+1038 (**è
+¶ib_aþ
+->
+¶ib_aþ_’Œ›s_v6
+);
+
+1039 ià(
+	g¡©us
+ < 0)
+
+1040 
+´štf
+("Lookup Failed\n");
+
+1041 ià(
+	gACL_LIB_DEBUG
+)
+
+1042 
+´štf
+("ACL IPV6 Looku°Mask Aᔠ= 0x%"
+PRIx64
+"\n",
+
+1043 
+lookup_h™_mask_v6
+);
+
+1045 ià(
+	gACL_LIB_DEBUG
+)
+
+1046 
+´štf
+("ACL Looku°Mask Aᔠ= 0x%"
+PRIx64
+"\n",
+
+1047 
+lookup_h™_mask_v6
+);
+
+1049 
+	glookup_miss_mask_v6
+ = 
+pkts_mask
+ & (~
+lookup_h™_mask_v6
+);
+
+1050 
+	gpkts_mask
+ = 
+lookup_h™_mask_v6
+;
+
+1051 *
+	gpkts_drÝ_w™hout_ruË
+ +ð
+__bužtš_pÝcouÁÎ
+(
+lookup_miss_mask_v6
+);
+
+1052 ià(
+	gACL_LIB_DEBUG
+)
+
+1053 
+´štf
+("pkt_wÜk_aþ_key…kts_drÝ: %" 
+PRIu64
+ "‚_pkts: %u\n",
+
+1054 *
+pkts_drÝ_w™hout_ruË
+,
+
+1055 
+__bužtš_pÝcouÁÎ
+(
+lookup_miss_mask_v6
+));
+
+1057 
+ušt64_t
+ 
+	gpkts_to_´oûss
+ = 
+lookup_h™_mask_v6
+;
+
+1059 ; 
+	gpkts_to_´oûss
+;) {
+
+1060 
+ušt8_t
+ 
+	gpos
+ = (ušt8_t)
+__bužtš_ùzÎ
+(
+pkts_to_´oûss
+);
+
+1062 
+ušt64_t
+ 
+	gpkt_mask
+ = 1LLU << 
+pos
+;
+
+1064 
+	gpkts_to_´oûss
+ &ð~
+pkt_mask
+;
+
+1065 
+¹e_mbuf
+ *
+	gpkt
+ = 
+pkts
+[
+pos
+];
+
+1068 
+lib_aþ_bË_’Œy
+ *
+	g’Œy
+ =
+
+1069 (
+lib_aþ_bË_’Œy
+ *)
+
+1070 
+¶ib_aþ
+->
+¶ib_aþ_’Œ›s_v6
+[
+pos
+];
+
+1071 
+ušt16_t
+ 
+	gphy_pÜt
+ = 
+’Œy
+->
+h—d
+.
+pÜt_id
+;
+
+1072 
+ušt32_t
+ 
+	gaùiÚ_id
+ = 
+’Œy
+->
+aùiÚ_id
+;
+
+1074 ià(
+	gACL_LIB_DEBUG
+)
+
+1075 
+´štf
+("aùiÚ_id = %u\n", 
+aùiÚ_id
+);
+
+1077 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+1078 
+	glib_aþ_aùiÚ_couÁ
+) {
+
+1079 
+	gp_aùiÚ_couÁ”_bË
+
+
+1080 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+1081 [
+aùiÚ_id
+].
+	g·ck‘CouÁ
+++;
+
+1082 
+	gp_aùiÚ_couÁ”_bË
+
+
+1083 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+1084 [
+aùiÚ_id
+].
+	gby‹CouÁ
+ +=
+
+1085 
+¹e_pktmbuf_pkt_Ën
+(
+pkt
+);
+
+1086 ià(
+	gACL_LIB_DEBUG
+)
+
+1087 
+´štf
+("Action Count Packet Count: %"
+
+1088 
+PRIu64
+ " Byte Count: %"
+
+1089 
+PRIu64
+ "\n",
+
+1090 
+p_aùiÚ_couÁ”_bË
+
+
+1091 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+1092 [
+aùiÚ_id
+].
+·ck‘CouÁ
+,
+
+1093 
+p_aùiÚ_couÁ”_bË
+
+
+1094 [
+¶ib_aþ
+->
+aùiÚ_couÁ”_šdex
+]
+
+1095 [
+aùiÚ_id
+].
+by‹CouÁ
+);
+
+1098 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+1099 
+	glib_aþ_aùiÚ_·ck‘_drÝ
+) {
+
+1101 ià(
+	gACL_LIB_DEBUG
+)
+
+1102 
+´štf
+("ACL before drop…kt_mask %"
+
+1103 
+PRIx64
+",…kt_num %d\n",
+
+1104 
+pkts_mask
+, 
+pos
+);
+
+1105 
+	gpkts_mask
+ &ð~(1LLU << 
+pos
+);
+
+1106 (*
+	gpkts_drÝ_w™hout_ruË
+)++;
+
+1107 ià(
+	gACL_LIB_DEBUG
+)
+
+1108 
+´štf
+("ACL‡á” dr݅kt_mask %" 
+PRIx64
+
+
+1110 
+PRIu64
+ "\n", 
+pkts_mask
+, 
+pos
+,
+
+1111 *
+pkts_drÝ_w™hout_ruË
+);
+
+1115 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+1116 
+	glib_aþ_aùiÚ_fwd
+) {
+
+1117 
+	gphy_pÜt
+ = 
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+1118 
+fwd_pÜt
+;
+
+1119 
+	g’Œy
+->
+	gh—d
+.
+	gpÜt_id
+ = 
+phy_pÜt
+;
+
+1120 ià(
+	gACL_LIB_DEBUG
+)
+
+1121 
+´štf
+("Action FWD Port ID: %"
+
+1122 
+PRIu16
+"\n", 
+phy_pÜt
+);
+
+1125 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+1126 
+	glib_aþ_aùiÚ_Çt
+) {
+
+1127 
+	gphy_pÜt
+ = 
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+1128 
+Çt_pÜt
+;
+
+1129 
+	g’Œy
+->
+	gh—d
+.
+	gpÜt_id
+ = 
+phy_pÜt
+;
+
+1130 ià(
+	gACL_LIB_DEBUG
+)
+
+1131 
+´štf
+("Action NAT Port ID: %"
+
+1132 
+PRIu16
+"\n", 
+phy_pÜt
+);
+
+1135 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+ &
+
+1136 
+	glib_aþ_aùiÚ_dsý
+) {
+
+1139 
+ušt32_t
+ 
+	gdsý_off£t
+ = 
+IP_START
+ +
+
+1140 
+IP_HDR_DSCP_OFST_IPV6
+;
+
+1141 
+ušt16_t
+ *
+	gdsý
+ = 
+RTE_MBUF_METADATA_UINT16_PTR
+(
+
+1142 
+pkt
+, 
+dsý_off£t
+);
+
+1143 
+ušt16_t
+ 
+	g‹mp
+ = *
+dsý
+;
+
+1144 
+ušt16_t
+ 
+	gdsý_v®ue
+ = (
+¹e_bsw­16
+(
+‹mp
+) &
+
+1146 
+ušt8_t
+ 
+	gdsý_¡Üe
+ =
+
+1147 
+aùiÚ_¬¿y_aùive
+
+
+1148 [
+aùiÚ_id
+].
+dsý_´iܙy
+ << 2;
+
+1149 
+ušt16_t
+ 
+	gdsý_‹mp
+ = 
+dsý_¡Üe
+;
+
+1151 
+	gdsý_‹mp
+ = 
+dsý_‹mp
+ << 4;
+
+1152 *
+	gdsý
+ = 
+¹e_bsw­16
+(
+dsý_‹mp
+ | 
+dsý_v®ue
+);
+
+1153 ià(
+	gACL_LIB_DEBUG
+)
+
+1154 
+´štf
+("Action DSCP DSCP Priority: %"
+
+1155 
+PRIu16
+"\n", *
+dsý
+);
+
+1158 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+
+
+1159 & 
+	glib_aþ_aùiÚ_·ck‘_acû±
+) {
+
+1160 ià(
+	gACL_LIB_DEBUG
+)
+
+1161 
+´štf
+("Action Accept\n");
+
+1163 ià(
+	gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+	gaùiÚ_b™m­
+
+
+1164 & 
+	glib_aþ_aùiÚ_cÚÁ¿ck
+) {
+
+1167 *
+	gcÚÁ¿ck_mask
+ |ð
+pkt_mask
+;
+
+1168 ià(
+	gACL_LIB_DEBUG
+)
+
+1169 
+´štf
+("ACL CTƒnabled: 0x%"
+
+1170 
+PRIx64
+"…kt_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™m­
+
+
+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 
+´štf
+("ACL Connexist ENB CT:0x%"
+
+1193 
+PRIx64
+" connexist: 0x%"
+
+1194 
+PRIx64
+"…kt_mask: 0x%"
+
+1195 
+PRIx64
+"\n",
+
+1196 *
+cÚÁ¿ck_mask
+,
+
+1197 *
+cÚÃxi¡_mask
+,
+
+1198 
+pkt_mask
+);
+
+1202  
+	gpkts_mask
+;
+
+	@VIL/acl/lib_acl.h
+
+17 #iâdeà
+__INCLUDE_ACL_LIB_H__
+
+
+18 
+	#__INCLUDE_ACL_LIB_H__
+
+
+	)
+
+20 
+	~<¡dlib.h
+>
+
+21 
+	~<¡ršg.h
+>
+
+22 
+	~<š‰y³s.h
+>
+
+23 
+	~<¹e_p–še.h
+>
+
+24 
+	~<¹e_bË_aþ.h
+>
+
+25 
+	~"¹e_úxn_Œackšg.h
+"
+
+26 
+	~"¹e_ù_tý.h
+"
+
+28 
+	#lib_aþ_aùiÚ_·ck‘_drÝ
+ 1
+
+	)
+
+29 
+	#lib_aþ_aùiÚ_·ck‘_acû±
+ 2
+
+	)
+
+30 
+	#lib_aþ_aùiÚ_Çt
+ 4
+
+	)
+
+31 
+	#lib_aþ_aùiÚ_fwd
+ 8
+
+	)
+
+32 
+	#lib_aþ_aùiÚ_couÁ
+ 16
+
+	)
+
+33 
+	#lib_aþ_aùiÚ_dsý
+ 32
+
+	)
+
+34 
+	#lib_aþ_aùiÚ_cÚÁ¿ck
+ 64
+
+	)
+
+35 
+	#lib_aþ_aùiÚ_cÚÃxi¡
+ 128
+
+	)
+
+36 
+	#aùiÚ_¬¿y_max
+ 10000
+
+	)
+
+37 
+	#lib_aþ_´iv©e_public
+ 0
+
+	)
+
+38 
+	#lib_aþ_public_´iv©e
+ 1
+
+	)
+
+39 
+	#IP_HDR_DSCP_OFST
+ 1
+
+	)
+
+40 
+	#IPv4_HDR_VERSION
+ 4
+
+	)
+
+41 
+	#IPv6_HDR_VERSION
+ 6
+
+	)
+
+42 
+	#IP_HDR_DSCP_OFST_IPV6
+ 0
+
+	)
+
+43 
+	#IP_VERSION_CHECK
+ 4
+
+	)
+
+44 
+	#IP_START
+ (
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+)
+
+	)
+
+45 
+	#DEFULT_NUM_RULE
+ (4*1024)
+
+	)
+
+49 
+	sp–še_aùiÚ_key
+ {
+
+50 
+ušt32_t
+ 
+	maùiÚ_id
+;
+
+51 
+ušt32_t
+ 
+	maùiÚ_b™m­
+;
+
+52 
+ušt32_t
+ 
+	mÇt_pÜt
+;
+
+53 
+ušt32_t
+ 
+	mfwd_pÜt
+;
+
+54 
+ušt8_t
+ 
+	mdsý_´iܙy
+;
+
+55 
+ušt8_t
+ 
+	m´iv©e_public
+;
+
+56 } 
+	g__¹e_ÿche_®igÃd
+;
+
+62 
+	saùiÚ_couÁ”_block
+ {
+
+63 
+ušt64_t
+ 
+	mby‹CouÁ
+;
+
+64 
+ušt64_t
+ 
+	m·ck‘CouÁ
+;
+
+65 } 
+	g__¹e_ÿche_®igÃd
+;
+
+70 
+	slib_aþ_bË_’Œy
+ {
+
+71 
+¹e_p–še_bË_’Œy
+ 
+	mh—d
+;
+
+72 
+ušt32_t
+ 
+	maùiÚ_id
+;
+
+76 
+	slib_aþ
+ {
+
+77 
+ušt32_t
+ 
+	mn_ruËs
+;
+
+78 
+ušt32_t
+ 
+	mn_ruË_f›lds
+;
+
+79 
+¹e_aþ_f›ld_def
+ *
+	mf›ld_fÜm©
+;
+
+80 
+ušt32_t
+ 
+	mf›ld_fÜm©_size
+;
+
+81 
+	maùiÚ_couÁ”_šdex
+;
+
+82 
+lib_aþ_bË_’Œy
+
+
+83 *
+	m¶ib_aþ_’Œ›s_v4
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+84 
+lib_aþ_bË_’Œy
+
+
+85 *
+	m¶ib_aþ_’Œ›s_v6
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+86 } 
+	g__¹e_ÿche_®igÃd
+;
+
+88 *
+lib_aþ_ü—‹_aùive_¡ªdby_bË_v4
+(
+ušt8_t
+ 
+bË_num
+,
+
+89 
+ušt32_t
+ *
+libaþ_n_ruËs
+);
+
+91 *
+lib_aþ_ü—‹_aùive_¡ªdby_bË_v6
+(
+ušt8_t
+ 
+bË_num
+,
+
+92 
+ušt32_t
+ *
+libaþ_n_ruËs
+);
+
+93 
+lib_aþ_·r£_cÚfig
+(
+lib_aþ
+ *
+¶ib_aþ
+,
+
+94 *
+¬g_Çme
+, *
+¬g_v®ue
+,
+
+95 
+ušt32_t
+ *
+libaþ_n_ruËs
+);
+
+96 
+ušt64_t
+
+
+97 
+lib_aþ_pkt_wÜk_key
+(
+lib_aþ
+ *
+¶ib_aþ
+,
+
+98 
+¹e_mbuf
+ **
+pkts
+, 
+ušt64_t
+ 
+pkts_mask
+,
+
+99 
+ušt64_t
+ *
+pkts_drÝ_w™hout_ruË
+,
+
+100 *
+¶ib_aþ_ruË_bË_v4_aùive
+,
+
+101 *
+¶ib_aþ_ruË_bË_v6_aùive
+,
+
+102 
+p–še_aùiÚ_key
+ *
+aùiÚ_¬¿y_aùive
+,
+
+103 
+aùiÚ_couÁ”_block
+ (*
+p_aùiÚ_couÁ”_bË
+)[
+aùiÚ_¬¿y_max
+],
+
+104 
+ušt64_t
+ *
+cÚÁ¿ck_mask
+,
+
+105 
+ušt64_t
+ *
+cÚÃxi¡_mask
+,
+
+106 
+lib_aþ_v4_’abËd
+, 
+lib_aþ_v6_’abËd
+);
+
+107 
+ušt64_t
+
+
+108 
+lib_aþ_v4_pkt_wÜk_key
+(
+lib_aþ
+ *
+¶ib_aþ
+,
+
+109 
+¹e_mbuf
+ **
+pkts
+, 
+ušt64_t
+ 
+pkts_mask
+,
+
+110 
+ušt64_t
+ *
+pkts_drÝ_w™hout_ruË
+,
+
+111 *
+¶ib_aþ_ruË_bË_v4_aùive
+,
+
+112 
+p–še_aùiÚ_key
+ *
+aùiÚ_¬¿y_aùive
+,
+
+113 
+aùiÚ_couÁ”_block
+ (*
+p_aùiÚ_couÁ”_bË
+)[
+aùiÚ_¬¿y_max
+],
+
+114 
+ušt64_t
+ *
+cÚÁ¿ck_mask
+,
+
+115 
+ušt64_t
+ *
+cÚÃxi¡_mask
+);
+
+116 
+ušt64_t
+
+
+117 
+lib_aþ_v6_pkt_wÜk_key
+(
+lib_aþ
+ *
+¶ib_aþ
+,
+
+118 
+¹e_mbuf
+ **
+pkts
+, 
+ušt64_t
+ 
+pkts_mask
+,
+
+119 
+ušt64_t
+ *
+pkts_drÝ_w™hout_ruË
+,
+
+120 *
+¶ib_aþ_ruË_bË_v6_aùive
+,
+
+121 
+p–še_aùiÚ_key
+ *
+aùiÚ_¬¿y_aùive
+,
+
+122 
+aùiÚ_couÁ”_block
+ (*
+p_aùiÚ_couÁ”_bË
+)[
+aùiÚ_¬¿y_max
+],
+
+123 
+ušt64_t
+ *
+cÚÁ¿ck_mask
+,
+
+124 
+ušt64_t
+ *
+cÚÃxi¡_mask
+);
+
+	@VIL/alg/lib_ftp_alg.c
+
+16 
+	~<¡dio.h
+>
+
+17 
+	~<¡dlib.h
+>
+
+18 
+	~<¡dšt.h
+>
+
+19 
+	~<¡ršg.h
+>
+
+20 
+	~<uni¡d.h
+>
+
+22 
+	~<­p.h
+>
+
+23 
+	~<¹e_commÚ.h
+>
+
+24 
+	~<¹e_m®loc.h
+>
+
+25 
+	~<¹e_mbuf.h
+>
+
+26 
+	~<¹e_.h
+>
+
+27 
+	~<¹e_by‹Üd”.h
+>
+
+28 
+	~<¹e_bË_Ím.h
+>
+
+29 
+	~<¹e_bË_hash.h
+>
+
+30 
+	~<¹e_p–še.h
+>
+
+31 
+	~<¹e_¬p.h
+>
+
+32 
+	~<¹e_icmp.h
+>
+
+33 
+	~<¹e_hash.h
+>
+
+34 
+	~<¹e_jhash.h
+>
+
+35 
+	~<¹e_cyþes.h
+>
+
+36 
+	~"p–še_cgDZ_commÚ.h
+"
+
+37 
+	~"p–še_aùiÚs_commÚ.h
+"
+
+38 
+	~"p–še_cgDZ_be.h
+"
+
+39 
+	~"hash_func.h
+"
+
+40 
+	~"lib_áp_®g.h
+"
+
+41 
+	~"vnf_commÚ.h
+"
+
+42 
+	~"p–še_commÚ_be.h
+"
+
+43 
+	~"¹e_ù_tý.h
+"
+
+44 
+	~"¹e_úxn_Œackšg.h
+"
+
+45 
+	#ALG_DEBUG
+ 1
+
+	)
+
+48 
+ušt8_t
+
+
+49 
+¹e_ù_ü—‹_úxn_hashkey
+(
+
+50 
+ušt32_t
+ *
+¤c_addr
+,
+
+51 
+ušt32_t
+ *
+d¡_addr
+,
+
+52 
+ušt16_t
+ 
+¤c_pÜt
+,
+
+53 
+ušt16_t
+ 
+d¡_pÜt
+,
+
+54 
+ušt8_t
+ 
+´Ùo
+,
+
+55 
+ušt32_t
+ *
+key
+,
+
+56 
+ušt8_t
+ 
+ty³
+);
+
+59 
+¹e_mbuf
+ *
+	glib_®g_pkt
+;
+
+60 ’um {
+	mPRIVATE
+, 
+	mPUBLIC
+};
+
+61 
+¹e_hash_·¿m‘”s
+ 
+	gáp_®g_hash_·¿ms
+ = {
+
+62 .
+Çme
+ = "FTP ALG",
+
+63 .
+	g’Œ›s
+ = 1024,
+
+64 .
+	gȣrved
+ = 0,
+
+65 .
+	gkey_Ën
+ = (
+áp_®g_key
+),
+
+66 .
+	ghash_func
+ = 
+¹e_jhash
+,
+
+67 .
+	ghash_func_š™_v®
+ = 0,
+
+70 
+¹e_hash
+ *
+	gáp_®g_hash_hªdË
+;
+
+75 
+	$lib_áp_®g_š™
+()
+
+77 
+	`´štf
+("NAT FTP ALG initialization ...\n");
+
+81 
+áp_®g_hash_hªdË
+ = 
+	`¹e_hash_ü—‹
+(&
+áp_®g_hash_·¿ms
+);
+
+83 #ifdeà
+ALGDBG
+
+
+84 ià(
+áp_®g_hash_hªdË
+ =ð
+NULL
+)
+
+85 
+	`´štf
+("FTP ALG„te_hash_create failed ...\n");
+
+87 
+	`´štf
+("ftp_alg_hash_table %p\n\n",
+
+88 (*)
+áp_®g_hash_hªdË
+);
+
+91 
+	}
+}
+
+99 
+áp_®g_bË_’Œy
+ *
+	$»Œ›ve_áp_®g_’Œy
+(
+áp_®g_key
+ 
+®g_key
+)
+
+101 
+áp_®g_bË_’Œy
+ *
+»t_®g_d©a
+ = 
+NULL
+;
+
+102 
+®g_key
+.
+fžËr1
+ = 0;
+
+103 
+®g_key
+.
+fžËr2
+ = 0;
+
+105 
+»t
+ = 
+	`¹e_hash_lookup_d©a
+(
+áp_®g_hash_hªdË
+, &
+®g_key
+,
+
+106 (**)&
+»t_®g_d©a
+);
+
+107 ià(
+»t
+ < 0) {
+
+108 #ifdeà
+ALGDBG
+
+
+109 
+	`´štf
+("alg-hash†ookup failed„et %d, EINVAL %d, ENOENT %d\n",
+
+110 
+»t
+, 
+EINVAL
+, 
+ENOENT
+);
+
+113  
+»t_®g_d©a
+;
+
+116  
+NULL
+;
+
+117 
+	}
+}
+
+124 
+	$»move_áp_®g_’Œy
+(
+ušt32_t
+ 
+addr
+, 
+ušt8_t
+ 
+pÜtid
+)
+
+129 
+áp_®g_key
+ 
+®g_key
+;
+
+130 
+®g_key
+.
+l4pÜt
+ = 
+	`¹e_bsw­16
+(
+pÜtid
+);
+
+131 
+®g_key
+.
+_add»ss
+ = 
+	`¹e_bsw­32
+(
+addr
+);
+
+132 
+®g_key
+.
+fžËr1
+ = 0;
+
+133 
+®g_key
+.
+fžËr2
+ = 0;
+
+135 #ifdeà
+ALGDBG
+
+
+136 
+	`´štf
+("»move_®g_’Œy i°%x,…܈%d\n", 
+®g_key
+.
+_add»ss
+,
+
+137 
+®g_key
+.
+l4pÜt
+);
+
+139  
+	`¹e_hash_d–_key
+(
+áp_®g_hash_hªdË
+, &
+®g_key
+);
+
+140 
+	}
+}
+
+147 
+	$pÝuϋ_áp_®g_’Œy
+(
+ušt32_t
+ 
+addr
+, 
+ušt8_t
+ 
+pÜtid
+)
+
+151 
+áp_®g_key
+ 
+®g_key
+;
+
+152 
+®g_key
+.
+l4pÜt
+ = 
+	`¹e_bsw­16
+(
+pÜtid
+);
+
+154 
+®g_key
+.
+_add»ss
+ = 
+	`¹e_bsw­32
+(
+addr
+);
+
+155 
+®g_key
+.
+fžËr1
+ = 0;
+
+156 
+®g_key
+.
+fžËr2
+ = 0;
+
+161 #ifdeà
+ALGDBG
+
+
+162 
+	`´štf
+("pÝuϋ_áp_®g_’Œy i°%x,…܈%d\n", 
+®g_key
+.
+_add»ss
+,
+
+163 
+®g_key
+.
+l4pÜt
+);
+
+166 
+áp_®g_bË_’Œy
+ *
+Ãw_®g_d©a
+ =
+
+167 
+	`»Œ›ve_áp_®g_’Œy
+(
+®g_key
+);
+
+168 ià(
+Ãw_®g_d©a
+) {
+
+169 #ifdeà
+ALGDBG
+
+
+170 
+	`´štf
+("®g_’Œyƒxi¡ %x,…܈%d\n", 
+®g_key
+.
+_add»ss
+,
+
+171 
+®g_key
+.
+l4pÜt
+);
+
+176 
+Ãw_®g_d©a
+ = (
+áp_®g_bË_’Œy
+ *)
+
+177 
+	`m®loc
+((
+Ãw_®g_d©a
+));
+
+179 
+Ãw_®g_d©a
+->
+l4pÜt
+ = 
+	`¹e_bsw­16
+(
+pÜtid
+);
+
+180 
+Ãw_®g_d©a
+->
+_add»ss
+ = 
+	`¹e_bsw­32
+(
+addr
+);
+
+181 
+	`¹e_hash_add_key_d©a
+(
+áp_®g_hash_hªdË
+, &
+®g_key
+, 
+Ãw_®g_d©a
+);
+
+183 #ifdeà
+ALGDBG
+
+
+185 
+´štf
+
+
+187 (
+®g_key
+.
+_add»ss
+ >> 24),
+
+188 ((
+®g_key
+.
+_add»ss
+ & 0x00ff0000) >> 16),
+
+189 ((
+®g_key
+.
+_add»ss
+ & 0x0000ff00) >> 8),
+
+190 ((
+®g_key
+.
+_add»ss
+ & 0x000000ff)), 
+pÜtid
+);
+
+192 
+	`puts
+("");
+
+194 
+	}
+}
+
+202 
+	$áp_®g_modify_·ylßd
+(
+
+203 
+cgDZ_bË_’Œy
+ *
+eg»ss_’Œy
+,
+
+204 *
+pÜt_¡ršg
+,
+
+205 *
+pÜt_¡ršg_Œª¦©ed
+, 
+áp_£ssiÚ_ty³
+)
+
+207 
+ušt32_t
+ 
+Œª¥Üt_
+;
+
+208 
+ušt16_t
+ 
+Œª¥Üt_pÜt
+;
+
+209 
+ušt16_t
+ 
+tmp1
+, 
+tmp2
+, 
+tmp3
+, 
+tmp4
+, 
+tmp5
+, 
+tmp6
+;
+
+210 
+ušt16_t
+ 
+Ãw_pÜt_¡ršg_Ëngth
+;
+
+212 
+ušt8_t
+ *
+b±r_public_add»ss
+;
+
+214 
+Œª¥Üt_
+ = 
+eg»ss_’Œy
+->
+d©a
+.
+pub_
+;
+
+215 
+Œª¥Üt_pÜt
+ = 
+eg»ss_’Œy
+->
+d©a
+.
+pub_pÜt
+;
+
+216 
+tmp5
+ = (
+ušt16_t
+è(
+Œª¥Üt_pÜt
+/0x100);
+
+217 
+tmp6
+ = (
+ušt16_t
+è(
+Œª¥Üt_pÜt
+ % 0x100);
+
+219 
+Œª¥Üt_
+ = 
+	`¹e_bsw­32
+(transport_ip);
+
+221 
+b±r_public_add»ss
+ = (
+ušt8_t
+ *è&
+Œª¥Üt_
+;
+
+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štf
+(
+pÜt_¡ršg_Œª¦©ed
+, 
+FTP_PASV_PARAMETER_STRING
+,
+
+230 
+FTP_PASV_RETURN_CODE
+, 
+tmp1
+, 
+tmp2
+, 
+tmp3
+, 
+tmp4
+,
+
+231 
+tmp5
+, 
+tmp6
+);
+
+233 
+	`¥rštf
+(
+pÜt_¡ršg_Œª¦©ed
+, 
+FTP_PORT_PARAMETER_STRING
+,
+
+234 
+tmp1
+, 
+tmp2
+, 
+tmp3
+, 
+tmp4
+, 
+tmp5
+, 
+tmp6
+);
+
+235 #ifdeà
+ALGDBG
+
+
+236 
+	`´štf
+("FTP ALG: FTP‚ew string: Len:%d %s\n",
+
+237 (
+ušt16_t
+è
+	`¡¾’
+(
+pÜt_¡ršg_Œª¦©ed
+)-2,
+
+238 
+pÜt_¡ršg_Œª¦©ed
+);
+
+240 
+	`´štf
+("FTP‚onranslated PASV string: Len:%d, %s\n",
+
+241 (
+ušt16_t
+)
+	`¡¾’
+(
+pÜt_¡ršg
+)-2,…ort_string);
+
+242 
+	`´štf
+("old strlen:%d‚ew strlen:%d\n",
+
+243 ()
+	`¡¾’
+(
+pÜt_¡ršg
+),
+
+244 ()
+	`¡¾’
+(
+pÜt_¡ršg_Œª¦©ed
+));
+
+247 (
+Ãw_pÜt_¡ršg_Ëngth
+ =
+
+248 (
+ušt16_t
+è
+	`¡¾’
+(
+pÜt_¡ršg_Œª¦©ed
+));
+
+249 
+	}
+}
+
+256 
+šlše
+ 
+	$áp_®g_modify_pkt_Ën
+(
+¹e_mbuf
+ *
+pkt
+)
+
+258 
+ušt16_t
+ 
+pkt_Ëngth
+ = 0;
+
+259 
+_hdr_size_by‹s
+ = 
+	`¹e_ù_g‘_IP_hdr_size
+(
+pkt
+);
+
+260 *
+hdr
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, 
+IP_START
+);
+
+262 ià(
+_hdr_size_by‹s
+ =ð
+IPv4_HEADER_SIZE
+) {
+
+263 
+v4_hdr
+ *
+ihdr4
+ = (v4_hd¸*)
+hdr
+;
+
+264 
+pkt_Ëngth
+ = 
+	`¹e_bsw­16
+(
+ihdr4
+->
+tÙ®_Ëngth
+è+ 
+ETH_HDR_SIZE
+;
+
+265 } ià(
+_hdr_size_by‹s
+ =ð
+IPv6_HEADER_SIZE
+) {
+
+266 
+v6_hdr
+ *
+ihdr6
+ = (v6_hd¸*)
+hdr
+;
+
+267 
+pkt_Ëngth
+ = 
+	`¹e_bsw­16
+(
+ihdr6
+->
+·ylßd_Ën
+) +
+
+268 
+IPv6_HEADER_SIZE
+ + 
+ETH_HDR_SIZE
+;
+
+271 
+ušt16_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_Œim
+(
+pkt
+, 
+mbuf_pkt_Ëngth
+ - 
+pkt_Ëngth
+);
+
+282 
+	`¹e_pktmbuf_­³nd
+(
+pkt
+, 
+pkt_Ëngth
+ - 
+mbuf_pkt_Ëngth
+);
+
+283 
+	}
+}
+
+292 
+ušt16_t
+ 
+	$áp_®g_g‘_IP_hdr_size
+(
+¹e_mbuf
+ *
+pkt
+)
+
+298 
+ušt8_t
+ 
+hdr_chk
+ = 
+	`RTE_MBUF_METADATA_UINT8
+(
+pkt
+, 
+IP_START
+);
+
+299 
+hdr_chk
+ = hdr_chk >> 4;
+
+301 ià(
+hdr_chk
+ =ð
+IP_VERSION_4
+)
+
+302  
+IPv4_HEADER_SIZE
+;
+
+303 ià(
+hdr_chk
+ =ð
+IP_VERSION_6
+)
+
+304  
+IPv6_HEADER_SIZE
+;
+
+308 
+	}
+}
+
+316 
+	$áp_®g_compu‹_checksums
+(
+
+317 *
+i_hdr
+,
+
+318 
+tý_hdr
+ *
+t_hdr
+)
+
+328 
+št8_t
+ 
+hdr_chk
+ = 
+	`¹e_ù_v”siÚ
+(
+i_hdr
+);
+
+329 
+t_hdr
+->
+cksum
+ = 0;
+
+331 ià(
+hdr_chk
+ =ð
+IP_VERSION_4
+) {
+
+332 
+v4_hdr
+ *
+i4_hdr
+ = (v4_hd¸*)
+i_hdr
+;
+
+333 
+i4_hdr
+->
+hdr_checksum
+ = 0;
+
+334 
+t_hdr
+->
+cksum
+ = 0;
+
+335 
+t_hdr
+->
+cksum
+ = 
+	`¹e_v4_ud±ý_cksum
+(
+i4_hdr
+,_hdr);
+
+337 #ifdeà
+ALGDBG
+
+
+338 
+	`´štf
+("cksum %x\n", 
+	`¹e_bsw­32
+(
+t_hdr
+->
+cksum
+));
+
+341 
+i4_hdr
+->
+hdr_checksum
+ = 
+	`¹e_v4_cksum
+(i4_hdr);
+
+342 } ià(
+hdr_chk
+ =ð
+IP_VERSION_6
+) {
+
+343 
+v6_hdr
+ *
+i6_hdr
+ = (v6_hd¸*)
+i_hdr
+;
+
+344 
+t_hdr
+->
+cksum
+ = 0;
+
+345 
+t_hdr
+->
+cksum
+ = 
+	`¹e_v6_ud±ý_cksum
+(
+i6_hdr
+,_hdr);
+
+347 
+	}
+}
+
+356 
+	$áp_®g_adju¡_tý_ack
+(
+¹e_mbuf
+ *
+pkt
+, 
+št16_t
+ 
+ackSeqdiff
+)
+
+359 
+ušt16_t
+ 
+_hdr_size_by‹s
+ = 
+IPv4_HEADER_SIZE
+;
+
+360 
+v4_hdr
+ *
+hdr
+ = (ipv4_hdr *)
+
+361 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, 
+IP_START
+);
+
+362 
+tý_hdr
+ *
+thdr
+ = (tcp_hdr *)
+
+363 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+364 
+IP_START
+ + 
+_hdr_size_by‹s
+);
+
+369 
+ušt32_t
+ 
+‹mp
+;
+
+370 
+‹mp
+ = 
+	`¹e_bsw­32
+(
+thdr
+->
+»cv_ack
+);
+
+372 ià(
+ackSeqdiff
+ < 0)
+
+373 
+‹mp
+ +ð
+	`abs
+(
+ackSeqdiff
+);
+
+375 
+‹mp
+ -ð
+	`abs
+(
+ackSeqdiff
+);
+
+377 
+thdr
+->
+»cv_ack
+ = 
+	`¹e_bsw­32
+(
+‹mp
+);
+
+378 
+	}
+}
+
+386 
+	$áp_®g_adju¡_tý_£q
+(
+¹e_mbuf
+ *
+pkt
+, 
+št16_t
+ 
+ackSeqdiff
+)
+
+389 
+ušt16_t
+ 
+_hdr_size_by‹s
+ = 
+IPv4_HEADER_SIZE
+;
+
+390 
+v4_hdr
+ *
+hdr
+ = (ipv4_hdr *)
+
+391 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, 
+IP_START
+);
+
+392 
+tý_hdr
+ *
+thdr
+ = (tcp_hdr *)
+
+393 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+394 
+IP_START
+ + 
+_hdr_size_by‹s
+);
+
+395 
+ušt32_t
+ 
+‹mp
+;
+
+397 
+‹mp
+ = 
+	`¹e_bsw­32
+(
+thdr
+->
+£Á_£q
+);
+
+398 ià(
+ackSeqdiff
+ < 0)
+
+399 
+‹mp
+ -ð
+	`abs
+(
+ackSeqdiff
+);
+
+401 
+‹mp
+ +ð
+	`abs
+(
+ackSeqdiff
+);
+
+403 
+thdr
+->
+£Á_£q
+ = 
+	`¹e_bsw­32
+(
+‹mp
+);
+
+404 
+	}
+}
+
+414 
+	$áp_®g_d–_tý_£qu’û
+(
+
+415 
+¹e_mbuf
+ *
+pkt
+,
+
+416 *
+pÜt_¡ršg
+,
+
+417 
+št16_t
+ 
+exi¡šg_týSeqdiff
+,
+
+418 
+ušt16_t
+ 
+Þd_pÜt_¡ršg_Ëngth
+,
+
+419 
+ušt16_t
+ 
+Ãw_pÜt_¡ršg_Ëngth
+)
+
+421 
+št16_t
+ 
+cu¼’t_£qu’û_numb”_d–
+=0;
+
+422 
+št16_t
+ 
+fš®_£qu’û_numb”_d–
+;
+
+424 
+ušt16_t
+ 
+_hdr_size_by‹s
+ = 
+IPv4_HEADER_SIZE
+;
+
+425 
+v4_hdr
+ *
+hdr
+ = (ipv4_hdr *)
+
+426 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, 
+IP_START
+);
+
+427 
+tý_hdr
+ *
+thdr
+ = (tcp_hdr *)
+
+428 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+429 
+IP_START
+ + 
+_hdr_size_by‹s
+);
+
+434 
+cu¼’t_£qu’û_numb”_d–
+ = (
+št16_t
+è(
+Ãw_pÜt_¡ršg_Ëngth
+ -
+
+435 
+Þd_pÜt_¡ršg_Ëngth
+);
+
+436 
+hdr
+->
+tÙ®_Ëngth
+ = 
+	`¹e_bsw­16
+(iphdr->total_length);
+
+438 #ifdeà
+ALGDBG
+
+
+439 
+	`´štf
+("tÙ®_Ëngth :%u\n", 
+hdr
+->
+tÙ®_Ëngth
+);
+
+441 if(
+cu¼’t_£qu’û_numb”_d–
+ < 0)
+
+442 
+hdr
+->
+tÙ®_Ëngth
+ -ð
+	`abs
+(
+cu¼’t_£qu’û_numb”_d–
+);
+
+444 
+hdr
+->
+tÙ®_Ëngth
+ +ð
+cu¼’t_£qu’û_numb”_d–
+;
+
+446 
+hdr
+->
+tÙ®_Ëngth
+ = 
+	`¹e_bsw­16
+(iphdr->total_length);
+
+447 ià(
+exi¡šg_týSeqdiff
+ !=0)
+
+448 
+	`áp_®g_adju¡_tý_£q
+(
+pkt
+,
+exi¡šg_týSeqdiff
+);
+
+449 
+fš®_£qu’û_numb”_d–
+ð
+cu¼’t_£qu’û_numb”_d–
+ + 
+exi¡šg_týSeqdiff
+;
+
+450  
+fš®_£qu’û_numb”_d–
+;
+
+451 
+	}
+}
+
+462 
+	$áp_®g_dpi
+(
+
+463 
+p–še_cgDZ
+ *
+p_Çt
+,
+
+464 
+p–še_cgDZ_’Œy_key
+ *
+Çt_’Œy_key
+,
+
+465 
+¹e_mbuf
+ *
+pkt
+,
+
+466 
+¹e_ù_úxn_Œack”
+ *
+cgÇt_úxn_Œack”
+,
+
+467 
+št32_t
+ 
+ù_pos™iÚ
+,
+
+468 
+ušt8_t
+ 
+dœeùiÚ
+)
+
+476 *
+pÜt_cmd_¡ršg
+;
+
+477 *
+pÜt_cmd_’d_¡ršg
+;
+
+478 *
+tý_h—d”_’d
+;
+
+479 *
+tý_¡¬t
+;
+
+482 
+ušt16_t
+ 
+´iv©e_pÜt_numb”
+;
+
+483 
+ušt16_t
+ 
+public_pÜt_numb”
+;
+
+484 
+ušt16_t
+ 
+1
+, 
+2
+, 
+3
+, 
+4
+, 
+pÜt1
+, 
+pÜt2
+;
+
+485 
+št16_t
+ 
+týSeqdiff
+;
+
+486 
+št16_t
+ 
+ackSeqdiff
+, 
+ackAdju¡
+;
+
+487 
+ušt32_t
+ 
+´iv©e_add»ss
+;
+
+488 
+ušt32_t
+ 
+public_add»ss
+;
+
+489 
+ušt8_t
+ *
+b±r_´iv©e_add»ss
+;
+
+491 
+pÜt_¡ršg
+[
+FTP_MAXIMUM_PORT_STRING_LENGTH
+];
+
+492 
+pÜt_¡ršg_Œª¦©ed
+[
+FTP_MAXIMUM_PORT_STRING_LENGTH
+];
+
+493 
+št16_t
+ 
+Ãw_pÜt_¡ršg_Ëngth
+;
+
+494 
+št16_t
+ 
+Þd_pÜt_¡ršg_Ëngth
+;
+
+495 
+dummy_v®ue
+;
+
+496 
+cgDZ_bË_’Œy
+ *
+eg»ss_’Œy
+, *
+šg»ss_’Œy
+;
+
+497 
+ušt32_t
+ 
+ù_key
+[10];
+
+498 
+ušt8_t
+ 
+key_dœeùiÚ
+;
+
+500 
+ušt16_t
+ 
+_hdr_size_by‹s
+ = 
+IPv4_HEADER_SIZE
+;
+
+502 
+v4_hdr
+ *
+_hdr
+ = 
+	`¹e_pktmbuf_mtod_off£t
+(
+pkt
+,
+
+503 
+v4_hdr
+ *, (
+‘h”_hdr
+));
+
+507 
+tý_hdr
+ *
+thdr
+ = 
+	`¹e_pktmbuf_mtod_off£t
+(
+pkt
+, tcp_hdr *,
+
+508 ((
+‘h”_hdr
+)+(
+v4_hdr
+)));
+
+509 
+ušt16_t
+ 
+¤c_pÜt
+ = 
+	`¹e_bsw­16
+(
+thdr
+->src_port);
+
+510 
+ušt16_t
+ 
+d¡_pÜt
+ = 
+	`¹e_bsw­16
+(
+thdr
+->dst_port);
+
+511 
+ušt8_t
+ 
+´Ùo
+ = 
+_hdr
+->
+Ãxt_´Ùo_id
+;
+
+512 
+ušt32_t
+ 
+¤c_addr
+ = 
+	`¹e_bsw­32
+(
+_hdr
+->src_addr);
+
+513 
+ušt32_t
+ 
+d¡_addr
+ = 
+	`¹e_bsw­32
+(
+_hdr
+->dst_addr);
+
+514 
+ušt32_t
+ 
+tmp_tý_·ylod_size
+;
+
+517 - 
+¤c_pÜt
+ & 
+d¡_pÜt
+ 
+checkšg
+ 
+to
+ 
+be
+ 
+moved
+ 
+äom
+ 
+cgÇt
+Ø
+dpi
+
+
+518 - 
+FÜ
+ 
+cڌÞ
+ 
+chªÃl
+
+
+519 
+fœ¡
+ 
+v®id©iÚ
+ 
+of
+ 
+týSeqdiff
+ 
+to
+ 
+be
+ 
+checked
+
+
+520 
+IF
+ < > 0
+
+521 
+	`áp_®g_tý_ack
+(è
+to
+ 
+be
+ 
+	`ÿÎed
+(
+this
+ 
+šþudes
+ 
+PORT
+
+
+522 
+»¥Ú£
+ 
+ªd
+ 
+PASV
+„e¥Ú£ 
+ack
+ 
+as
+ 
+w–l
+)
+
+523 
+R‘uº
+
+
+524 
+ELSE
+
+
+525 
+the
+ 
+pÜt
+/
+·sv
+ 
+·¿m‹r
+ 
+checkign
+ 
+to
+ 
+be
+ 
+dÚe
+
+
+526 - 
+FÜ
+ 
+d©a
+ 
+chªÃl
+
+
+527 -
+»Œeive
+ 
+ALG
+ 
+’Œy
+
+
+528 
+IF
+ 
+found
+
+
+529 - 
+»move
+ 
+the
+ 
+ALG
+ 
+’Œy
+
+
+530 
+ev’
+ 
+nÙ
+ 
+	`found
+(
+found
+ 
+ÿ£s
+ 
+too
+)
+
+531 - 
+£t
+ 
+the
+ 
+by·ss
+ 
+æag
+ 
+š
+h
+CT
+ 
+£ssiÚ
+ 
+bË
+
+
+535 #ifdeà
+ALGDBG
+
+
+537 
+	`´štf
+("á°p܈numb”: %d, %d\n", 
+¤c_pÜt
+, 
+d¡_pÜt
+);
+
+538 
+	`´štf
+("ftp TCP seq‚um diff: %d\n",
+
+539 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+
+540 
+ù_pos™iÚ
+].
+týSeqdiff
+);
+
+541 
+	`´štf
+("tcp data offset: %d\n",
+
+542 ((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2));
+
+543 
+	`´štf
+("ù…os™iÚ iÀdpi:%d\n", 
+ù_pos™iÚ
+);
+
+547 ià(
+¤c_pÜt
+ =ð21 || 
+d¡_pÜt
+ == 21) {
+
+556 
+tý_¡¬t
+ = (*)
+thdr
+;
+
+559 
+pÜt_cmd_¡ršg
+ = (* )(
+tý_¡¬t
++((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2));
+
+560 
+tý_h—d”_’d
+ = 
+pÜt_cmd_¡ršg
+;
+
+562 ià(
+dœeùiÚ
+ =ð
+PRIVATE
+) {
+
+564 #ifdeà
+ALGDBG
+
+
+565 
+	`´štf
+("In PRIVATE ");
+
+568 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+£q_þ›Á
+
+
+569 ð
+	`¹e_bsw­32
+(
+thdr
+->
+£Á_£q
+);
+
+570 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+ack_þ›Á
+
+
+571 ð
+	`¹e_bsw­32
+(
+thdr
+->
+»cv_ack
+);
+
+572 #ifdeà
+ALGDBG
+
+
+573 
+	`´štf
+("-->Seq_cli:%u, Ack_cli:%u, Len:%4d\n",
+
+574 
+	`¹e_bsw­32
+(
+thdr
+->
+£Á_£q
+),
+
+575 
+	`¹e_bsw­32
+(
+thdr
+->
+»cv_ack
+),
+
+576 (
+	`¹e_bsw­16
+(
+_hdr
+->
+tÙ®_Ëngth
+) -
+
+577 (((
+thdr
+->
+d©a_off
+ & 0xf0) >> 4) * 4)) - 20);
+
+581 #ifdeà
+ALGDBG
+
+
+582 
+	`´štf
+("In PUBLIC ");
+
+584 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+£q_£rv”
+
+
+585 ð
+	`¹e_bsw­32
+(
+thdr
+->
+£Á_£q
+);
+
+586 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+ack_£rv”
+
+
+587 ð
+	`¹e_bsw­32
+(
+thdr
+->
+»cv_ack
+);
+
+588 #ifdeà
+ALGDBG
+
+
+589 
+	`´štf
+("<--Seq_cli:%4d, Ack_cli%4d, Len:%4d\n",
+
+590 
+	`¹e_bsw­32
+(
+thdr
+->
+£Á_£q
+),„‹_bsw­32Ñhdr->
+»cv_ack
+),
+
+591 (
+_hdr
+->
+tÙ®_Ëngth
+ - (((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2))
+
+596 ià(
+	`ssÿnf
+(
+pÜt_cmd_¡ršg
+, 
+FTP_PASV_PARAMETER_STRING
+, &
+dummy_v®ue
+,
+
+597 &
+1
+, &
+2
+, &
+3
+, &
+4
+, &
+pÜt1
+, &
+pÜt2
+) ==
+
+598 
+FTP_PASV_PARAMETER_COUNT
+){
+
+600 
+	`¥rštf
+ (
+pÜt_¡ršg
+, 
+FTP_PASV_PARAMETER_STRING
+, 
+FTP_PASV_RETURN_CODE
+,
+
+601 
+1
+, 
+2
+, 
+3
+, 
+4
+, 
+pÜt1
+, 
+pÜt2
+);
+
+603 
+i
+ = 0;
+
+604 
+pÜt_cmd_¡ršg
+[
+i
+] != '\r' &&…ort_cmd_string[i+1] != '\n')
+
+605 
+i
+++;
+
+607 
+i
+ += 2;
+
+609 
+Þd_pÜt_¡ršg_Ëngth
+ = 
+i
+;
+
+611 
+´iv©e_pÜt_numb”
+ = (
+ušt16_t
+è(
+pÜt1
+ * 0x100 + 
+pÜt2
+);
+
+612 
+b±r_´iv©e_add»ss
+ = (
+ušt8_t
+ *è&
+´iv©e_add»ss
+;
+
+614 
+b±r_´iv©e_add»ss
+[3] = (
+ušt8_t
+è(
+4
+ & 0x00FF);
+
+615 
+b±r_´iv©e_add»ss
+[2] = (
+ušt8_t
+è(
+3
+ & 0x00FF);
+
+616 
+b±r_´iv©e_add»ss
+[1] = (
+ušt8_t
+è(
+2
+ & 0x00FF);
+
+617 
+b±r_´iv©e_add»ss
+[0] = (
+ušt8_t
+è(
+1
+ & 0x00FF);
+
+621 ià(
+dœeùiÚ
+ =ð
+PUBLIC
+) {
+
+628 
+	`pÝuϋ_áp_®g_’Œy
+(
+´iv©e_add»ss
+, 
+´iv©e_pÜt_numb”
+);
+
+634 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+
+635 
+£rv”_dœeùiÚ
+ = 
+SERVER_IN_PUBLIC
+;
+
+636 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+
+637 
+áp_£ssiÚ_ty³
+= 1;
+
+638 } ià(
+dœeùiÚ
+ =ð
+PRIVATE
+) {
+
+641 
+p–še_cgDZ_’Œy_key
+ 
+d©a_chªÃl_key
+;
+
+642 
+´iv©e_add»ss
+ = 
+	`¹e_bsw­32
+(private_address);
+
+643 
+d©a_chªÃl_key
+.
+
+ = 
+´iv©e_add»ss
+;
+
+644 
+d©a_chªÃl_key
+.
+pÜt
+ = 
+´iv©e_pÜt_numb”
+;
+
+646 
+d©a_chªÃl_key
+.
+pid
+ = 
+pkt
+->
+pÜt
+;
+
+653 #ifdeà
+FTP_ALG
+
+
+654 ià(
+	`add_dyÇmic_cgDZ_’Œy_®g
+((
+p–še
+ *)
+p_Çt
+,
+
+655 &
+d©a_chªÃl_key
+, &
+eg»ss_’Œy
+, &
+šg»ss_’Œy
+) == 0){
+
+657 #ifdeà
+ALGDBG
+
+
+658 
+	`´štf
+("Wrong FTP ALG…acket\n");
+
+662 
+p_Çt
+->
+DZDrݳdPktCouÁ
+++;
+
+664 #ifdeà
+CGNAPT_DEBUGGING
+
+
+665 
+p_Çt
+->
+DZDrݳdPktCouÁ4
+++;
+
+671 
+tmp_tý_·ylod_size
+ = 
+	`¹e_bsw­16
+(
+_hdr
+->
+tÙ®_Ëngth
+) -
+
+672 ((
+thdr
+->
+d©a_off
+ & 0xf0è>> 2è- 
+_hdr_size_by‹s
+;
+
+673 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+
+674 
+tý_·ylßd_size
+ = 
+tmp_tý_·ylod_size
+;
+
+677 
+	`pÝuϋ_áp_®g_’Œy
+(
+eg»ss_’Œy
+->
+d©a
+.
+pub_
+,
+
+678 
+eg»ss_’Œy
+->
+d©a
+.
+pub_pÜt
+);
+
+680 
+Ãw_pÜt_¡ršg_Ëngth
+ = 
+	`áp_®g_modify_·ylßd
+(
+eg»ss_’Œy
+,
+
+681 
+pÜt_¡ršg
+,
+
+682 
+pÜt_¡ršg_Œª¦©ed
+, 1);
+
+683 
+	`¡ºýy
+(
+tý_h—d”_’d
+, 
+pÜt_¡ršg_Œª¦©ed
+,
+
+684 
+	`¡¾’
+(
+pÜt_¡ršg_Œª¦©ed
+));
+
+685 
+týSeqdiff
+ = 
+	`áp_®g_d–_tý_£qu’û
+Ð
+pkt
+, 
+pÜt_¡ršg
+,
+
+686 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+
+
+687 [
+ù_pos™iÚ
+].
+týSeqdiff
+,
+
+688 
+Þd_pÜt_¡ršg_Ëngth
+,
+
+689 
+Ãw_pÜt_¡ršg_Ëngth
+);
+
+692 
+	`áp_®g_modify_pkt_Ën
+(
+pkt
+);
+
+699 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+
+700 
+®g_by·ss_æag
+ = 
+NO_BYPASS
+;
+
+701 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+
+702 
+týSeqdiff
+ =cpSeqdiff;
+
+703 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+
+704 
+£rv”_dœeùiÚ
+ = 
+SERVER_IN_PRIVATE
+;
+
+705 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+
+706 
+áp_£ssiÚ_ty³
+ = 1;
+
+710 } ià(
+	`ssÿnf
+(
+pÜt_cmd_¡ršg
+, 
+FTP_PORT_PARAMETER_STRING
+,
+
+711 &
+1
+, &
+2
+, &
+3
+, &
+4
+, &
+pÜt1
+, &
+pÜt2
+) ==
+
+712 
+FTP_PORT_PARAMETER_COUNT
+){
+
+714 
+i
+ = 0;
+
+715 
+ušt8_t
+ 
+pÜt_h™
+;
+
+716 
+pÜt_cmd_¡ršg
+[
+i
+] != '\r' &&
+
+717 
+pÜt_cmd_¡ršg
+[
+i
++1] != '\n')
+
+718 
+i
+++;
+
+720 
+i
+ += 2;
+
+722 
+Þd_pÜt_¡ršg_Ëngth
+ = 
+i
+;
+
+724 #ifdeà
+ALGDBG
+
+
+725 
+	`´štf
+Ð" Exi¡šg Seq Difàð%d", 
+cgÇt_úxn_Œack”
+->
+
+726 
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+týSeqdiff
+);
+
+727 
+	`´štf
+("FTP ALG: FTP PORT command†ength: %d\n",
+
+728 
+Þd_pÜt_¡ršg_Ëngth
+);
+
+731 
+´iv©e_pÜt_numb”
+ = (
+ušt16_t
+è(
+pÜt1
+ * 0x100 + 
+pÜt2
+);
+
+733 #ifdeà
+ALGDBG
+
+
+734 
+	`´štf
+("FTP ALG:…rivate…ort‚umber before swap: %u\n",
+
+735 
+´iv©e_pÜt_numb”
+);
+
+738 
+b±r_´iv©e_add»ss
+ = (
+ušt8_t
+ *è&
+´iv©e_add»ss
+;
+
+739 
+b±r_´iv©e_add»ss
+[3] = (
+ušt8_t
+è(
+4
+ & 0x00FF);
+
+740 
+b±r_´iv©e_add»ss
+[2] = (
+ušt8_t
+è(
+3
+ & 0x00FF);
+
+741 
+b±r_´iv©e_add»ss
+[1] = (
+ušt8_t
+è(
+2
+ & 0x00FF);
+
+742 
+b±r_´iv©e_add»ss
+[0] = (
+ušt8_t
+è(
+1
+ & 0x00FF);
+
+744 
+	`¥rštf
+(
+pÜt_¡ršg
+, 
+FTP_PORT_PARAMETER_STRING
+, 
+1
+, 
+2
+,
+
+745 
+3
+, 
+4
+, 
+pÜt1
+, 
+pÜt2
+);
+
+747 #ifdeà
+ALGDBG
+
+
+748 
+	`´štf
+("FTP ALG: FTP original PORT string: %d,%s\n",
+
+749 (è
+	`¡¾’
+(
+pÜt_¡ršg
+)-2,…ort_string);
+
+750 
+	`´štf
+("´v‡ddr: %x\n", 
+´iv©e_add»ss
+);
+
+754 ià(
+dœeùiÚ
+ =ð
+PUBLIC
+) {
+
+760 
+p–še_cgDZ_’Œy_key
+ 
+d©a_chªÃl_key
+;
+
+761 
+d©a_chªÃl_key
+.
+
+ = 
+´iv©e_add»ss
+;
+
+762 
+d©a_chªÃl_key
+.
+pÜt
+ = 
+´iv©e_pÜt_numb”
+;
+
+763 
+d©a_chªÃl_key
+.
+pid
+ = 0xffff;
+
+766 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+
+767 
+£rv”_dœeùiÚ
+ = 
+SERVER_IN_PRIVATE
+;
+
+768 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+
+769 
+áp_£ssiÚ_ty³
+= 0;
+
+772 #ifdeà
+ALGDBG
+
+
+773 
+	`´štf
+("<--Seq_cli:%4d, Ack_cli%4d, Len:%4d\n",
+
+774 
+	`¹e_bsw­32
+(
+thdr
+->
+£Á_£q
+),
+
+775 
+	`¹e_bsw­32
+(
+thdr
+->
+»cv_ack
+),
+
+776 (
+_hdr
+->
+tÙ®_Ëngth
+ -
+
+777 (((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2)) - 20));
+
+779 
+	`pÝuϋ_áp_®g_’Œy
+(
+´iv©e_add»ss
+, 
+´iv©e_pÜt_numb”
+);
+
+780 } ià(
+dœeùiÚ
+ =ð
+PRIVATE
+) {
+
+786 
+p–še_cgDZ_’Œy_key
+ 
+d©a_chªÃl_key
+;
+
+787 
+´iv©e_add»ss
+ = 
+	`¹e_bsw­32
+(private_address);
+
+788 
+d©a_chªÃl_key
+.
+
+ = 
+´iv©e_add»ss
+;
+
+789 
+d©a_chªÃl_key
+.
+pÜt
+ = 
+´iv©e_pÜt_numb”
+;
+
+791 
+d©a_chªÃl_key
+.
+pid
+ = 
+pkt
+->
+pÜt
+;
+
+800 #ifdeà
+FTP_ALG
+
+
+801 ià(
+	`add_dyÇmic_cgDZ_’Œy_®g
+((
+p–še
+ *)
+
+802 
+p_Çt
+, &
+d©a_chªÃl_key
+, &
+eg»ss_’Œy
+,
+
+803 &
+šg»ss_’Œy
+) == 0){
+
+805 #ifdeà
+ALGDBG
+
+
+806 
+	`´štf
+("Wrong FTP ALG…acket\n");
+
+809 
+p_Çt
+->
+DZDrݳdPktCouÁ
+++;
+
+811 #ifdeà
+CGNAPT_DEBUGGING
+
+
+812 
+p_Çt
+->
+DZDrݳdPktCouÁ4
+++;
+
+818 
+tmp_tý_·ylod_size
+ = 
+	`¹e_bsw­16
+(
+_hdr
+->
+tÙ®_Ëngth
+) -
+
+819 ((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2) -
+
+820 
+_hdr_size_by‹s
+;
+
+821 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+
+822 
+tý_·ylßd_size
+ = 
+tmp_tý_·ylod_size
+;
+
+825 
+	`pÝuϋ_áp_®g_’Œy
+(
+eg»ss_’Œy
+->
+d©a
+.
+pub_
+,
+
+826 
+eg»ss_’Œy
+->
+d©a
+.
+pub_pÜt
+);
+
+828 
+Ãw_pÜt_¡ršg_Ëngth
+ = 
+	`áp_®g_modify_·ylßd
+(
+eg»ss_’Œy
+,
+
+829 
+pÜt_¡ršg
+,
+
+830 
+pÜt_¡ršg_Œª¦©ed
+, 0);
+
+831 
+	`¡ºýy
+(
+tý_h—d”_’d
+, 
+pÜt_¡ršg_Œª¦©ed
+,
+
+832 
+	`¡¾’
+(
+pÜt_¡ršg_Œª¦©ed
+));
+
+833 
+týSeqdiff
+ = 
+	`áp_®g_d–_tý_£qu’û
+Ð
+pkt
+, 
+pÜt_¡ršg
+,
+
+834 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+
+
+835 [
+ù_pos™iÚ
+].
+týSeqdiff
+,
+
+836 
+Þd_pÜt_¡ršg_Ëngth
+,
+
+837 
+Ãw_pÜt_¡ršg_Ëngth
+);
+
+839 
+	`áp_®g_modify_pkt_Ën
+(
+pkt
+);
+
+848 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+
+849 
+®g_by·ss_æag
+ = 
+NO_BYPASS
+;
+
+850 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+
+851 
+týSeqdiff
+ =cpSeqdiff;
+
+852 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+
+853 
+£rv”_dœeùiÚ
+ = 
+SERVER_IN_PUBLIC
+;
+
+854 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+
+855 
+áp_£ssiÚ_ty³
+ = 0;
+
+857 #ifdeà
+ALGDBG
+
+
+858 
+	`´štf
+("<--Seq_cli:%4d, Ack_cli%4d, Len:%4d\n",
+
+859 
+	`¹e_bsw­32
+(
+thdr
+->
+£Á_£q
+),
+
+860 
+	`¹e_bsw­32
+(
+thdr
+->
+»cv_ack
+),
+
+861 (
+_hdr
+->
+tÙ®_Ëngth
+ -
+
+862 (((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2)) - 20));
+
+869 ià((
+ackAdju¡
+=
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+
+870 
+ù_pos™iÚ
+].
+týSeqdiff
+) != 0) {
+
+871 ià(
+dœeùiÚ
+ =ð
+PRIVATE
+) {
+
+873 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+
+
+874 [
+ù_pos™iÚ
+].
+£q_þ›Á
+ !=
+
+875 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+
+
+876 [
+ù_pos™iÚ
+].
+ack_£rv”
+) {
+
+877 
+Seqh™s
+;
+
+878 
+	`áp_®g_adju¡_tý_£q
+Ð
+pkt
+,
+ackAdju¡
+);
+
+879 
+tmp_tý_·ylod_size
+ = 
+	`¹e_bsw­16
+(
+
+880 
+_hdr
+->
+tÙ®_Ëngth
+) -
+
+881 ((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2) -
+
+882 
+_hdr_size_by‹s
+;
+
+883 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+
+
+884 [
+ù_pos™iÚ
+].
+tý_·ylßd_size
+ = 
+tmp_tý_·ylod_size
+;
+
+885 #ifdeà
+ALGDBG
+
+
+886 
+	`´štf
+("<--Seq_cli:%4d, Ack_cli%4d, Len:%4d\n",
+
+887 
+	`¹e_bsw­32
+(
+thdr
+->
+£Á_£q
+),
+
+888 
+	`¹e_bsw­32
+(
+thdr
+->
+»cv_ack
+),
+
+889 (
+_hdr
+->
+tÙ®_Ëngth
+ -(((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2))- 20));
+
+893 ià(
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+
+
+894 [
+ù_pos™iÚ
+].
+ack_£rv”
+ !=
+
+895 (
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+
+
+896 [
+ù_pos™iÚ
+].
+£q_þ›Á
+ +
+
+897 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+
+
+898 [
+ù_pos™iÚ
+].
+tý_·ylßd_size
+)) {
+
+899 
+Ackh™s
+;
+
+900 
+	`áp_®g_adju¡_tý_ack
+Ð
+pkt
+,
+ackAdju¡
+);
+
+901 #ifdeà
+ALGDBG
+
+
+902 
+	`´štf
+("<--Seq_cli:%4d, Ack_cli%4d, Len:%4d\n",
+
+903 
+	`¹e_bsw­32
+(
+thdr
+->
+£Á_£q
+),
+
+904 
+	`¹e_bsw­32
+(
+thdr
+->
+»cv_ack
+),
+
+905 (
+_hdr
+->
+tÙ®_Ëngth
+ -(((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2))- 20));
+
+914 #ifdeà
+ALGDBG
+
+
+915 
+	`´štf
+("In Data Channel \n");
+
+917 
+	`»move_áp_®g_’Œy
+ (
+d¡_addr
+,
+d¡_pÜt
+);
+
+918 
+cgÇt_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+ù_pos™iÚ
+].
+®g_by·ss_æag
+ = 
+BYPASS
+;
+
+920 
+	}
+}
+
+	@VIL/alg/lib_ftp_alg.h
+
+16 #iâdeà
+__INCLUDE_LIB_FTP_ALG_H__
+
+
+17 
+	#__INCLUDE_LIB_FTP_ALG_H__
+
+
+	)
+
+18 
+	~"¹e_‘h”.h
+"
+
+19 
+	~"¹e_ù_tý.h
+"
+
+21 
+	#META_DATA_OFFSET
+ 128
+
+	)
+
+22 
+	#ETHERNET_START
+ (
+META_DATA_OFFSET
+ + 
+RTE_PKTMBUF_HEADROOM
+)
+
+	)
+
+23 
+	#ETH_HDR_SIZE
+ 14
+
+	)
+
+24 
+	#IP_START
+ (
+ETHERNET_START
+ + 
+ETH_HDR_SIZE
+)
+
+	)
+
+25 
+	#PROTOCOL_START
+ (
+IP_START
+ + 9)
+
+	)
+
+26 
+	#TCP_START
+ (
+IP_START
+ + 
+IP_V4_HEADER_SIZE
+)
+
+	)
+
+27 
+	#TCP_MIN_HDR_SIZE
+ 20
+
+	)
+
+29 
+	#RTE_TCP_PROTO_ID
+ 6
+
+	)
+
+30 
+	#RTE_SP_DEFAULT_TTL
+ 64
+
+	)
+
+32 
+	#RTE_SYNPROXY_MAX_SPOOFED_PKTS
+ 64
+
+	)
+
+34 
+	#RTE_TCP_SYN
+ 0x02
+
+	)
+
+35 
+	#RTE_TCP_ACK
+ 0x10
+
+	)
+
+36 
+	#RTE_TCP_SYN_ACK
+ (
+RTE_TCP_SYN
+ | 
+RTE_TCP_ACK
+)
+
+	)
+
+37 
+	#IP_VERSION_4
+ 4
+
+	)
+
+38 
+	#IP_VERSION_6
+ 6
+
+	)
+
+39 
+	#IPv4_HEADER_SIZE
+ 20
+
+	)
+
+40 
+	#IPv6_HEADER_SIZE
+ 40
+
+	)
+
+44 
+	eáp_®g_by·ss
+ {
+
+45 
+	mNO_BYPASS
+,
+
+46 
+	mBYPASS
+
+
+49 
+	eáp_®g_mode
+ {
+
+50 
+	mFTP_ALG_PORT
+,
+
+51 
+	mFTP_ALG_PASV
+
+
+53 
+	eáp_®g_dœeùiÚ
+ {
+
+54 
+	mSERVER_IN_PRIVATE
+,
+
+55 
+	mSERVER_IN_PUBLIC
+
+
+57 
+	ephy_pÜt
+ {
+
+58 
+	mPRIVATE_PORT
+,
+
+59 
+	mPUBLIC_PORT
+
+
+62 
+	sáp_®g_key
+ {
+
+63 
+ušt32_t
+ 
+	m_add»ss
+;
+
+64 
+ušt16_t
+ 
+	ml4pÜt
+;
+
+65 
+ušt8_t
+ 
+	mfžËr1
+;
+
+66 
+ušt8_t
+ 
+	mfžËr2
+;
+
+68 
+	sáp_®g_bË_’Œy
+ {
+
+69 
+ušt32_t
+ 
+	m_add»ss
+;
+
+70 
+ušt16_t
+ 
+	ml4pÜt
+;
+
+71 
+ušt8_t
+ 
+	máp_®g_mode
+;
+
+72 
+ušt8_t
+ 
+	máp_®g_dœeùiÚ
+;
+
+73 
+ušt32_t
+ 
+	m£ssiÚ_id
+;
+
+74 
+ušt8_t
+ 
+	m®g_by·ss_æag
+;
+
+75 
+ušt8_t
+ 
+	mdummy
+;
+
+76 
+ušt8_t
+ 
+	mdummy1
+;
+
+78 } 
+	g__¹e_ÿche_®igÃd
+;
+
+80 
+	#FTP_SERVER_PORT
+ 21
+
+	)
+
+81 
+	#FTP_PORT_STRING
+ "PORT"
+
+	)
+
+82 
+	#FTP_PORT_PARAMETER_STRING
+ "PORT %hu,%hu,%hu,%hu,%hu,%hu\r\n"
+
+	)
+
+83 
+	#FTP_PORT_PARAMETER_COUNT
+ 6
+
+	)
+
+84 
+	#FTP_PORT_RESPONSE_STRING
+ "200 PORT commªd sucûssful.\r\n"
+
+	)
+
+85 
+	#FTP_PORT_STRING_END_MARKER
+ '\n'
+
+	)
+
+86 
+	#FTP_MAXIMUM_PORT_STRING_LENGTH
+ 60
+
+	)
+
+87 
+	#FTP_PASV_STRING
+ "PASV"
+
+	)
+
+88 
+	#FTP_PASV_PARAMETER_STRING
+ "%d EÁ”šg PassivMod(%hu,%hu,%hu,%hu,%hu,%hu)\r\n"
+
+	)
+
+89 
+	#FTP_PASV_PARAMETER_COUNT
+ 7
+
+	)
+
+90 
+	#FTP_PASV_STRING_END_MARKER
+ '\n'
+
+	)
+
+91 
+	#FTP_PASV_RETURN_CODE
+ 227
+
+	)
+
+93 
+áp_®g_dpi
+(
+
+94 
+p–še_cgDZ
+ *
+p_Çt
+,
+
+95 
+p–še_cgDZ_’Œy_key
+ *
+Çt_’Œy_key
+,
+
+96 
+¹e_mbuf
+ *
+pkt
+,
+
+97 
+¹e_ù_úxn_Œack”
+ *
+cgÇt_úxn_Œack”
+,
+
+98 
+št32_t
+ 
+ù_pos™iÚ
+,
+
+99 
+ušt8_t
+ 
+dœeùiÚ
+);
+
+100 
+lib_áp_®g_š™
+();
+
+101 
+št8_t
+ 
+¹e_ù_v”siÚ
+(*
+i_hdr
+);
+
+	@VIL/alg/lib_sip_alg.c
+
+17 
+	~<¡dio.h
+>
+
+18 
+	~<¡dlib.h
+>
+
+19 
+	~<¡dšt.h
+>
+
+20 
+	~<¡ršg.h
+>
+
+21 
+	~<uni¡d.h
+>
+
+22 
+	~<¬·/š‘.h
+>
+
+23 
+	~<m©h.h
+>
+
+25 
+	~<­p.h
+>
+
+26 
+	~<¹e_commÚ.h
+>
+
+27 
+	~<¹e_m®loc.h
+>
+
+28 
+	~<¹e_.h
+>
+
+29 
+	~<¹e_udp.h
+>
+
+30 
+	~<¹e_by‹Üd”.h
+>
+
+31 
+	~<¹e_bË_Ím.h
+>
+
+32 
+	~<¹e_bË_hash.h
+>
+
+33 
+	~<¹e_p–še.h
+>
+
+34 
+	~<¹e_¬p.h
+>
+
+35 
+	~<¹e_icmp.h
+>
+
+36 
+	~<¹e_hash.h
+>
+
+37 
+	~<¹e_jhash.h
+>
+
+38 
+	~<¹e_cyþes.h
+>
+
+40 
+	~"p–še_aùiÚs_commÚ.h
+"
+
+41 
+	~"hash_func.h
+"
+
+42 
+	~"lib_s_®g.h
+"
+
+43 
+	~"vnf_commÚ.h
+"
+
+44 
+	~"p–še_commÚ_be.h
+"
+
+46 
+	#SIP_ALG_SIP
+ "SIP"
+
+	)
+
+47 
+	#SIP_ALG_200_OK
+ "200 OK"
+
+	)
+
+48 
+	#SIP_ALG_INVITE
+ "INVITE"
+
+	)
+
+49 
+	#SIP_ALG_BYE
+ "BYE"
+
+	)
+
+50 
+	#SIP_ALG_TRYING
+ "100 Tryšg"
+
+	)
+
+51 
+	#SIP_ALG_RINGING
+ "180 Ršgšg"
+
+	)
+
+52 
+	#SIP_ALG_ACK
+ "ACK"
+
+	)
+
+53 
+	#SIP_ALG_CONTACT
+ "Cڏù"
+
+	)
+
+54 
+	#SIP_ALG_CONTENT_LEN
+ "CڋÁ-L’gth"
+
+	)
+
+55 
+	#SIP_ALG_VIA
+ "VŸ"
+
+	)
+
+56 
+	#SIP_ALG_FROM
+ "From"
+
+	)
+
+57 
+	#SIP_ALG_TO
+ "To"
+
+	)
+
+58 
+	#SIP_ALG_CALLID
+ "C®l-ID"
+
+	)
+
+59 
+	#SIP_ALG_RTP
+ "RTP"
+
+	)
+
+60 
+	#SIP_ALG_RTCP
+ "a=RTCP"
+
+	)
+
+61 
+	#SIP_ALG_CANCEL
+ "CANCEL"
+
+	)
+
+62 
+	#SIP_ALG_CONTYPE
+ "CڋÁ-Ty³"
+
+	)
+
+63 
+	#SIP_ALG_APPSDP
+ "­¶iÿtiÚ/sdp"
+
+	)
+
+64 
+	#SIP_ALG_CSEQ
+ "CSeq"
+
+	)
+
+65 
+	#SIP_ALG_AUDIO
+ "m÷udio"
+
+	)
+
+66 
+	#SIP_ALG_DOUBLE_CRLF
+ "\r\n\r\n"
+
+	)
+
+67 
+	#SIP_ALG_CRLF
+ "\r\n"
+
+	)
+
+68 
+	#SIP_ALG_AT
+ "@"
+
+	)
+
+69 
+	#SIP_ALG_GREAT
+ ">"
+
+	)
+
+70 
+	#SIP_ALG_OWNER
+ "o="
+
+	)
+
+71 
+	#SIP_ALG_IPV4
+ "IP4"
+
+	)
+
+72 
+	#SIP_ALG_CONN
+ "c="
+
+	)
+
+73 
+	#SIP_ALG_REMOTE_PARTY_ID
+ "RemÙe-P¬ty-ID"
+
+	)
+
+74 
+	#SIP_ALG_SPACE
+ " "
+
+	)
+
+75 
+	#SIP_ALG_SEMICOLON
+ ";"
+
+	)
+
+77 
+	#SIP_DEFAULT_L4PORT
+ 5060
+
+	)
+
+79 
+	#SIP_ALG_INVITE_MSGTYPE
+ 1
+
+	)
+
+80 
+	#SIP_ALG_BYE_MSGTYPE
+ 2
+
+	)
+
+81 
+	#SIP_ALG_200_OK_INVITE_MSGTYPE
+ 3
+
+	)
+
+82 
+	#SIP_ALG_200_OK_BYE_MSGTYPE
+ 4
+
+	)
+
+83 
+	#SIP_ALG_TRYING_RINGING_MSGTYPE
+ 5
+
+	)
+
+84 
+	#SIP_ALG_ACK_MSGTYPE
+ 6
+
+	)
+
+86 
+	#MAX_NUM_SIP_ALG_ENTRIES
+ 16384
+
+	)
+
+88 
+	#SIP_ALG_VIA_FIELD_IPADDR
+ 14
+
+	)
+
+89 
+	#SIP_ALG_CTAC_FIELD_IPADDR
+ 7
+
+	)
+
+91 
+	#ADDRESS_PORT_STRING
+ 1
+
+	)
+
+92 
+	#PORT_STRING
+ 2
+
+	)
+
+94 
+	#MAX_ADDR_PORT_SIZE
+ 30
+
+	)
+
+95 
+	#MAX_ADDR_SIZE
+ 20
+
+	)
+
+96 
+	#MAX_PORT_SIZE
+ 10
+
+	)
+
+97 
+	#MAX_SIP_UDP_MSG_SIZE
+ 2000
+
+	)
+
+99 
+	#ALG_DEBUG
+ 0
+
+	)
+
+101 ’um { 
+	mFALSE
+, 
+	mTRUE
+ };
+
+103 
+¹e_mempoÞ
+ *
+	glib_®g_pktmbuf_tx_poÞ
+;
+
+105 
+¹e_mbuf
+ *
+	glib_®g_pkt
+;
+
+107 
+¹e_hash_·¿m‘”s
+ 
+	gs_®g_hash_·¿ms
+ = {
+
+108 .
+Çme
+ = 
+NULL
+,
+
+109 .
+	g’Œ›s
+ = 
+MAX_NUM_SIP_ALG_ENTRIES
+,
+
+110 .
+	gȣrved
+ = 0,
+
+111 .
+	gkey_Ën
+ = (
+s_®g_key
+),
+
+112 .
+	ghash_func
+ = 
+¹e_jhash
+,
+
+113 .
+	ghash_func_š™_v®
+ = 0,
+
+114 .
+	gexŒa_æag
+ = 1,
+
+117 
+¹e_hash
+ *
+	gs_®g_hash_bË
+;
+
+119 
+s_®g_bË_’Œy
+ *
+	gs_®g_bË
+[
+MAX_NUM_SIP_ALG_ENTRIES
+];
+
+121 *
+s_®g_´oûss
+(
+¹e_mbuf
+ *
+pkt
+,
+
+122 
+ušt16_t
+ 
+pkt_dœeùiÚ
+, ušt16_ˆ
+ÿÎ_dœeùiÚ
+,
+
+123 
+ušt16_t
+ 
+msgTy³
+, 
+ušt32_t
+ 
+modIp
+,
+
+124 
+ušt16_t
+ 
+modL4PÜt
+, 
+ušt32_t
+ 
+pubIp
+,
+
+125 
+ušt16_t
+ 
+pubL4PÜt
+, ušt16_ˆ
+modRPÜt
+,
+
+126 
+ušt16_t
+ 
+modRtýPÜt
+, ušt16_ˆ*
+diffModSL’
+);
+
+127 *
+g‘SC®lIdSŒ
+(*
+pMsg
+);
+
+128 *
+ÇtSAlgModifyPaylßdAddrPÜt
+(*
+pSMsg
+, **
+pSMsgEnd
+,
+
+129 
+ušt32_t
+ 
+ÞdSŒL’
+, ušt32_ˆ*
+diffL’
+,
+
+130 
+ušt32_t
+ 
+pub_
+, 
+ušt16_t
+ 
+pub_pÜt
+,
+
+131 
+ušt32_t
+ 
+ty³
+);
+
+132 *
+ÇtSAlgAdju¡Msg
+(*
+pSMsg
+, **
+pSMsgEnd
+,
+
+133 
+ušt32_t
+ 
+ÃwSŒL’
+, ušt32_ˆ
+ÞdSŒL’
+);
+
+137 
+	$lib_s_®g_š™
+()
+
+139 *
+s
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 64, 
+RTE_CACHE_LINE_SIZE
+);;
+
+140 
+sock‘id
+ = 0;
+
+142 if(!
+s
+){
+
+143 
+	`´štf
+("NAT SIP ALG Init failed\n");
+
+146 
+	`¢´štf
+(
+s
+, 
+	`¡¾’
+(s), "v4_s_®g_hash_%d", 
+sock‘id
+);
+
+147 
+	`´štf
+("NAT SIP ALG initialization ...\n");
+
+150 
+s_®g_hash_·¿ms
+.
+sock‘_id
+ = 
+SOCKET_ID_ANY
+;
+
+151 
+s_®g_hash_·¿ms
+.
+Çme
+ = 
+s
+;
+
+152 
+s_®g_hash_bË
+ = 
+	`¹e_hash_ü—‹
+(&
+s_®g_hash_·¿ms
+);
+
+154 ià(
+s_®g_hash_bË
+ =ð
+NULL
+) {
+
+155 
+	`´štf
+("SIP ALG„te_hash_create failed. socket %d ...\n",
+
+156 
+s_®g_hash_·¿ms
+.
+sock‘_id
+);
+
+157 
+	`¹e_ex™
+(0, "SIP ALG„te_hash_create failed");
+
+159 
+	`´štf
+("s_®g_hash_bË %p\n\n", (*)
+s_®g_hash_bË
+);
+
+162 
+	}
+}
+
+164 *
+™ß
+(
+n
+);
+
+165 *
+	$™ß
+(
+n
+)
+
+167 
+Ën
+ = 
+n
+ =ð0 ? 1 : 
+	`æoÜ
+(
+	`log10l
+(
+	`Ïbs
+(n))) + 1;
+
+169 ià(
+n
+ < 0)
+
+170 
+Ën
+++;
+
+172 *
+buf
+ = 
+	`ÿÎoc
+((), 
+Ën
+ + 1);
+
+173 if(
+buf
+ !ð
+NULL
+)
+
+174 
+	`¢´štf
+(
+buf
+, 
+Ën
+ + 1, "%ld", 
+n
+);
+
+175  
+buf
+;
+
+176 
+	}
+}
+
+178 
+s_®g_bË_’Œy
+ *
+»Œ›ve_s_®g_’Œy
+(
+
+179 
+s_®g_key
+ *
+®g_key
+);
+
+181 
+s_®g_bË_’Œy
+ *
+	$»Œ›ve_s_®g_’Œy
+(
+
+182 
+s_®g_key
+ *
+®g_key
+)
+
+184 
+s_®g_bË_’Œy
+ *
+s_®g_d©a
+ = 
+NULL
+;
+
+186 
+»t
+ = 
+	`¹e_hash_lookup
+(
+s_®g_hash_bË
+, 
+®g_key
+);
+
+188 ià(
+»t
+ < 0) {
+
+189 #ifdeà
+ALGDBG
+
+
+190 
+	`´štf
+("alg-hash†ookup failed„et %d, "
+
+192 
+»t
+, 
+EINVAL
+, 
+ENOENT
+);
+
+195 
+s_®g_d©a
+ = 
+s_®g_bË
+[
+»t
+];
+
+196  
+s_®g_d©a
+;
+
+199  
+NULL
+;
+
+200 
+	}
+}
+
+203 
+	$»move_s_®g_’Œy
+(
+ušt32_t
+ 
+addr
+, 
+ušt16_t
+ 
+pÜtid
+)
+
+205 
+s_®g_key
+ 
+®g_key
+;
+
+206 *
+s_®g_’Œy_d©a
+;
+
+207 
+»t
+;
+
+209 
+®g_key
+.
+l4pÜt
+ = 
+pÜtid
+;
+
+210 
+®g_key
+.
+_add»ss
+ = 
+addr
+;
+
+211 
+®g_key
+.
+fžËr1
+ = 0;
+
+212 
+®g_key
+.
+fžËr2
+ = 0;
+
+214 ià(
+ALG_DEBUG
+)
+
+215 
+	`´štf
+("»move_s_’Œy i°%x,…܈%d\n", 
+®g_key
+.
+_add»ss
+,
+
+216 
+®g_key
+.
+l4pÜt
+);
+
+218 
+»t
+ = 
+	`¹e_hash_lookup
+(
+s_®g_hash_bË
+, &
+®g_key
+);
+
+219 ià(
+»t
+ < 0) {
+
+220 ià(
+ALG_DEBUG
+)
+
+221 
+	`´štf
+("removesipalgentry: "
+
+223 
+»t
+);
+
+227 
+s_®g_’Œy_d©a
+ = 
+s_®g_bË
+[
+»t
+];
+
+229 
+	`ä“
+(
+s_®g_’Œy_d©a
+);
+
+230 
+	`¹e_hash_d–_key
+(
+s_®g_hash_bË
+, &
+®g_key
+);
+
+233 
+	}
+}
+
+239 
+pÝuϋ_s_®g_’Œy
+(
+ušt32_t
+ 
+addr
+, 
+ušt16_t
+ 
+pÜtid
+,
+
+240 *
+s_ÿÎ_id
+, 
+ušt8_t
+ 
+ÿÎ_dœeùiÚ
+,
+
+241 
+s_®g_pÜt_ty³
+ 
+pÜt_ty³
+);
+
+242 
+	$pÝuϋ_s_®g_’Œy
+(
+ušt32_t
+ 
+addr
+, 
+ušt16_t
+ 
+pÜtid
+,
+
+243 *
+s_ÿÎ_id
+, 
+ušt8_t
+ 
+ÿÎ_dœeùiÚ
+,
+
+244 
+s_®g_pÜt_ty³
+ 
+pÜt_ty³
+)
+
+246 
+s_®g_key
+ 
+®g_key
+;
+
+248 
+®g_key
+.
+l4pÜt
+ = 
+pÜtid
+;
+
+249 
+®g_key
+.
+_add»ss
+ = 
+addr
+;
+
+250 
+®g_key
+.
+fžËr1
+ = 0;
+
+251 
+®g_key
+.
+fžËr2
+ = 0;
+
+252 
+»t
+;
+
+254 ià(
+ALG_DEBUG
+)
+
+255 
+	`´štf
+("populate_sip_alg_entry…ort %d, ip %x\n",
+
+256 
+®g_key
+.
+l4pÜt
+,‡lg_key.
+_add»ss
+);
+
+258 
+s_®g_bË_’Œy
+ *
+Ãw_®g_d©a
+ =
+
+259 
+	`»Œ›ve_s_®g_’Œy
+(&
+®g_key
+);
+
+261 ià(
+Ãw_®g_d©a
+) {
+
+262 ià(
+ALG_DEBUG
+)
+
+263 
+	`´štf
+("sip_alg_entryƒxists ip%x,…ort %d\n",
+
+264 
+®g_key
+.
+_add»ss
+,‡lg_key.
+l4pÜt
+);
+
+268 
+Ãw_®g_d©a
+ = 
+NULL
+;
+
+269 
+Ãw_®g_d©a
+ = (
+s_®g_bË_’Œy
+ *)
+
+270 
+	`m®loc
+((
+s_®g_bË_’Œy
+));
+
+271 ià(
+Ãw_®g_d©a
+ =ð
+NULL
+) {
+
+272 
+	`´štf
+("populate sip‡lgƒntry:‡llocation failed\n");
+
+276 
+Ãw_®g_d©a
+->
+l4pÜt
+ = 
+pÜtid
+;
+
+277 
+Ãw_®g_d©a
+->
+_add»ss
+ = 
+addr
+;
+
+278 
+Ãw_®g_d©a
+->
+l4pÜt_ty³
+ = 
+pÜt_ty³
+;
+
+279 
+Ãw_®g_d©a
+->
+s_®g_ÿÎ_dœeùiÚ
+ = 
+ÿÎ_dœeùiÚ
+;
+
+280 
+	`¡rýy
+((*)
+Ãw_®g_d©a
+->
+s_®g_ÿÎ_id
+, (*)
+s_ÿÎ_id
+);
+
+281 
+Ãw_®g_d©a
+->
+fžËr1
+ = 0;
+
+282 
+Ãw_®g_d©a
+->
+fžËr2
+ = 0;
+
+283 
+Ãw_®g_d©a
+->
+fžËr3
+ = 0;
+
+285 
+»t
+ = 
+	`¹e_hash_add_key
+(
+s_®g_hash_bË
+, &
+®g_key
+);
+
+286 ià(
+»t
+ < 0) {
+
+287 
+	`´štf
+("pÝuϋ s -„‹_hash_add_key_d©¨ERROR %d\n", 
+»t
+);
+
+288 
+	`ä“
+(
+Ãw_®g_d©a
+);
+
+292 
+s_®g_bË
+[
+»t
+] = 
+Ãw_®g_d©a
+;
+
+294 ià(
+ALG_DEBUG
+) {
+
+295 
+	`´štf
+("SIP_ALG:able update - ip=%x on…ort=%d„et=%d\n",
+
+296 
+®g_key
+.
+_add»ss
+, 
+pÜtid
+, 
+»t
+);
+
+299 
+	}
+}
+
+301 
+	$s_®g_dpi
+(
+¹e_mbuf
+ *
+pkt
+, 
+pkt_dœ
+ 
+pkt_dœeùiÚ
+,
+
+302 
+ušt32_t
+ 
+modIp
+, 
+ušt16_t
+ 
+modL4PÜt
+,
+
+303 
+ušt32_t
+ 
+pubIp
+, 
+ušt16_t
+ 
+pubL4PÜt
+,
+
+304 
+ušt16_t
+ 
+modRPÜt
+, ušt16_ˆ
+modRtýPÜt
+)
+
+306 
+ušt16_t
+ 
+msgTy³
+ = 0;
+
+307 
+s_®g_ÿÎ_dœeùiÚ
+ 
+ÿÎ_dœeùiÚ
+ = 0;
+
+308 
+ušt32_t
+ 
+_add»ss
+ = 0;
+
+309 
+ušt16_t
+ 
+pÜt
+ = 0;
+
+310 
+»t
+ = 0;
+
+311 
+v4_hdr
+ *
+_h
+;
+
+312 
+‘h”_hdr
+ *
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+pkt
+, ether_hdr *);
+
+313 
+udp_hdr
+ *
+udp_h
+;
+
+314 *
+pSMsg
+ = 
+NULL
+;
+
+315 
+s_®g_bË_’Œy
+ *
+s_®g_’Œy
+;
+
+316 *
+s_ÿÎ_id
+ = 
+NULL
+;
+
+317 
+pos
+ = 0;
+
+318 
+s_®g_key
+ 
+®g_key
+;
+
+319 
+ušt16_t
+ 
+diffModSL’
+ = 0;
+
+321 
+_h
+ = (
+v4_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+322 
+udp_h
+ = (
+udp_hdr
+ *)((*)
+_h
+ + (
+v4_hdr
+));
+
+323 
+pSMsg
+ = ((*)
+udp_h
+ + (
+udp_hdr
+));
+
+325 ià(
+ALG_DEBUG
+) {
+
+326 
+	`´štf
+("%s:…ack‘†’gth(%u), bufã¸Ëngth(%u)\n", 
+__func__
+,
+
+327 
+	`¹e_pktmbuf_pkt_Ën
+(
+pkt
+),…kt->
+buf_Ën
+);
+
+328 
+	`´štf
+("%s:†a¡ segm’ˆaddr(%°%p)\n", 
+__func__
+,
+
+329 
+	`¹e_pktmbuf_Ï¡£g
+(
+pkt
+),…kt);
+
+330 
+	`´štf
+("%s: d©¨Ën(%u, %u)\n", 
+__func__
+, 
+	`¹e_pktmbuf_d©a_Ën
+(
+pkt
+),
+
+331 
+	`¹e_pktmbuf_d©a_Ën
+(
+	`¹e_pktmbuf_Ï¡£g
+(
+pkt
+)));
+
+332 
+	`´štf
+("%s: bufã¸addr(%p), d©a_off(%u),‚b_£gs(%u)\n", 
+__func__
+,
+
+333 
+pkt
+->
+buf_addr
+,…kt->
+d©a_off
+,…kt->
+nb_£gs
+);
+
+336 ià(
+	`IS_STRING_SAME
+(
+pSMsg
+, 
+SIP_ALG_INVITE
+)) {
+
+338 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_CALLID
+, &
+pos
+, 0) ==
+
+339 
+TRUE
+)
+
+340 
+s_ÿÎ_id
+ =
+
+341 
+	`g‘SC®lIdSŒ
+(
+pSMsg
+ + 
+pos
+ +
+
+342 
+	`TAG_TO_DATAPOS
+(
+SIP_ALG_CALLID
+));
+
+344 ià(
+ALG_DEBUG
+)
+
+345 
+	`´štf
+("s®gdpi: %d c®Èid %s\n", 
+__LINE__
+,
+
+346 
+s_ÿÎ_id
+);
+
+348 ià(
+pkt_dœeùiÚ
+ =ð
+PRIVATE
+) {
+
+349 
+ÿÎ_dœeùiÚ
+ = 
+SIP_CALL_OUTGOING
+;
+
+350 
+_add»ss
+ = 
+	`¹e_bsw­32
+(
+_h
+->
+¤c_addr
+);
+
+351 
+pÜt
+ = 
+	`¹e_bsw­16
+(
+udp_h
+->
+¤c_pÜt
+);
+
+352 } ià(
+pkt_dœeùiÚ
+ =ð
+PUBLIC
+) {
+
+353 
+ÿÎ_dœeùiÚ
+ = 
+SIP_CALL_INCOMING
+;
+
+354 
+_add»ss
+ = 
+pubIp
+;
+
+355 
+pÜt
+ = 
+pubL4PÜt
+;
+
+358 ià(
+ALG_DEBUG
+)
+
+359 
+	`´štf
+("0=>sip_alg_dpi:…kt_dir(%d), call_dir(%d), "
+
+361 
+pkt_dœeùiÚ
+, 
+ÿÎ_dœeùiÚ
+, 
+_add»ss
+, 
+pÜt
+);
+
+364 
+»t
+ = 
+	`pÝuϋ_s_®g_’Œy
+(
+_add»ss
+, 
+pÜt
+,
+
+365 
+s_ÿÎ_id
+, 
+ÿÎ_dœeùiÚ
+,
+
+366 
+SIP_UDP
+);
+
+367 ià(
+»t
+ < 0) {
+
+368 
+	`´štf
+("sipalgdpi:populate SIP‡lg UDPƒntry failed\n");
+
+371 ià(
+modRPÜt
+ != 0) {
+
+372 
+»t
+ = 
+	`pÝuϋ_s_®g_’Œy
+(
+_add»ss
+, 
+modRPÜt
+,
+
+373 
+s_ÿÎ_id
+,
+
+374 
+ÿÎ_dœeùiÚ
+, 
+SIP_RTP
+);
+
+375 ià(
+»t
+ < 0) {
+
+376 
+	`´štf
+("sipalgdpi: "
+
+381 ià(
+modRtýPÜt
+ != 0) {
+
+382 
+»t
+ = 
+	`pÝuϋ_s_®g_’Œy
+(
+_add»ss
+, 
+modRtýPÜt
+,
+
+383 
+s_ÿÎ_id
+,
+
+384 
+ÿÎ_dœeùiÚ
+, 
+SIP_RTCP
+);
+
+385 ià(
+»t
+ < 0) {
+
+386 
+	`´štf
+("sipalgdpi: "
+
+393 
+pSMsg
+ =
+
+394 
+	`s_®g_´oûss
+(
+pkt
+, 
+pkt_dœeùiÚ
+, 
+ÿÎ_dœeùiÚ
+,
+
+395 
+SIP_ALG_INVITE_MSGTYPE
+, 
+modIp
+, 
+modL4PÜt
+, 0,
+
+396 0, 
+modRPÜt
+, 
+modRtýPÜt
+, &
+diffModSL’
+);
+
+403 ià(
+pkt_dœeùiÚ
+ =ð
+PRIVATE
+) {
+
+404 
+®g_key
+.
+_add»ss
+ = 
+	`¹e_bsw­32
+(
+_h
+->
+¤c_addr
+);
+
+405 
+®g_key
+.
+l4pÜt
+ = 
+	`¹e_bsw­16
+(
+udp_h
+->
+¤c_pÜt
+);
+
+407 
+®g_key
+.
+_add»ss
+ = 
+pubIp
+;
+
+408 
+®g_key
+.
+l4pÜt
+ = 
+pubL4PÜt
+;
+
+411 
+®g_key
+.
+fžËr1
+ = 0;
+
+412 
+®g_key
+.
+fžËr2
+ = 0;
+
+413 
+s_®g_’Œy
+ = 
+	`»Œ›ve_s_®g_’Œy
+(&
+®g_key
+);
+
+415 ià(
+ALG_DEBUG
+) {
+
+416 
+	`´štf
+("%s: s_®g_’Œy_±r(%p)\n", 
+__func__
+,
+
+417 
+s_®g_’Œy
+);
+
+418 
+	`´štf
+("1=>%s:…kt_dir(%d), modIp(%x),modL4Port(%x), "
+
+420 
+__func__
+, 
+pkt_dœeùiÚ
+, 
+modIp
+, 
+modL4PÜt
+,
+
+421 
+modRPÜt
+, 
+modRtýPÜt
+, 
+pubIp
+, 
+pubL4PÜt
+);
+
+424 ià(
+s_®g_’Œy
+) {
+
+425 
+ÿÎ_dœeùiÚ
+ = 
+s_®g_’Œy
+->
+s_®g_ÿÎ_dœeùiÚ
+;
+
+426 ià(
+	`IS_STRING_SAME
+(
+pSMsg
+, 
+SIP_ALG_BYE
+) ||
+
+427 
+	`IS_STRING_SAME
+(
+pSMsg
+, 
+SIP_ALG_CANCEL
+)) {
+
+428 
+msgTy³
+ = 
+SIP_ALG_BYE_MSGTYPE
+;
+
+430 
+sAlgProûss
+;
+
+431 } ià(
+	`IS_STRING_SAME
+(
+pSMsg
+, 
+SIP_ALG_ACK
+)) {
+
+432 
+msgTy³
+ = 
+SIP_ALG_ACK_MSGTYPE
+;
+
+434 
+sAlgProûss
+;
+
+437 
+pSMsg
+ += 8;
+
+439 ià(
+	`IS_STRING_SAME
+(
+pSMsg
+, 
+SIP_ALG_200_OK
+)) {
+
+441 ià(
+ÇtSAlgMsgF›ldPos
+
+
+442 (
+pSMsg
+, 
+SIP_ALG_CSEQ
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+443 *
+pBye
+;
+
+445 
+pBye
+ =
+
+446 
+pSMsg
+ + 
+pos
+ +
+
+447 
+	`TAG_TO_DATAPOS
+(
+SIP_ALG_CSEQ
+);
+
+448 
+	`SKIP_SPACES
+(
+pBye
+);
+
+450 *
+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 } ià(
+	`IS_STRING_SAME
+(
+pSMsg
+, 
+SIP_ALG_TRYING
+) ||
+
+465 
+	`IS_STRING_SAME
+(
+pSMsg
+, 
+SIP_ALG_RINGING
+)) {
+
+466 
+msgTy³
+ = 
+SIP_ALG_TRYING_RINGING_MSGTYPE
+;
+
+469 
+sAlgProûss
+:
+
+470 ià(
+ALG_DEBUG
+)
+
+471 
+	`´štf
+("2=>%s:…kt_dir(%d), call_dir(%d), "
+
+474 
+__func__
+, 
+pkt_dœeùiÚ
+, 
+ÿÎ_dœeùiÚ
+,
+
+475 
+msgTy³
+, 
+modIp
+, 
+modL4PÜt
+, 
+modRPÜt
+,
+
+476 
+modRtýPÜt
+);
+
+478 
+pSMsg
+ =
+
+479 
+	`s_®g_´oûss
+(
+pkt
+, 
+pkt_dœeùiÚ
+, 
+ÿÎ_dœeùiÚ
+,
+
+480 
+msgTy³
+, 
+modIp
+, 
+modL4PÜt
+, 
+pubIp
+,
+
+481 
+pubL4PÜt
+, 
+modRPÜt
+, 
+modRtýPÜt
+,
+
+482 &
+diffModSL’
+);
+
+484 
+pSMsg
+ = 
+NULL
+;
+
+487 ià(
+ALG_DEBUG
+)
+
+488 
+	`´štf
+("%s: BefܐIPÙ®†’gth(%u), ud°Ëngth(%u)\n", 
+__func__
+,
+
+489 
+	`¹e_bsw­16
+(
+_h
+->
+tÙ®_Ëngth
+),„‹_bsw­16(
+udp_h
+->
+dg¿m_Ën
+));
+
+494 
+ušt16_t
+ 
+Ën
+ = 0;
+
+495 ià(
+diffModSL’
+ > 0) {
+
+496 
+Ën
+ = 
+	`¹e_bsw­16
+(
+udp_h
+->
+dg¿m_Ën
+);
+
+497 
+Ën
+ +ð
+diffModSL’
+;
+
+498 
+udp_h
+->
+dg¿m_Ën
+ = 
+	`¹e_bsw­16
+(
+Ën
+);
+
+500 
+Ën
+ = 
+	`¹e_bsw­16
+(
+_h
+->
+tÙ®_Ëngth
+);
+
+501 
+Ën
+ +ð
+diffModSL’
+;
+
+502 
+_h
+->
+tÙ®_Ëngth
+ = 
+	`¹e_bsw­16
+(
+Ën
+);
+
+504 ià(
+	`¹e_pktmbuf_­³nd
+(
+pkt
+, 
+diffModSL’
+è=ð
+NULL
+)
+
+505 
+	`´štf
+("%s:…ktmbuf_­³nd„‘uº NULL", 
+__func__
+);
+
+509 ià(
+ALG_DEBUG
+)
+
+510 
+	`´štf
+("%s: After IPotal†ength(%u), udp†ength(%u), "
+
+511 "diffModSL’(%u)\n", 
+__func__
+,
+
+512 
+	`¹e_bsw­16
+(
+_h
+->
+tÙ®_Ëngth
+),
+
+513 
+	`¹e_bsw­16
+(
+udp_h
+->
+dg¿m_Ën
+),
+
+514 
+diffModSL’
+);
+
+516 ià(
+pSMsg
+ !ð
+NULL
+)
+
+520 
+	}
+}
+
+522 *
+	$s_®g_´oûss
+(
+¹e_mbuf
+ *
+pkt
+, 
+ušt16_t
+ 
+pkt_dœeùiÚ
+,
+
+523 
+ušt16_t
+ 
+ÿÎ_dœeùiÚ
+, ušt16_ˆ
+msgTy³
+, 
+ušt32_t
+ 
+modIp
+,
+
+524 
+ušt16_t
+ 
+modL4PÜt
+, 
+ušt32_t
+ 
+pubIp
+, ušt16_ˆ
+pubL4PÜt
+,
+
+525 
+ušt16_t
+ 
+modRPÜt
+, ušt16_ˆ
+modRtýPÜt
+,
+
+526 
+ušt16_t
+ *
+diffModSL’
+)
+
+528 
+v4_hdr
+ *
+_h
+;
+
+529 
+‘h”_hdr
+ *
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+pkt
+, ether_hdr *);
+
+530 
+udp_hdr
+ *
+udp_h
+;
+
+531 *
+pSMsg
+, *
+pSŒ
+, *
+pEndPŒ
+;
+
+532 
+pos
+;
+
+534 
+ušt32_t
+ 
+diffL’
+, 
+addrPÜtL’
+;
+
+535 
+sdpMsgL’
+ = 0;
+
+536 
+s_msg_Ën
+ = 0;
+
+538 
+_h
+ = (
+v4_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+539 
+udp_h
+ = (
+udp_hdr
+ *)((*)
+_h
+ + (
+v4_hdr
+));
+
+540 
+pSMsg
+ = ((*)
+udp_h
+ + (
+udp_hdr
+));
+
+541 *
+pTmpSMsg
+ = 
+pSMsg
+;
+
+542 *
+pS¹SMsg
+ = 
+pSMsg
+;
+
+544 
+s_msg_Ën
+ =
+
+545 
+	`¹e_bsw­16
+(
+_h
+->
+tÙ®_Ëngth
+è- (
+v4_hdr
+) -
+
+546 (
+udp_hdr
+);
+
+548 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+, 
+SIP_ALG_CONTENT_LEN
+, &
+pos
+, 0) ==
+
+549 
+TRUE
+)
+
+550 
+pTmpSMsg
+ +ð(
+pos
+ + 
+	`TAG_TO_DATAPOS
+(
+SIP_ALG_CONTENT_LEN
+));
+
+552 
+	`´štf
+("sip_alg_process: Invalid Content Length\n");
+
+553  
+NULL
+;
+
+556 
+	`SKIP_SPACES
+(
+pTmpSMsg
+);
+
+557 
+sdpD©aL’
+ = 
+	`¡¹Þ
+(
+pTmpSMsg
+, &
+pSŒ
+, 10);
+
+559 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pTmpSMsg
+, 
+SIP_ALG_DOUBLE_CRLF
+, &
+pos
+, 0);
+
+560 
+pTmpSMsg
+ +ð(
+pos
+ + 
+	`¡¾’
+(
+SIP_ALG_DOUBLE_CRLF
+));
+
+562 ià(
+sdpD©aL’
+ != 0)
+
+563 ià(
+ÇtSAlgMsgF›ldPos
+
+
+564 (
+pTmpSMsg
+, 
+SIP_ALG_REMOTE_PARTY_ID
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+565 
+pTmpSMsg
+ +ð
+pos
+ + 
+	`¡¾’
+(
+SIP_ALG_REMOTE_PARTY_ID
+);
+
+567 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pTmpSMsg
+,
+
+568 
+SIP_ALG_DOUBLE_CRLF
+, &
+pos
+,
+
+570 
+pTmpSMsg
+ +ð(
+pos
+ + 
+	`¡¾’
+(
+SIP_ALG_DOUBLE_CRLF
+));
+
+573 
+sMsgL’
+ = (
+pTmpSMsg
+ - 
+pSMsg
+);
+
+575 *
+pSMsgEnd
+ = 
+pSMsg
+ + 
+sMsgL’
+ + 
+sdpD©aL’
+;
+
+577 ià(
+ALG_DEBUG
+)
+
+578 
+	`´štf
+("%s:…SipMsg: %p,…SipMsgEnd: %p, sipMsgLen: %d, "
+
+580 
+__func__
+, 
+pSMsg
+, 
+pSMsgEnd
+, 
+sMsgL’
+, 
+sdpD©aL’
+,
+
+581 
+s_msg_Ën
+);
+
+583 ià(
+ÿÎ_dœeùiÚ
+ =ð
+SIP_CALL_OUTGOING
+) {
+
+584 ià((
+msgTy³
+ =ð
+SIP_ALG_INVITE_MSGTYPE
+)
+
+585 || (
+msgTy³
+ =ð
+SIP_ALG_ACK_MSGTYPE
+)) {
+
+587 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_VIA
+, &
+pos
+, 0)
+
+588 =ð
+TRUE
+) {
+
+590 
+pSMsg
+ +=
+
+591 (
+pos
+ + 
+	`¡¾’
+(
+SIP_ALG_VIA
+) +
+
+592 
+SIP_ALG_VIA_FIELD_IPADDR
+);
+
+593 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+595 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+,
+
+596 
+SIP_ALG_SEMICOLON
+, &
+pos
+,
+
+598 
+pTmpSMsg
+ +ð
+pos
+;
+
+599 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+601 
+	`´štf
+("sip_alg_process; No valid VIA field\n");
+
+602  
+NULL
+;
+
+605 
+pSMsg
+ =
+
+606 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+607 
+addrPÜtL’
+,
+
+608 &
+diffL’
+, 
+modIp
+,
+
+609 
+modL4PÜt
+,
+
+610 
+ADDRESS_PORT_STRING
+);
+
+612 *
+diffModSL’
+ +ð
+diffL’
+;
+
+616 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_FROM
+, &
+pos
+, 0)
+
+617 =ð
+TRUE
+) {
+
+618 
+pSMsg
+ +ð
+pos
+;
+
+620 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+622 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+, 
+SIP_ALG_GREAT
+,
+
+623 &
+pos
+, 0);
+
+624 
+pTmpSMsg
+ +ð
+pos
+;
+
+625 
+diffL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+627 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+629 
+pSMsg
+ +ð
+pos
+ + 1;
+
+631 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+633 
+´štf
+
+
+635  
+NULL
+;
+
+638 
+pSMsg
+ =
+
+639 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+640 
+addrPÜtL’
+,
+
+641 &
+diffL’
+, 
+modIp
+,
+
+642 
+modL4PÜt
+,
+
+643 
+ADDRESS_PORT_STRING
+);
+
+645 *
+diffModSL’
+ +ð
+diffL’
+;
+
+649 ià(
+ÇtSAlgMsgF›ldPos
+
+
+650 (
+pSMsg
+, 
+SIP_ALG_CALLID
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+651 
+pSMsg
+ +ð
+pos
+;
+
+653 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+655 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pTmpSMsg
+,
+
+656 
+SIP_ALG_CRLF
+, &
+pos
+,
+
+658 
+pTmpSMsg
+ +ð
+pos
+;
+
+659 
+diffL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+661 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+663 
+pSMsg
+ +ð
+pos
+ + 1;
+
+664 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+666 
+	`´štf
+("sip_alg_process; "
+
+668  
+NULL
+;
+
+672 
+pSMsg
+ =
+
+673 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+674 
+addrPÜtL’
+,
+
+675 &
+diffL’
+, 
+modIp
+, 0,
+
+676 
+ADDRESS_PORT_STRING
+);
+
+678 *
+diffModSL’
+ +ð
+diffL’
+;
+
+681 ià(
+ÇtSAlgMsgF›ldPos
+
+
+682 (
+pSMsg
+, 
+SIP_ALG_CONTACT
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+683 
+pSMsg
+ +ð
+pos
+;
+
+685 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+686 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pTmpSMsg
+,
+
+687 
+SIP_ALG_CRLF
+, &
+pos
+,
+
+689 
+pTmpSMsg
+ +ð
+pos
+;
+
+691 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+693 
+pSMsg
+ +ð
+pos
+ + 1;
+
+694 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+697 
+	`´štf
+("sip_alg_process; "
+
+699  
+NULL
+;
+
+702 
+pSMsg
+ =
+
+703 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+704 
+addrPÜtL’
+,
+
+705 &
+diffL’
+, 
+modIp
+,
+
+706 
+modL4PÜt
+,
+
+707 
+ADDRESS_PORT_STRING
+);
+
+709 *
+diffModSL’
+ +ð
+diffL’
+;
+
+711 ià(
+msgTy³
+ =ð
+SIP_ALG_INVITE_MSGTYPE
+) {
+
+713 ià(
+ÇtSAlgMsgF›ldPos
+
+
+714 (
+pSMsg
+, 
+SIP_ALG_CONTYPE
+, &
+pos
+,
+
+715 0è=ð
+TRUE
+) {
+
+716 
+pSMsg
+ +=
+
+717 (
+pos
+ +
+
+718 
+	`TAG_TO_DATAPOS
+(
+SIP_ALG_CONTYPE
+));
+
+719 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+721 ià(!
+IS_STRING_SAME
+
+
+722 (
+pSMsg
+, 
+SIP_ALG_APPSDP
+)) {
+
+723 
+	`´štf
+("sip_alg_process "
+
+725  
+NULL
+;
+
+728 
+	`´štf
+("sip_alg_process; "
+
+730  
+NULL
+;
+
+734 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+,
+
+735 
+SIP_ALG_CONTENT_LEN
+, &
+pos
+,
+
+737 
+pSMsg
+ +=
+
+738 (
+pos
+ + 
+	`TAG_TO_DATAPOS
+(
+SIP_ALG_CONTENT_LEN
+));
+
+739 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+740 
+sdpMsgL’
+ = 
+	`¡¹Þ
+(
+pSMsg
+, &
+pEndPŒ
+, 10);
+
+741 ià(!
+sdpMsgL’
+) {
+
+743 ià(
+msgTy³
+ =ð
+SIP_ALG_ACK_MSGTYPE
+)
+
+744 
+sAlgProûssEx™
+;
+
+746 
+	`´štf
+("sip_alg_process - "
+
+748  
+NULL
+;
+
+752 ià(
+ÇtSAlgMsgF›ldPos
+
+
+753 (
+pSMsg
+, 
+SIP_ALG_OWNER
+, &
+pos
+,
+
+754 0è=ð
+TRUE
+) {
+
+755 
+pSMsg
+ +ð
+pos
+;
+
+757 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+759 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pSMsg
+,
+
+760 
+SIP_ALG_CRLF
+,
+
+761 &
+pos
+,
+
+763 
+pTmpSMsg
+ +ð
+pos
+;
+
+766 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+,
+
+767 
+SIP_ALG_IPV4
+, &
+pos
+,
+
+769 
+pSMsg
+ +ð(
+pos
+ + 
+	`¡¾’
+(
+SIP_ALG_IPV4
+));
+
+770 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+772 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+774 
+	`´štf
+("sip_alg_processing: "
+
+776  
+NULL
+;
+
+779 
+pSMsg
+ =
+
+780 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+,
+
+781 &
+pSMsgEnd
+,
+
+782 
+addrPÜtL’
+,
+
+783 &
+diffL’
+,
+
+784 
+modIp
+, 0,
+
+785 
+ADDRESS_PORT_STRING
+);
+
+787 *
+diffModSL’
+ +ð
+diffL’
+;
+
+788 
+sdpMsgL’
+ +ð
+diffL’
+;
+
+792 ià(
+ÇtSAlgMsgF›ldPos
+
+
+793 (
+pSMsg
+, 
+SIP_ALG_CONN
+, &
+pos
+,
+
+794 0è=ð
+TRUE
+) {
+
+795 
+pSMsg
+ +ð
+pos
+;
+
+796 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+798 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pSMsg
+,
+
+799 
+SIP_ALG_CRLF
+,
+
+800 &
+pos
+,
+
+802 
+pTmpSMsg
+ +ð
+pos
+;
+
+805 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+,
+
+806 
+SIP_ALG_IPV4
+, &
+pos
+,
+
+808 
+pSMsg
+ +ð(
+pos
+ + 
+	`¡¾’
+(
+SIP_ALG_IPV4
+));
+
+809 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+811 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+813 
+	`´štf
+("sip_alg_processing: "
+
+815  
+NULL
+;
+
+818 
+pSMsg
+ =
+
+819 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+,
+
+820 &
+pSMsgEnd
+,
+
+821 
+addrPÜtL’
+,
+
+822 &
+diffL’
+,
+
+823 
+modIp
+, 0,
+
+824 
+ADDRESS_PORT_STRING
+);
+
+826 *
+diffModSL’
+ +ð
+diffL’
+;
+
+827 
+sdpMsgL’
+ +ð
+diffL’
+;
+
+831 ià(
+ÇtSAlgMsgF›ldPos
+
+
+832 (
+pSMsg
+, 
+SIP_ALG_AUDIO
+, &
+pos
+,
+
+833 0è=ð
+TRUE
+) {
+
+834 
+pSMsg
+ +=
+
+835 (
+pos
+ +
+
+836 
+	`TAG_TO_DATAPOS
+(
+SIP_ALG_AUDIO
+));
+
+837 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+838 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+839 
+ÇtSAlgMsgF›ldPosFšdS·û
+
+
+840 (
+pTmpSMsg
+, 
+SIP_ALG_SPACE
+, &
+pos
+,
+
+842 
+pTmpSMsg
+ +ð
+pos
+;
+
+843 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+847 
+pSMsg
+ =
+
+848 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+,
+
+849 &
+pSMsgEnd
+,
+
+850 
+addrPÜtL’
+,
+
+851 &
+diffL’
+, 0,
+
+852 
+modRPÜt
+,
+
+853 
+PORT_STRING
+);
+
+855 *
+diffModSL’
+ +ð
+diffL’
+;
+
+856 
+sdpMsgL’
+ +ð
+diffL’
+;
+
+860 ià(
+ÇtSAlgMsgF›ldPos
+
+
+861 (
+pSMsg
+, 
+SIP_ALG_RTCP
+, &
+pos
+,
+
+862 0è=ð
+TRUE
+) {
+
+863 
+pSMsg
+ +=
+
+864 (
+pos
+ +
+
+865 
+	`TAG_TO_DATAPOS
+(
+SIP_ALG_RTCP
+));
+
+866 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+867 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+868 
+ÇtSAlgMsgF›ldPosFšdS·û
+
+
+869 (
+pTmpSMsg
+, 
+SIP_ALG_SPACE
+, &
+pos
+,
+
+871 
+pTmpSMsg
+ +ð
+pos
+;
+
+872 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+875 
+pSMsg
+ =
+
+876 
+ÇtSAlgModifyPaylßdAddrPÜt
+
+
+877 (
+pSMsg
+, &
+pSMsgEnd
+, 
+addrPÜtL’
+,
+
+878 &
+diffL’
+, 0, 
+modRtýPÜt
+,
+
+879 
+PORT_STRING
+);
+
+881 *
+diffModSL’
+ +ð
+diffL’
+;
+
+882 
+sdpMsgL’
+ +ð
+diffL’
+;
+
+887 } ià((
+msgTy³
+ =ð
+SIP_ALG_TRYING_RINGING_MSGTYPE
+)
+
+888 || (
+msgTy³
+ =ð
+SIP_ALG_200_OK_INVITE_MSGTYPE
+)) {
+
+890 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_VIA
+, &
+pos
+, 0)
+
+891 =ð
+TRUE
+) {
+
+893 
+pSMsg
+ +=
+
+894 (
+pos
+ + 
+	`¡¾’
+(
+SIP_ALG_VIA
+) +
+
+895 
+SIP_ALG_VIA_FIELD_IPADDR
+);
+
+896 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+898 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+,
+
+899 
+SIP_ALG_SEMICOLON
+, &
+pos
+,
+
+901 
+pTmpSMsg
+ +ð
+pos
+;
+
+902 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+904 
+	`´štf
+("sip_alg_process; No valid VIA field\n");
+
+905  
+NULL
+;
+
+908 
+pSMsg
+ =
+
+909 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+910 
+addrPÜtL’
+,
+
+911 &
+diffL’
+, 
+modIp
+,
+
+912 
+modL4PÜt
+,
+
+913 
+ADDRESS_PORT_STRING
+);
+
+914 *
+diffModSL’
+ = 
+diffL’
+;
+
+917 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_FROM
+, &
+pos
+, 0)
+
+918 =ð
+TRUE
+) {
+
+919 
+pSMsg
+ +ð
+pos
+;
+
+921 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+923 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+, 
+SIP_ALG_GREAT
+,
+
+924 &
+pos
+, 0);
+
+925 
+pTmpSMsg
+ +ð
+pos
+;
+
+928 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+930 
+pSMsg
+ +ð
+pos
+ + 1;
+
+932 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+934 
+´štf
+
+
+936  
+NULL
+;
+
+939 
+pSMsg
+ =
+
+940 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+941 
+addrPÜtL’
+,
+
+942 &
+diffL’
+, 
+modIp
+,
+
+943 
+modL4PÜt
+,
+
+944 
+ADDRESS_PORT_STRING
+);
+
+946 *
+diffModSL’
+ +ð
+diffL’
+;
+
+950 ià(
+ÇtSAlgMsgF›ldPos
+
+
+951 (
+pSMsg
+, 
+SIP_ALG_CALLID
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+952 
+pSMsg
+ +ð
+pos
+;
+
+954 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+956 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pTmpSMsg
+,
+
+957 
+SIP_ALG_CRLF
+, &
+pos
+,
+
+959 
+pTmpSMsg
+ +ð
+pos
+;
+
+962 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+964 
+pSMsg
+ +ð
+pos
+ + 1;
+
+965 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+967 
+	`´štf
+("sip_alg_process; "
+
+969  
+NULL
+;
+
+973 
+pSMsg
+ =
+
+974 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+975 
+addrPÜtL’
+,
+
+976 &
+diffL’
+, 
+modIp
+, 0,
+
+977 
+ADDRESS_PORT_STRING
+);
+
+979 *
+diffModSL’
+ +ð
+diffL’
+;
+
+981 } ià(
+pkt_dœeùiÚ
+ =ð
+PRIVATE
+
+
+982 && 
+msgTy³
+ =ð
+SIP_ALG_BYE_MSGTYPE
+) {
+
+986 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_VIA
+, &
+pos
+, 0)
+
+987 =ð
+TRUE
+) {
+
+989 
+pSMsg
+ +=
+
+990 (
+pos
+ + 
+	`¡¾’
+(
+SIP_ALG_VIA
+) +
+
+991 
+SIP_ALG_VIA_FIELD_IPADDR
+);
+
+992 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+994 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+,
+
+995 
+SIP_ALG_SEMICOLON
+, &
+pos
+,
+
+997 
+pTmpSMsg
+ +ð
+pos
+;
+
+998 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1000 
+	`´štf
+("sip_alg_process; No valid VIA field\n");
+
+1001  
+NULL
+;
+
+1004 
+pSMsg
+ =
+
+1005 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1006 
+addrPÜtL’
+,
+
+1007 &
+diffL’
+, 
+modIp
+, 0,
+
+1008 
+ADDRESS_PORT_STRING
+);
+
+1009 *
+diffModSL’
+ = 
+diffL’
+;
+
+1012 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_FROM
+, &
+pos
+, 0)
+
+1013 =ð
+TRUE
+) {
+
+1014 
+pSMsg
+ +ð
+pos
+;
+
+1016 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1018 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+, 
+SIP_ALG_GREAT
+,
+
+1019 &
+pos
+, 0);
+
+1020 
+pTmpSMsg
+ +ð
+pos
+;
+
+1021 
+diffL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1023 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+1025 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1027 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1029 
+´štf
+
+
+1031  
+NULL
+;
+
+1034 
+pSMsg
+ =
+
+1035 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1036 
+addrPÜtL’
+,
+
+1037 &
+diffL’
+, 
+modIp
+,
+
+1038 
+modL4PÜt
+,
+
+1039 
+ADDRESS_PORT_STRING
+);
+
+1041 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1045 ià(
+ÇtSAlgMsgF›ldPos
+
+
+1046 (
+pSMsg
+, 
+SIP_ALG_CALLID
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+1047 
+pSMsg
+ +ð
+pos
+;
+
+1049 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1051 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pTmpSMsg
+,
+
+1052 
+SIP_ALG_CRLF
+, &
+pos
+,
+
+1054 
+pTmpSMsg
+ +ð
+pos
+;
+
+1055 
+diffL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1057 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+1059 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1060 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1062 
+	`´štf
+("sip_alg_process; "
+
+1064  
+NULL
+;
+
+1068 
+pSMsg
+ =
+
+1069 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1070 
+addrPÜtL’
+,
+
+1071 &
+diffL’
+, 
+modIp
+, 0,
+
+1072 
+ADDRESS_PORT_STRING
+);
+
+1074 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1077 ià(
+ÇtSAlgMsgF›ldPos
+
+
+1078 (
+pSMsg
+, 
+SIP_ALG_CONTACT
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+1079 
+pSMsg
+ +ð
+pos
+;
+
+1081 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1082 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pTmpSMsg
+,
+
+1083 
+SIP_ALG_CRLF
+, &
+pos
+, 0);
+
+1084 
+pTmpSMsg
+ +ð
+pos
+;
+
+1086 
+æag
+ = 0;
+
+1087 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+,
+
+1088 &
+pos
+, 0è=ð
+FALSE
+)
+
+1089 
+æag
+ = 1;
+
+1091 ià(
+æag
+)
+
+1092 
+SMsgAdvªû2
+;
+
+1093 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1094 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1097 
+	`´štf
+("sip_alg_process; "
+
+1099  
+NULL
+;
+
+1102 
+pSMsg
+ =
+
+1103 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1104 
+addrPÜtL’
+,
+
+1105 &
+diffL’
+, 
+modIp
+,
+
+1106 
+modL4PÜt
+,
+
+1107 
+ADDRESS_PORT_STRING
+);
+
+1109 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1110 } ià(
+pkt_dœeùiÚ
+ =ð
+PUBLIC
+
+
+1111 && 
+msgTy³
+ =ð
+SIP_ALG_BYE_MSGTYPE
+) {
+
+1118 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+, 0);
+
+1119 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1120 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1121 
+	`ÇtSAlgMsgF›ldPosFšdS·û
+(
+pTmpSMsg
+, 
+SIP_ALG_SPACE
+,
+
+1122 &
+pos
+, 0);
+
+1123 
+pTmpSMsg
+ +ð
+pos
+;
+
+1124 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1126 
+pSMsg
+ =
+
+1127 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1128 
+addrPÜtL’
+,
+
+1129 &
+diffL’
+, 
+modIp
+,
+
+1130 
+modL4PÜt
+,
+
+1131 
+ADDRESS_PORT_STRING
+);
+
+1132 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1136 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_TO
+, &
+pos
+, 0)
+
+1137 =ð
+TRUE
+) {
+
+1138 
+pSMsg
+ +ð
+pos
+;
+
+1139 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1140 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+, 
+SIP_ALG_GREAT
+,
+
+1141 &
+pos
+, 0);
+
+1142 
+pTmpSMsg
+ +ð
+pos
+;
+
+1143 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+1145 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1146 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1147 
+pSMsg
+ =
+
+1148 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+,
+
+1149 &
+pSMsgEnd
+,
+
+1150 
+addrPÜtL’
+,
+
+1151 &
+diffL’
+,
+
+1152 
+modIp
+,
+
+1153 
+modL4PÜt
+,
+
+1154 
+ADDRESS_PORT_STRING
+);
+
+1155 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1160 ià(
+ÇtSAlgMsgF›ldPos
+
+
+1161 (
+pSMsg
+, 
+SIP_ALG_CALLID
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+1162 
+pSMsg
+ +ð
+pos
+;
+
+1164 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1166 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pTmpSMsg
+,
+
+1167 
+SIP_ALG_CRLF
+, &
+pos
+,
+
+1169 
+pTmpSMsg
+ +ð
+pos
+;
+
+1172 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+1174 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1175 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1177 
+	`´štf
+("sip_alg_process; "
+
+1179  
+NULL
+;
+
+1183 
+pSMsg
+ =
+
+1184 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1185 
+addrPÜtL’
+,
+
+1186 &
+diffL’
+, 
+modIp
+, 0,
+
+1187 
+ADDRESS_PORT_STRING
+);
+
+1189 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1190 } ià(
+pkt_dœeùiÚ
+ =ð
+PRIVATE
+
+
+1191 && (
+msgTy³
+ =ð
+SIP_ALG_200_OK_BYE_MSGTYPE
+)) {
+
+1197 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_TO
+, &
+pos
+, 0)
+
+1198 =ð
+TRUE
+) {
+
+1199 
+pSMsg
+ +ð
+pos
+;
+
+1201 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1203 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+, 
+SIP_ALG_GREAT
+,
+
+1204 &
+pos
+, 0);
+
+1205 
+pTmpSMsg
+ +ð
+pos
+;
+
+1206 
+diffL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1208 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+1210 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1212 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1214 
+´štf
+
+
+1216  
+NULL
+;
+
+1219 
+pSMsg
+ =
+
+1220 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1221 
+addrPÜtL’
+,
+
+1222 &
+diffL’
+, 
+modIp
+,
+
+1223 
+modL4PÜt
+,
+
+1224 
+ADDRESS_PORT_STRING
+);
+
+1226 *
+diffModSL’
+ = 
+diffL’
+;
+
+1230 ià(
+ÇtSAlgMsgF›ldPos
+
+
+1231 (
+pSMsg
+, 
+SIP_ALG_CONTACT
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+1232 
+pSMsg
+ +ð
+pos
+;
+
+1234 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1235 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pTmpSMsg
+,
+
+1236 
+SIP_ALG_CRLF
+, &
+pos
+,
+
+1238 
+pTmpSMsg
+ +ð
+pos
+;
+
+1240 
+æag
+ = 0;
+
+1241 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+,
+
+1242 &
+pos
+, 0è=ð
+FALSE
+)
+
+1243 
+æag
+ = 1;
+
+1245 ià(
+æag
+)
+
+1246 
+SMsgAdvªû2
+;
+
+1247 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1248 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1250 
+	`´štf
+("sip_alg_process; "
+
+1252  
+NULL
+;
+
+1255 
+pSMsg
+ =
+
+1256 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1257 
+addrPÜtL’
+,
+
+1258 &
+diffL’
+, 
+modIp
+,
+
+1259 
+modL4PÜt
+,
+
+1260 
+ADDRESS_PORT_STRING
+);
+
+1262 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1263 } ià(
+pkt_dœeùiÚ
+ =ð
+PUBLIC
+
+
+1264 && (
+msgTy³
+ =ð
+SIP_ALG_200_OK_BYE_MSGTYPE
+)) {
+
+1268 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_VIA
+, &
+pos
+, 0)
+
+1269 =ð
+TRUE
+) {
+
+1271 
+pSMsg
+ +=
+
+1272 (
+pos
+ + 
+	`¡¾’
+(
+SIP_ALG_VIA
+) +
+
+1273 
+SIP_ALG_VIA_FIELD_IPADDR
+);
+
+1274 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1276 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+,
+
+1277 
+SIP_ALG_SEMICOLON
+, &
+pos
+,
+
+1279 
+pTmpSMsg
+ +ð
+pos
+;
+
+1280 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1282 
+	`´štf
+("sip_alg_process; No valid VIA field\n");
+
+1283  
+NULL
+;
+
+1286 
+pSMsg
+ =
+
+1287 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1288 
+addrPÜtL’
+,
+
+1289 &
+diffL’
+, 
+modIp
+, 0,
+
+1290 
+ADDRESS_PORT_STRING
+);
+
+1291 *
+diffModSL’
+ = 
+diffL’
+;
+
+1294 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_FROM
+, &
+pos
+, 0)
+
+1295 =ð
+TRUE
+) {
+
+1296 
+pSMsg
+ +ð
+pos
+;
+
+1298 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1300 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+, 
+SIP_ALG_GREAT
+,
+
+1301 &
+pos
+, 0);
+
+1302 
+pTmpSMsg
+ +ð
+pos
+;
+
+1303 
+diffL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1305 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+1307 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1309 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1311 
+´štf
+
+
+1313  
+NULL
+;
+
+1316 
+pSMsg
+ =
+
+1317 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1318 
+addrPÜtL’
+,
+
+1319 &
+diffL’
+, 
+modIp
+,
+
+1320 
+modL4PÜt
+,
+
+1321 
+ADDRESS_PORT_STRING
+);
+
+1323 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1326 ià(
+ÇtSAlgMsgF›ldPos
+
+
+1327 (
+pSMsg
+, 
+SIP_ALG_CALLID
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+1328 
+pSMsg
+ +ð
+pos
+;
+
+1330 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1331 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pTmpSMsg
+,
+
+1332 
+SIP_ALG_CRLF
+, &
+pos
+,
+
+1334 
+pTmpSMsg
+ +ð
+pos
+;
+
+1335 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+1337 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1338 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1340 
+pSMsg
+ =
+
+1341 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+,
+
+1342 &
+pSMsgEnd
+,
+
+1343 
+addrPÜtL’
+,
+
+1344 &
+diffL’
+,
+
+1345 
+modIp
+, 0,
+
+1346 
+ADDRESS_PORT_STRING
+);
+
+1348 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1351 
+	`´štf
+("sip_alg_process; "
+
+1353  
+NULL
+;
+
+1357 } ià(
+ÿÎ_dœeùiÚ
+ =ð
+SIP_CALL_INCOMING
+) {
+
+1358 ià((
+msgTy³
+ =ð
+SIP_ALG_INVITE_MSGTYPE
+)
+
+1359 || (
+msgTy³
+ =ð
+SIP_ALG_ACK_MSGTYPE
+)) {
+
+1362 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+, 0)
+
+1363 =ð
+TRUE
+) {
+
+1364 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1365 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1366 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+, 
+SIP_ALG_SIP
+,
+
+1367 &
+pos
+, 0);
+
+1368 
+pTmpSMsg
+ +ð(
+pos
+ - 1);
+
+1370 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1372 
+´štf
+
+
+1374 
+__LINE__
+);
+
+1375  
+NULL
+;
+
+1378 
+pSMsg
+ =
+
+1379 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1380 
+addrPÜtL’
+,
+
+1381 &
+diffL’
+, 
+modIp
+,
+
+1382 
+modL4PÜt
+,
+
+1383 
+ADDRESS_PORT_STRING
+);
+
+1384 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1388 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_TO
+, &
+pos
+, 0)
+
+1389 =ð
+TRUE
+) {
+
+1390 
+pSMsg
+ +ð
+pos
+;
+
+1391 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1392 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+, 
+SIP_ALG_GREAT
+,
+
+1393 &
+pos
+, 0);
+
+1394 
+pTmpSMsg
+ +ð
+pos
+;
+
+1395 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+1397 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1398 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1400 
+	`´štf
+("sip_alg_processing; "
+
+1402 
+__LINE__
+);
+
+1403  
+NULL
+;
+
+1406 
+pSMsg
+ =
+
+1407 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1408 
+addrPÜtL’
+,
+
+1409 &
+diffL’
+, 
+modIp
+,
+
+1410 
+modL4PÜt
+,
+
+1411 
+ADDRESS_PORT_STRING
+);
+
+1412 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1414 } ià((
+msgTy³
+ =ð
+SIP_ALG_TRYING_RINGING_MSGTYPE
+)
+
+1415 || (
+msgTy³
+ =ð
+SIP_ALG_200_OK_INVITE_MSGTYPE
+)) {
+
+1418 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_TO
+, &
+pos
+, 0)
+
+1419 =ð
+TRUE
+) {
+
+1420 
+pSMsg
+ +ð
+pos
+;
+
+1421 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1422 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+, 
+SIP_ALG_GREAT
+,
+
+1423 &
+pos
+, 0);
+
+1424 
+pTmpSMsg
+ +ð
+pos
+;
+
+1425 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+1427 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1428 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1429 
+pSMsg
+ =
+
+1430 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+,
+
+1431 &
+pSMsgEnd
+,
+
+1432 
+addrPÜtL’
+,
+
+1433 &
+diffL’
+,
+
+1434 
+modIp
+,
+
+1435 
+modL4PÜt
+,
+
+1436 
+ADDRESS_PORT_STRING
+);
+
+1437 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1440 ià(
+msgTy³
+ =ð
+SIP_ALG_200_OK_INVITE_MSGTYPE
+) {
+
+1444 ià(
+ÇtSAlgMsgF›ldPos
+
+
+1445 (
+pSMsg
+, 
+SIP_ALG_CONTACT
+, &
+pos
+,
+
+1446 0è=ð
+TRUE
+) {
+
+1447 
+pSMsg
+ +ð
+pos
+;
+
+1449 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1450 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+,
+
+1451 
+SIP_ALG_SEMICOLON
+,
+
+1452 &
+pos
+, 0);
+
+1453 
+pTmpSMsg
+ +ð
+pos
+;
+
+1455 
+æag
+ = 0;
+
+1456 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+,
+
+1457 
+SIP_ALG_AT
+, &
+pos
+,
+
+1458 30è=ð
+FALSE
+)
+
+1459 
+æag
+ = 1;
+
+1461 ià(
+æag
+)
+
+1462 
+SMsgAdvªû
+;
+
+1464 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1465 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1467 
+	`´štf
+("sip_alg_process; "
+
+1469  
+NULL
+;
+
+1472 
+pSMsg
+ =
+
+1473 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+,
+
+1474 &
+pSMsgEnd
+,
+
+1475 
+addrPÜtL’
+,
+
+1476 &
+diffL’
+,
+
+1477 
+modIp
+,
+
+1478 
+modL4PÜt
+,
+
+1479 
+ADDRESS_PORT_STRING
+);
+
+1481 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1482 
+SMsgAdvªû
+:
+
+1484 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1485 ià(
+ÇtSAlgMsgF›ldPos
+
+
+1486 (
+pSMsg
+, 
+SIP_ALG_REMOTE_PARTY_ID
+, &
+pos
+,
+
+1487 0è=ð
+TRUE
+) {
+
+1488 
+pSMsg
+ +ð
+pos
+ +
+
+1489 
+	`¡¾’
+(
+SIP_ALG_REMOTE_PARTY_ID
+);
+
+1490 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1491 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+,
+
+1492 
+SIP_ALG_GREAT
+,
+
+1493 &
+pos
+, 0);
+
+1494 
+pTmpSMsg
+ +ð
+pos
+;
+
+1495 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+,
+
+1496 
+SIP_ALG_AT
+, &
+pos
+,
+
+1498 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1499 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1501 
+pSMsg
+ =
+
+1502 
+ÇtSAlgModifyPaylßdAddrPÜt
+
+
+1503 (
+pSMsg
+, &
+pSMsgEnd
+, 
+addrPÜtL’
+,
+
+1504 &
+diffL’
+, 
+modIp
+, 
+modL4PÜt
+,
+
+1505 
+ADDRESS_PORT_STRING
+);
+
+1506 
+diffModSL’
+ +ð
+diffL’
+;
+
+1508 
+	`´štf
+("sip_alg_process: "
+
+1510 
+pSMsg
+ = 
+pTmpSMsg
+;
+
+1514 ià(
+ÇtSAlgMsgF›ldPos
+
+
+1515 (
+pSMsg
+, 
+SIP_ALG_OWNER
+, &
+pos
+,
+
+1516 0è=ð
+TRUE
+) {
+
+1517 
+pSMsg
+ +ð
+pos
+;
+
+1519 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1521 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pSMsg
+,
+
+1522 
+SIP_ALG_CRLF
+,
+
+1523 &
+pos
+,
+
+1525 
+pTmpSMsg
+ +ð
+pos
+;
+
+1528 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+,
+
+1529 
+SIP_ALG_IPV4
+, &
+pos
+,
+
+1531 
+pSMsg
+ +ð(
+pos
+ + 
+	`¡¾’
+(
+SIP_ALG_IPV4
+));
+
+1532 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+1534 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1536 
+	`´štf
+("sip_alg_processing: "
+
+1538  
+NULL
+;
+
+1541 
+pSMsg
+ =
+
+1542 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+,
+
+1543 &
+pSMsgEnd
+,
+
+1544 
+addrPÜtL’
+,
+
+1545 &
+diffL’
+,
+
+1546 
+modIp
+, 0,
+
+1547 
+ADDRESS_PORT_STRING
+);
+
+1549 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1550 
+sdpMsgL’
+ +ð
+diffL’
+;
+
+1554 ià(
+ÇtSAlgMsgF›ldPos
+
+
+1555 (
+pSMsg
+, 
+SIP_ALG_CONN
+, &
+pos
+,
+
+1556 0è=ð
+TRUE
+) {
+
+1557 
+pSMsg
+ +ð
+pos
+;
+
+1558 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1560 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pSMsg
+,
+
+1561 
+SIP_ALG_CRLF
+,
+
+1562 &
+pos
+,
+
+1564 
+pTmpSMsg
+ +ð
+pos
+;
+
+1567 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+,
+
+1568 
+SIP_ALG_IPV4
+, &
+pos
+,
+
+1570 
+pSMsg
+ +ð(
+pos
+ + 
+	`¡¾’
+(
+SIP_ALG_IPV4
+));
+
+1571 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+1573 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1575 
+	`´štf
+("sip_alg_processing: "
+
+1577  
+NULL
+;
+
+1580 
+pSMsg
+ =
+
+1581 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+,
+
+1582 &
+pSMsgEnd
+,
+
+1583 
+addrPÜtL’
+,
+
+1584 &
+diffL’
+,
+
+1585 
+modIp
+, 0,
+
+1586 
+ADDRESS_PORT_STRING
+);
+
+1588 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1589 
+sdpMsgL’
+ +ð
+diffL’
+;
+
+1593 ià(
+ÇtSAlgMsgF›ldPos
+
+
+1594 (
+pSMsg
+, 
+SIP_ALG_AUDIO
+, &
+pos
+,
+
+1595 0è=ð
+TRUE
+) {
+
+1596 
+pSMsg
+ +=
+
+1597 (
+pos
+ + 
+	`¡¾’
+(
+SIP_ALG_AUDIO
+));
+
+1598 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+1599 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1600 
+ÇtSAlgMsgF›ldPosFšdS·û
+
+
+1601 (
+pTmpSMsg
+, 
+SIP_ALG_SPACE
+, &
+pos
+,
+
+1603 
+pTmpSMsg
+ +ð
+pos
+;
+
+1604 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1608 
+pSMsg
+ =
+
+1609 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+,
+
+1610 &
+pSMsgEnd
+,
+
+1611 
+addrPÜtL’
+,
+
+1612 &
+diffL’
+, 0,
+
+1613 
+modRPÜt
+,
+
+1614 
+PORT_STRING
+);
+
+1616 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1617 
+sdpMsgL’
+ +ð
+diffL’
+;
+
+1620 } ià(
+pkt_dœeùiÚ
+ =ð
+PUBLIC
+
+
+1621 && 
+msgTy³
+ =ð
+SIP_ALG_BYE_MSGTYPE
+) {
+
+1625 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+, 0);
+
+1626 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1627 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1628 
+	`ÇtSAlgMsgF›ldPosFšdS·û
+(
+pTmpSMsg
+, 
+SIP_ALG_SPACE
+,
+
+1629 &
+pos
+, 0);
+
+1630 
+pTmpSMsg
+ +ð
+pos
+;
+
+1631 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1633 
+pSMsg
+ =
+
+1634 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1635 
+addrPÜtL’
+,
+
+1636 &
+diffL’
+, 
+modIp
+,
+
+1637 
+modL4PÜt
+,
+
+1638 
+ADDRESS_PORT_STRING
+);
+
+1639 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1643 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_TO
+, &
+pos
+, 0)
+
+1644 =ð
+TRUE
+) {
+
+1645 
+pSMsg
+ +ð
+pos
+;
+
+1646 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1647 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+, 
+SIP_ALG_GREAT
+,
+
+1648 &
+pos
+, 0);
+
+1649 
+pTmpSMsg
+ +ð
+pos
+;
+
+1650 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+1652 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1653 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1654 
+pSMsg
+ =
+
+1655 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+,
+
+1656 &
+pSMsgEnd
+,
+
+1657 
+addrPÜtL’
+,
+
+1658 &
+diffL’
+,
+
+1659 
+modIp
+,
+
+1660 
+modL4PÜt
+,
+
+1661 
+ADDRESS_PORT_STRING
+);
+
+1662 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1665 
+´štf
+
+
+1667  
+NULL
+;
+
+1669 } ià(
+pkt_dœeùiÚ
+ =ð
+PRIVATE
+
+
+1670 && 
+msgTy³
+ =ð
+SIP_ALG_BYE_MSGTYPE
+) {
+
+1674 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_VIA
+, &
+pos
+, 0)
+
+1675 =ð
+TRUE
+) {
+
+1677 
+pSMsg
+ +=
+
+1678 (
+pos
+ + 
+	`¡¾’
+(
+SIP_ALG_VIA
+) +
+
+1679 
+SIP_ALG_VIA_FIELD_IPADDR
+);
+
+1680 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1682 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+,
+
+1683 
+SIP_ALG_SEMICOLON
+, &
+pos
+,
+
+1685 
+pTmpSMsg
+ +ð
+pos
+;
+
+1686 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1688 
+	`´štf
+("sip_alg_process; No valid VIA field\n");
+
+1689  
+NULL
+;
+
+1692 
+pSMsg
+ =
+
+1693 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1694 
+addrPÜtL’
+,
+
+1695 &
+diffL’
+, 
+modIp
+, 0,
+
+1696 
+ADDRESS_PORT_STRING
+);
+
+1697 *
+diffModSL’
+ = 
+diffL’
+;
+
+1700 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_FROM
+, &
+pos
+, 0)
+
+1701 =ð
+TRUE
+) {
+
+1702 
+pSMsg
+ +ð
+pos
+;
+
+1704 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1706 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+, 
+SIP_ALG_GREAT
+,
+
+1707 &
+pos
+, 0);
+
+1708 
+pTmpSMsg
+ +ð
+pos
+;
+
+1709 
+diffL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1711 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+1713 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1715 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1717 
+´štf
+
+
+1719  
+NULL
+;
+
+1722 
+pSMsg
+ =
+
+1723 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1724 
+addrPÜtL’
+,
+
+1725 &
+diffL’
+, 
+modIp
+,
+
+1726 
+modL4PÜt
+,
+
+1727 
+ADDRESS_PORT_STRING
+);
+
+1729 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1731 } ià(
+pkt_dœeùiÚ
+ =ð
+PRIVATE
+
+
+1732 && 
+msgTy³
+ =ð
+SIP_ALG_200_OK_BYE_MSGTYPE
+) {
+
+1736 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_VIA
+, &
+pos
+, 0)
+
+1737 =ð
+TRUE
+) {
+
+1739 
+pSMsg
+ +=
+
+1740 (
+pos
+ + 
+	`¡¾’
+(
+SIP_ALG_VIA
+) +
+
+1741 
+SIP_ALG_VIA_FIELD_IPADDR
+);
+
+1742 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1744 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+,
+
+1745 
+SIP_ALG_SEMICOLON
+, &
+pos
+,
+
+1747 
+pTmpSMsg
+ +ð
+pos
+;
+
+1748 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1750 
+	`´štf
+("sip_alg_process; No valid VIA field\n");
+
+1751  
+NULL
+;
+
+1754 
+pSMsg
+ =
+
+1755 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1756 
+addrPÜtL’
+,
+
+1757 &
+diffL’
+, 
+modIp
+, 0,
+
+1758 
+ADDRESS_PORT_STRING
+);
+
+1759 *
+diffModSL’
+ = 
+diffL’
+;
+
+1762 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+,
+
+1763 
+SIP_ALG_FROM
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+1764 
+pSMsg
+ +ð
+pos
+;
+
+1766 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1768 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+, 
+SIP_ALG_GREAT
+,
+
+1769 &
+pos
+, 0);
+
+1770 
+pTmpSMsg
+ +ð
+pos
+;
+
+1771 
+diffL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1773 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+1775 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1777 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1779 
+´štf
+
+
+1781  
+NULL
+;
+
+1784 
+pSMsg
+ =
+
+1785 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1786 
+addrPÜtL’
+,
+
+1787 &
+diffL’
+, 
+modIp
+,
+
+1788 
+modL4PÜt
+,
+
+1789 
+ADDRESS_PORT_STRING
+);
+
+1791 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1793 } ià(
+pkt_dœeùiÚ
+ =ð
+PUBLIC
+
+
+1794 && 
+msgTy³
+ =ð
+SIP_ALG_200_OK_BYE_MSGTYPE
+) {
+
+1796 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_TO
+, &
+pos
+, 0)
+
+1797 =ð
+TRUE
+) {
+
+1798 
+pSMsg
+ +ð
+pos
+;
+
+1800 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1802 
+	`ÇtSAlgMsgF›ldPos
+(
+pTmpSMsg
+, 
+SIP_ALG_GREAT
+,
+
+1803 &
+pos
+, 0);
+
+1804 
+pTmpSMsg
+ +ð
+pos
+;
+
+1805 
+diffL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1807 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+1809 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1811 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1813 
+´štf
+
+
+1815  
+NULL
+;
+
+1818 
+pSMsg
+ = 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(pSipMsg,
+
+1819 &
+pSMsgEnd
+,
+
+1820 
+addrPÜtL’
+,
+
+1821 &
+diffL’
+, 
+modIp
+,
+
+1822 
+modL4PÜt
+,
+
+1823 
+ADDRESS_PORT_STRING
+);
+
+1825 *
+diffModSL’
+ = 
+diffL’
+;
+
+1829 ià(
+ÇtSAlgMsgF›ldPos
+
+
+1830 (
+pSMsg
+, 
+SIP_ALG_CONTACT
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+1831 
+pSMsg
+ +ð
+pos
+;
+
+1833 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1834 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pTmpSMsg
+,
+
+1835 
+SIP_ALG_CRLF
+, &
+pos
+,
+
+1837 
+pTmpSMsg
+ +ð
+pos
+;
+
+1839 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AT
+, &
+pos
+,
+
+1841 
+pSMsg
+ +ð
+pos
+ + 1;
+
+1842 
+addrPÜtL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1844 
+	`´štf
+("sip_alg_process; "
+
+1846  
+NULL
+;
+
+1849 
+pSMsg
+ =
+
+1850 
+	`ÇtSAlgModifyPaylßdAddrPÜt
+(
+pSMsg
+, &
+pSMsgEnd
+,
+
+1851 
+addrPÜtL’
+,
+
+1852 &
+diffL’
+, 
+modIp
+,
+
+1853 
+modL4PÜt
+,
+
+1854 
+ADDRESS_PORT_STRING
+);
+
+1856 *
+diffModSL’
+ +ð
+diffL’
+;
+
+1860 
+SMsgAdvªû2
+:
+
+1862 ià(
+ÿÎ_dœeùiÚ
+ =ð
+SIP_CALL_OUTGOING
+) {
+
+1864 ià(
+pkt_dœeùiÚ
+ =ð
+PRIVATE
+) {
+
+1865 ià(
+msgTy³
+ =ð
+SIP_ALG_200_OK_BYE_MSGTYPE
+) {
+
+1866 ià(
+»move_s_®g_’Œy
+
+
+1867 (
+	`¹e_bsw­32
+(
+_h
+->
+¤c_addr
+),
+
+1868 
+	`¹e_bsw­16
+(
+udp_h
+->
+¤c_pÜt
+)) < 0)
+
+1869 
+	`´štf
+("removesipalgentry failed: "
+
+1871 
+_h
+->
+¤c_addr
+, 
+udp_h
+->
+¤c_pÜt
+);
+
+1875 ià(
+pkt_dœeùiÚ
+ =ð
+PUBLIC
+) {
+
+1876 ià(
+msgTy³
+ =ð
+SIP_ALG_200_OK_BYE_MSGTYPE
+) {
+
+1877 ià(
+	`»move_s_®g_’Œy
+(
+pubIp
+, 
+pubL4PÜt
+) < 0)
+
+1878 
+	`´štf
+("removesipalgentry failed: "
+
+1880 
+pubIp
+, 
+pubL4PÜt
+);
+
+1886 ià((
+sdpMsgL’
+ > 0è&& (
+sdpD©aL’
+ > 0)) {
+
+1887 
+pSMsg
+ = 
+pS¹SMsg
+;
+
+1888 *
+tmpSdpL’
+ = 
+NULL
+;
+
+1890 
+sdpMsgL’
+ +ð
+sdpD©aL’
+;
+
+1891 
+tmpSdpL’
+ = 
+	`™ß
+(
+sdpMsgL’
+);
+
+1892 
+tmpSŒL’
+ = 
+	`¡¾’
+(
+tmpSdpL’
+);
+
+1895 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_CONTENT_LEN
+, &
+pos
+, 0)
+
+1896 =ð
+TRUE
+) {
+
+1897 
+pSMsg
+ +ð(
+pos
+ + 
+	`TAG_TO_DATAPOS
+(
+SIP_ALG_CONTENT_LEN
+));
+
+1898 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+1899 
+pTmpSMsg
+ = 
+pSMsg
+;
+
+1900 
+	`ÇtSAlgMsgF›ldPosFšdC¾f
+(
+pTmpSMsg
+,
+
+1901 
+SIP_ALG_DOUBLE_CRLF
+, &
+pos
+,
+
+1903 
+pTmpSMsg
+ +ð
+pos
+;
+
+1904 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+1905 
+diffL’
+ = 
+pTmpSMsg
+ - 
+pSMsg
+;
+
+1906 
+	`ÇtSAlgAdju¡Msg
+(
+pSMsg
+, &
+pSMsgEnd
+, 
+tmpSŒL’
+,
+
+1907 
+diffL’
+);
+
+1908 
+	`¡ºýy
+(
+pSMsg
+, 
+tmpSdpL’
+, 
+tmpSŒL’
+);
+
+1910 
+	`´štf
+("sip_alg_process: Invalid Content Length\n");
+
+1911  
+NULL
+;
+
+1915 
+sAlgProûssEx™
+:
+
+1917  
+pS¹SMsg
+;
+
+1918 
+	}
+}
+
+1924 
+	$ÇtSAlgG‘AudioPÜts
+(
+¹e_mbuf
+ *
+pkt
+, 
+ušt16_t
+ *
+¹pPÜt
+,
+
+1925 
+ušt16_t
+ *
+¹ýPÜt
+)
+
+1927 
+v4_hdr
+ *
+_h
+;
+
+1928 
+‘h”_hdr
+ *
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+pkt
+, ether_hdr *);
+
+1929 
+udp_hdr
+ *
+udp_h
+;
+
+1930 *
+pSMsg
+, *
+pEndPŒ
+;
+
+1931 
+pos
+, 
+sdpMsgL’
+;
+
+1933 
+_h
+ = (
+v4_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+1934 
+udp_h
+ = (
+udp_hdr
+ *)((*)
+_h
+ + (
+v4_hdr
+));
+
+1935 
+pSMsg
+ = ((*)
+udp_h
+ + (
+udp_hdr
+));
+
+1938 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_CONTYPE
+, &
+pos
+, 0è=ð
+FALSE
+)
+
+1941 
+pSMsg
+ +ð(
+pos
+ + 
+	`TAG_TO_DATAPOS
+(
+SIP_ALG_CONTYPE
+));
+
+1942 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+1945 ià(!
+	`IS_STRING_SAME
+(
+pSMsg
+, 
+SIP_ALG_APPSDP
+)) {
+
+1946 
+	`´štf
+("sip_alg_getAudioPort Invalid Contentype\n");
+
+1951 
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_CONTENT_LEN
+, &
+pos
+, 0);
+
+1952 
+pSMsg
+ +ð(
+pos
+ + 
+	`TAG_TO_DATAPOS
+(
+SIP_ALG_CONTENT_LEN
+));
+
+1953 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+1954 
+sdpMsgL’
+ = 
+	`¡¹Þ
+(
+pSMsg
+, &
+pEndPŒ
+, 10);
+
+1955 ià(!
+sdpMsgL’
+) {
+
+1956 
+	`´štf
+("sipAlggetAudioport - sdpMsgLen is 0\n");
+
+1961 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_AUDIO
+, &
+pos
+, 0) ==
+
+1962 
+TRUE
+) {
+
+1963 
+pSMsg
+ +ð(
+pos
+ + 
+	`TAG_TO_DATAPOS
+(
+SIP_ALG_AUDIO
+));
+
+1964 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+1965 *
+¹pPÜt
+ = 
+	`¡¹Þ
+(
+pSMsg
+, &
+pEndPŒ
+, 10);
+
+1967 *
+¹pPÜt
+ = 0;
+
+1970 ià(
+	`ÇtSAlgMsgF›ldPos
+(
+pSMsg
+, 
+SIP_ALG_RTCP
+, &
+pos
+, 0) ==
+
+1971 
+TRUE
+) {
+
+1972 
+pSMsg
+ +ð(
+pos
+ + 
+	`TAG_TO_DATAPOS
+(
+SIP_ALG_RTCP
+));
+
+1973 
+	`SKIP_SPACES
+(
+pSMsg
+);
+
+1974 *
+¹ýPÜt
+ = 
+	`¡¹Þ
+(
+pSMsg
+, &
+pEndPŒ
+, 10);
+
+1976 *
+¹ýPÜt
+ = 0;
+
+1978 ià(
+ALG_DEBUG
+)
+
+1979 
+	`´štf
+(" sipAlgGetAudioPort;„tpPort %d,„tcpPort %d\n",
+
+1980 *
+¹pPÜt
+, *
+¹ýPÜt
+);
+
+1982 
+	}
+}
+
+1986 
+	$ÇtSAlgMsgF›ldPosFšdS·û
+(*
+pD©a
+, cÚ¡ *
+pIdSŒ
+, *
+pPos
+,
+
+1987 
+£¬chL’
+)
+
+1989 *
+pS¹
+ = 
+pD©a
+;
+
+1990 
+i
+ = 0;
+
+1992 ià(!
+pIdSŒ
+)
+
+1993  
+FALSE
+;
+
+1995 ià(!
+£¬chL’
+)
+
+1996 
+£¬chL’
+ = 1500;
+
+1998 
+TRUE
+) {
+
+1999 *
+pD©a
+ != ' ') {
+
+2000 
+pD©a
+++;
+
+2001 
+i
+++;
+
+2004 ià(
+i
+ > 
+£¬chL’
+) {
+
+2005 
+	`´štf
+("SIP ALG Find Field Pos: "
+
+2007 
+£¬chL’
+);
+
+2008 *
+pPos
+ = 
+£¬chL’
+;
+
+2009  
+FALSE
+;
+
+2012 ià(
+	`bcmp
+(
+pD©a
+, 
+pIdSŒ
+, 
+	`¡¾’
+(pIdStr)) == 0)
+
+2016 *
+pPos
+ = 
+pD©a
+ - 
+pS¹
+;
+
+2017  
+TRUE
+;
+
+2018 
+	}
+}
+
+2021 
+	$ÇtSAlgMsgF›ldPosFšdC¾f
+(
+
+2022 *
+pD©a
+,
+
+2023 cÚ¡ *
+pIdSŒ
+,
+
+2024 *
+pPos
+,
+
+2025 
+£¬chL’
+)
+
+2027 *
+pS¹
+ = 
+pD©a
+;
+
+2028 
+i
+ = 0;
+
+2030 ià(!
+pIdSŒ
+)
+
+2031  
+FALSE
+;
+
+2033 ià(!
+£¬chL’
+)
+
+2034 
+£¬chL’
+ = 1500;
+
+2036 
+TRUE
+) {
+
+2037 *
+pD©a
+ != '\r' && *(pData + 1) != '\n') {
+
+2038 
+pD©a
+++;
+
+2039 
+i
+++;
+
+2041 ià(
+i
+ >ð
+£¬chL’
+) {
+
+2042 
+	`´štf
+("SIP ALG Find Field Pos: "
+
+2044 
+£¬chL’
+);
+
+2045 *
+pPos
+ = 
+£¬chL’
+;
+
+2046  
+FALSE
+;
+
+2049 ià(
+	`bcmp
+(
+pD©a
+, 
+pIdSŒ
+, 
+	`¡¾’
+(pIdStr)) == 0)
+
+2053 *
+pPos
+ = 
+pD©a
+ - 
+pS¹
+;
+
+2054  
+TRUE
+;
+
+2055 
+	}
+}
+
+2058 
+	$ÇtSAlgMsgF›ldPos
+(*
+pD©a
+,
+
+2059 cÚ¡ *
+pIdSŒ
+,
+
+2060 *
+pPos
+,
+
+2061 
+£¬chL’
+)
+
+2063 *
+pS¹
+ = 
+pD©a
+;
+
+2064 
+i
+ = 0, 
+j
+ = 0;
+
+2066 ià(!
+pIdSŒ
+)
+
+2067  
+FALSE
+;
+
+2069 ià(!
+£¬chL’
+)
+
+2070 
+£¬chL’
+ = 1500;
+
+2072 
+TRUE
+) {
+
+2073 *
+pD©a
+ != '\r' && *(pData + 1) != '\n') {
+
+2076 *
+pD©a
+ == ' ') {
+
+2077 
+pD©a
+++;
+
+2078 
+j
+++;
+
+2081 ià(*
+pD©a
+ == '\r' && *(pData + 1) == '\n')
+
+2084 ià(
+	`bcmp
+(
+pD©a
+, 
+pIdSŒ
+, 
+	`¡¾’
+(pIdStr)) == 0) {
+
+2085 *
+pPos
+ = 
+pD©a
+ - 
+pS¹
+;
+
+2086  
+TRUE
+;
+
+2089 
+pD©a
+++;
+
+2090 
+j
+++;
+
+2092 ià(
+j
+ >ð
+£¬chL’
+) {
+
+2093 *
+pPos
+ = 
+pD©a
+ - 
+pS¹
+;
+
+2094  
+FALSE
+;
+
+2101 
+i
+ = 0; i < (
+£¬chL’
+ - 1); i++) {
+
+2102 ià(
+pD©a
+[
+i
+] == '\r')
+
+2103 ià(
+pD©a
+[
+i
+ + 1] == '\n')
+
+2107 ià(
+i
+ > 
+£¬chL’
+) {
+
+2108 
+	`´štf
+("SIP ALG Find Field Pos: "
+
+2110 
+£¬chL’
+);
+
+2111 *
+pPos
+ = 
+£¬chL’
+;
+
+2112  
+FALSE
+;
+
+2115 
+pD©a
+ +ð
+i
+ + 2;
+
+2116 
+£¬chL’
+ -ð(
+i
+ + 2);
+
+2118 ià((
+pD©a
+[0] == '\r' &&…Data[1] == '\n') ||
+
+2119 (
+£¬chL’
+ <= 0)) {
+
+2122 ià(
+£¬chL’
+ > 0) {
+
+2123 
+pD©a
+ += 2;
+
+2127 *
+pPos
+ = 
+pD©a
+ - 
+pS¹
+;
+
+2129  
+FALSE
+;
+
+2133 *
+pPos
+ = 
+pD©a
+ - 
+pS¹
+;
+
+2134  
+TRUE
+;
+
+2135 
+	}
+}
+
+2138 *
+	$g‘SC®lIdSŒ
+(*
+pMsg
+)
+
+2140 *
+pS¹
+;
+
+2141 *
+pC®lId
+ = 
+NULL
+;
+
+2142 
+i
+;
+
+2144 
+pS¹
+ = 
+pMsg
+;
+
+2145 
+i
+ = 0; i < 200; i++) {
+
+2146 ià(*
+pMsg
+ != '\r')
+
+2147 
+pMsg
+++;
+
+2151 ià(
+i
+ >= 200) {
+
+2152 
+	`´štf
+("SIP_ALG: getCallid wrong string format\n");
+
+2153  
+NULL
+;
+
+2156 
+size_t
+ 
+size
+ = 
+	`RTE_CACHE_LINE_ROUNDUP
+(
+pMsg
+ - 
+pS¹
+ + 1);
+
+2158 
+pC®lId
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+2159 ià(!
+pC®lId
+)
+
+2160  
+NULL
+;
+
+2162 
+	`bcÝy
+(
+pS¹
+, 
+pC®lId
+, 
+pMsg
+ -…Start);
+
+2163 *(
+pC®lId
+ + (
+pMsg
+ - 
+pS¹
+)) = 0;
+
+2165 ià(
+ALG_DEBUG
+)
+
+2166 
+	`´štf
+("%s: %s\n", 
+__func__
+, 
+pC®lId
+);
+
+2168  
+pC®lId
+;
+
+2169 
+	}
+}
+
+2171 *
+	$ÇtSAlgModifyPaylßdAddrPÜt
+(
+
+2172 *
+pSMsg
+, **
+pSMsgEnd
+,
+
+2173 
+ušt32_t
+ 
+ÞdSŒL’
+, ušt32_ˆ*
+diffL’
+,
+
+2174 
+ušt32_t
+ 
+modIp
+, 
+ušt16_t
+ 
+modPÜt
+, ušt32_ˆ
+ty³
+)
+
+2176 
+add½Üt
+[
+MAX_ADDR_PORT_SIZE
+];
+
+2177 
+š_addr
+ 
+Addr
+;
+
+2178 
+ušt32_t
+ 
+ÃwSŒL’
+ = 0;
+
+2179 *
+tmpPÜt
+ = 
+NULL
+;
+
+2181 ià(
+modPÜt
+ != 0)
+
+2182 
+tmpPÜt
+ = 
+	`™ß
+(
+modPÜt
+);
+
+2184 *
+diffL’
+ = 0;
+
+2185 ià(
+ty³
+ =ð
+ADDRESS_PORT_STRING
+) {
+
+2186 
+Addr
+.
+s_addr
+ = 
+	`htÚl
+(
+modIp
+);
+
+2187 *
+tmpAddr
+ = 
+	`š‘_Áß
+(
+Addr
+);
+
+2189 ià(
+modPÜt
+ != 0)
+
+2190 
+	`¥rštf
+(
+add½Üt
+, "%s:%s", 
+tmpAddr
+, 
+tmpPÜt
+);
+
+2192 
+	`¥rštf
+(
+add½Üt
+, "%s", 
+tmpAddr
+);
+
+2194 
+ÃwSŒL’
+ = 
+	`¡¾’
+(
+add½Üt
+);
+
+2196 ià(
+	`abs
+(
+ÃwSŒL’
+ - 
+ÞdSŒL’
+) > 0) {
+
+2201 
+	`ÇtSAlgAdju¡Msg
+(
+pSMsg
+, 
+pSMsgEnd
+,
+
+2202 
+ÃwSŒL’
+, 
+ÞdSŒL’
+);
+
+2206 
+	`¡ºýy
+(
+pSMsg
+, 
+add½Üt
+, 
+	`¡¾’
+(addrport));
+
+2207 } ià(
+ty³
+ =ð
+PORT_STRING
+) {
+
+2208 if(
+tmpPÜt
+)
+
+2209 
+ÃwSŒL’
+ = 
+	`¡¾’
+(
+tmpPÜt
+);
+
+2211 ià(
+	`abs
+(
+ÃwSŒL’
+ - 
+ÞdSŒL’
+) > 0) {
+
+2216 
+	`ÇtSAlgAdju¡Msg
+(
+pSMsg
+, 
+pSMsgEnd
+,
+
+2217 
+ÃwSŒL’
+, 
+ÞdSŒL’
+);
+
+2221 if(
+tmpPÜt
+)
+
+2222 
+	`¡ºýy
+(
+pSMsg
+, 
+tmpPÜt
+, 
+	`¡¾’
+(tmpPort));
+
+2225 ià(
+ÃwSŒL’
+ > 
+ÞdSŒL’
+)
+
+2226 *
+diffL’
+ = 
+ÃwSŒL’
+ - 
+ÞdSŒL’
+;
+
+2228  
+pSMsg
+;
+
+2229 
+	}
+}
+
+2231 *
+	$ÇtSAlgAdju¡Msg
+(*
+pSMsg
+, **
+pSMsgEnd
+,
+
+2232 
+ušt32_t
+ 
+ÃwSŒL’
+, ušt32_ˆ
+ÞdSŒL’
+)
+
+2234 
+MsgBufãr
+[
+MAX_SIP_UDP_MSG_SIZE
+];
+
+2236 ià(
+ÃwSŒL’
+ > 
+ÞdSŒL’
+) {
+
+2237 
+pSMsg
+ +ð
+ÞdSŒL’
+;
+
+2238 
+msgL’
+ = *
+pSMsgEnd
+ - 
+pSMsg
+;
+
+2240 
+	`¡ºýy
+(
+MsgBufãr
+, 
+pSMsg
+, 
+msgL’
+);
+
+2241 
+pSMsg
+ +ð(
+ÃwSŒL’
+ - 
+ÞdSŒL’
+);
+
+2242 
+	`¡ºýy
+(
+pSMsg
+, 
+MsgBufãr
+, 
+msgL’
+);
+
+2244 ià(
+ALG_DEBUG
+)
+
+2245 
+	`´štf
+("ÇtSAlgAdju¡Msg: %u\n", 
+msgL’
+);
+
+2248 *
+pSMsgEnd
+ +ð(
+ÃwSŒL’
+ - 
+ÞdSŒL’
+);
+
+2251 
+	`mem£t
+(
+pSMsg
+, ' ', 
+ÞdSŒL’
+);
+
+2254  
+pSMsg
+;
+
+2255 
+	}
+}
+
+	@VIL/alg/lib_sip_alg.h
+
+17 #iâdeà
+__INCLUDE_LIB_ALG_H__
+
+
+18 
+	#__INCLUDE_LIB_ALG_H__
+
+
+	)
+
+20 
+	~"¹e_‘h”.h
+"
+
+22 
+ušt16_t
+ 
+	gs_£ssiÚ_numb”
+;
+
+23 
+	#IS_STRING_SAME
+(
+pSŒ
+, 
+¡rId
+è(
+	`bcmp
+(ÕSŒ), sŒId, 
+	`¡¾’
+(¡rId)è=ð0)
+
+	)
+
+24 
+	#TAG_TO_DATAPOS
+(
+¡r
+è(
+	`¡¾’
+(¡rè+ 1)
+
+	)
+
+25 
+	#SKIP_SPACES
+(
+pSŒ
+) \
+
+27 *(*)(
+pSŒ
+) == ' ') \
+
+28 (*)(
+pSŒ
+)++; \
+
+29 }
+
+	)
+
+31 
+	epkt_dœ
+ {
+	mPRIVATE
+, 
+	mPUBLIC
+};
+
+34 
+	es_®g_ÿÎ_dœeùiÚ
+ {
+
+35 
+	mSIP_CALL_INCOMING
+,
+
+36 
+	mSIP_CALL_OUTGOING
+
+
+40 
+	es_®g_pÜt_ty³
+ {
+
+41 
+	mSIP_UDP
+,
+
+42 
+	mSIP_RTP
+,
+
+43 
+	mSIP_RTCP
+
+
+50 
+	ss_®g_key
+ {
+
+55 
+ušt32_t
+ 
+	m_add»ss
+;
+
+56 
+ušt16_t
+ 
+	ml4pÜt
+;
+
+57 
+ušt8_t
+ 
+	mfžËr1
+;
+
+58 
+ušt8_t
+ 
+	mfžËr2
+;
+
+65 
+	ss_®g_bË_’Œy
+ {
+
+66 
+ušt32_t
+ 
+	m_add»ss
+;
+
+71 
+ušt16_t
+ 
+	ml4pÜt
+;
+
+72 
+ušt8_t
+ 
+	ms_®g_ÿÎ_dœeùiÚ
+;
+
+74 
+ušt8_t
+ 
+	ms_®g_ÿÎ_id
+[100];
+
+75 
+ušt8_t
+ 
+	ml4pÜt_ty³
+;
+
+76 
+ušt8_t
+ 
+	mfžËr1
+;
+
+77 
+ušt16_t
+ 
+	mfžËr2
+;
+
+78 
+ušt32_t
+ 
+	mfžËr3
+;
+
+79 } 
+	g__¹e_ÿche_®igÃd
+;
+
+94 
+lib_s_®g_š™
+();
+
+117 
+s_®g_dpi
+(
+¹e_mbuf
+ *
+pkt
+, 
+pkt_dœ
+ 
+pkt_dœeùiÚ
+,
+
+118 
+ušt32_t
+ 
+modIp
+, 
+ušt16_t
+ 
+modL4PÜt
+,
+
+119 
+ušt32_t
+ 
+pubIp
+, 
+ušt16_t
+ 
+pubL4PÜt
+,
+
+120 
+ušt16_t
+ 
+modRPÜt
+, ušt16_ˆ
+modRtýPÜt
+);
+
+133 
+ÇtSAlgG‘AudioPÜts
+(
+
+134 
+¹e_mbuf
+ *
+pkt
+,
+
+135 
+ušt16_t
+ *
+¹pPÜt
+,
+
+136 
+ušt16_t
+ *
+¹ý_pÜt
+);
+
+137 
+ÇtSAlgMsgF›ldPos
+(
+
+138 *
+pD©a
+,
+
+139 cÚ¡ *
+pIdSŒ
+,
+
+140 *
+pos
+,
+
+141 
+£¬chL’
+);
+
+142 
+ÇtSAlgMsgF›ldPosFšdC¾f
+(
+
+143 *
+pD©a
+,
+
+144 cÚ¡ *
+pIdSŒ
+,
+
+145 *
+pPos
+,
+
+146 
+£¬chL’
+);
+
+147 
+ÇtSAlgMsgF›ldPosFšdS·û
+(
+
+148 *
+pD©a
+,
+
+149 cÚ¡ *
+pIdSŒ
+,
+
+150 *
+pPos
+,
+
+151 
+£¬chL’
+);
+
+152 
+»move_s_®g_’Œy
+(
+
+153 
+ušt32_t
+ 
+addr
+,
+
+154 
+ušt16_t
+ 
+pÜtid
+);
+
+	@VIL/conntrack/rte_cnxn_tracking.c
+
+17 
+	~<¹e_‘h”.h
+>
+
+18 
+	~<¹e_´eãtch.h
+>
+
+19 
+	~<¹e_cyþes.h
+>
+
+20 
+	~<¹e_m®loc.h
+>
+
+21 
+	~<¹e_memýy.h
+>
+
+22 
+	~<¹e_tim”.h
+>
+
+23 
+	~<¹e_¥šlock.h
+>
+
+24 
+	~"¹e_úxn_Œackšg.h
+"
+
+25 
+	~"¹e_ù_tý.h
+"
+
+27 
+	#CNXN_TRX_DEBUG
+ 0
+
+	)
+
+28 
+	#TESTING_TIMERS
+ 0
+
+	)
+
+29 
+	#RTE_CT_TIMER_EXPIRED_DUMP
+ 0
+
+	)
+
+31 
+	#META_DATA_OFFSET
+ 128
+
+	)
+
+32 
+	#ETHERNET_START
+ (
+META_DATA_OFFSET
+ + 
+RTE_PKTMBUF_HEADROOM
+)
+
+	)
+
+33 
+	#ETH_HDR_SIZE
+ 14
+
+	)
+
+34 
+	#IP_START
+ (
+ETHERNET_START
+ + 
+ETH_HDR_SIZE
+)
+
+	)
+
+35 
+	#PROTOCOL_START
+ (
+IP_START
+ + 9)
+
+	)
+
+36 
+	#SRC_ADDR_START
+ (
+IP_START
+ + 12)
+
+	)
+
+37 
+	#TCP_START
+ (
+IP_START
+ + 20)
+
+	)
+
+40 
+	#PROTOCOL_START_IPV6
+ (
+IP_START
+ + 6)
+
+	)
+
+41 
+	#SRC_ADDR_START_IPV6
+ (
+IP_START
+ + 8)
+
+	)
+
+42 
+	#TCP_START_IPV6
+ (
+IP_START
+ + 40)
+
+	)
+
+44 
+	#TCP_PROTOCOL
+ 6
+
+	)
+
+45 
+	#UDP_PROTOCOL
+ 17
+
+	)
+
+46 
+	#TCP_FW_IPV4_KEY_SIZE
+ 16
+
+	)
+
+48 
+	#TCP_FW_IPV6_KEY_SIZE
+ 40
+
+	)
+
+50 
+	#IPv4_HEADER_SIZE
+ 20
+
+	)
+
+51 
+	#IPv6_HEADER_SIZE
+ 40
+
+	)
+
+53 
+	#IP_VERSION_4
+ 4
+
+	)
+
+54 
+	#IP_VERSION_6
+ 6
+
+	)
+
+57 
+¹e_ù_úxn_Œack”_b©ch_lookup_basic_ty³
+(
+
+58 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+59 
+¹e_mbuf
+ **
+pkts
+,
+
+60 
+ušt64_t
+ *
+pkts_mask
+,
+
+61 
+ušt64_t
+ 
+no_Ãw_úxn_mask
+,
+
+62 
+ušt64_t
+ *
+Ȧy_pkt_mask
+,
+
+63 
+ušt64_t
+ *
+hijack_mask
+,
+
+64 
+ušt8_t
+ 
+_hdr_size_by‹s
+);
+
+74 
+	$¹e_ù_úxn_´št_pkt
+(
+¹e_mbuf
+ *
+pkt
+, 
+ušt8_t
+ 
+ty³
+)
+
+76 
+i
+;
+
+77 
+ušt8_t
+ *
+rd
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+, 
+IP_START
+);
+
+79 
+	`´štf
+("\n");
+
+80 
+	`´štf
+("IP‡nd TCP/UDP headers:\n");
+
+82 ià(
+ty³
+ =ð
+IP_VERSION_4
+) {
+
+83 
+i
+ = 0; i < 40; i++) {
+
+84 
+	`´štf
+("%02x ", 
+rd
+[
+i
+]);
+
+85 ià((
+i
+ & 3) == 3)
+
+86 
+	`´štf
+("\n");
+
+88 
+	`´štf
+("\n");
+
+91 ià(
+ty³
+ =ð
+IP_VERSION_6
+) {
+
+92 
+i
+ = 0; i < 60; i++) {
+
+93 
+	`´štf
+("%02x ", 
+rd
+[
+i
+]);
+
+94 ià((
+i
+ & 3) == 3)
+
+95 
+	`´štf
+("\n");
+
+97 
+	`´štf
+("\n");
+
+100 
+	}
+}
+
+103 
+	$¹e_úxn__ty³
+(
+ušt8_t
+ *
+ty³
+, 
+¹e_mbuf
+ *
+pkt
+)
+
+106 
+_hdr_size_by‹s
+ = 
+	`¹e_ù_g‘_IP_hdr_size
+(
+pkt
+);
+
+108 ià(
+_hdr_size_by‹s
+ =ð
+IPv4_HEADER_SIZE
+)
+
+109 *
+ty³
+ = 
+IP_VERSION_4
+;
+
+111 ià(
+_hdr_size_by‹s
+ =ð
+IPv6_HEADER_SIZE
+)
+
+112 *
+ty³
+ = 
+IP_VERSION_6
+;
+
+113 
+	}
+}
+
+116 
+	$¹e_ù_´št_hashkey
+(
+ušt32_t
+ *
+key
+)
+
+118 
+	`´štf
+("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št8_t
+
+
+134 
+	$¹e_ù_ü—‹_úxn_hashkey
+(
+
+135 
+ušt32_t
+ *
+¤c_addr
+,
+
+136 
+ušt32_t
+ *
+d¡_addr
+,
+
+137 
+ušt16_t
+ 
+¤c_pÜt
+,
+
+138 
+ušt16_t
+ 
+d¡_pÜt
+,
+
+139 
+ušt8_t
+ 
+´Ùo
+,
+
+140 
+ušt32_t
+ *
+key
+,
+
+141 
+ušt8_t
+ 
+ty³
+)
+
+143 
+ušt8_t
+ 
+hash_Üd”_Üigš®_dœeùiÚ
+ = 1;
+
+145 
+key
+[9] = 
+´Ùo
+;
+
+147 ià(
+ty³
+ =ð
+IP_VERSION_4
+) {
+
+148 
+ušt32_t
+ 
+sourû
+ = *
+¤c_addr
+;
+
+149 
+ušt32_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”_Üigš®_dœeùiÚ
+ = 0;
+
+166 ià(
+ty³
+ =ð
+IP_VERSION_6
+) {
+
+167 
+_cmp
+ = 
+	`memcmp
+(
+¤c_addr
+, 
+d¡_addr
+, 16);
+
+168 
+ušt32_t
+ *
+lo_addr
+;
+
+169 
+ušt32_t
+ *
+hi_addr
+;
+
+171 ià((
+_cmp
+ < 0è|| ((_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”_Üigš®_dœeù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_ù_´št_hashkey
+(
+key
+);
+
+194  
+hash_Üd”_Üigš®_dœeùiÚ
+;
+
+195 
+	}
+}
+
+199 
+	$¹e_ù_g‘_IP_hdr_size
+(
+¹e_mbuf
+ *
+pkt
+)
+
+207 
+ušt8_t
+ 
+hdr_chk
+ = 
+	`RTE_MBUF_METADATA_UINT8
+(
+pkt
+, 
+IP_START
+);
+
+209 
+hdr_chk
+ = hdr_chk >> 4;
+
+211 ià(
+hdr_chk
+ =ð
+IP_VERSION_4
+)
+
+212  
+IPv4_HEADER_SIZE
+;
+
+214 ià(
+hdr_chk
+ =ð
+IP_VERSION_6
+)
+
+215  
+IPv6_HEADER_SIZE
+;
+
+224 
+	}
+}
+
+227 
+	$¹e_ù_£t_tim”_fÜ_Ãw_úxn
+(
+
+228 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+229 
+¹e_ù_úxn_d©a
+ *
+cd
+)
+
+231 
+cd
+->
+¡©e_u£d_fÜ_tim”
+ = 
+RTE_CT_TCP_NONE
+;
+
+232 
+	`¹e_ù_£t_úxn_tim”_fÜ_tý
+(
+ù
+, 
+cd
+, 
+RTE_CT_TCP_SYN_SENT
+);
+
+233 
+	}
+}
+
+264 
+šlše
+ 
+
+265 
+	$¹e_ù_»memb”_Ãw_cÚÃùiÚ
+(
+
+266 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+267 
+¹e_ù_úxn_d©a
+ *
+’Œy
+)
+
+269 
+ù
+->
+ϋ¡_cÚÃùiÚ
+++;
+
+270 
+ù
+->
+Ãw_cÚÃùiÚs
+[ù->
+ϋ¡_cÚÃùiÚ
+] = 
+’Œy
+;
+
+271 
+	}
+}
+
+273 
+¹e_ù_úxn_d©a
+ *
+
+274 
+	$¹e_ù_£¬ch_Ãw_cÚÃùiÚs
+(
+¹e_ù_úxn_Œack”
+ *
+ù
+, 
+ušt32_t
+ *
+key
+)
+
+276 
+i
+;
+
+278 
+i
+ = 0; i <ð
+ù
+->
+ϋ¡_cÚÃùiÚ
+; i++) {
+
+279 
+ušt32_t
+ *
+úxn_key
+ = 
+ù
+->
+Ãw_cÚÃùiÚs
+[
+i
+]->
+key
+;
+
+280 
+key_cmp
+ = 
+	`memcmp
+(
+úxn_key
+, 
+key
+,
+
+281 (
+ù
+->
+Ãw_cÚÃùiÚs
+[
+i
+]->
+key
+));
+
+283 ià(
+key_cmp
+ == 0)
+
+284  
+ù
+->
+Ãw_cÚÃùiÚs
+[
+i
+];
+
+286  
+NULL
+;
+
+287 
+	}
+}
+
+289 
+šlše
+ 
+	$¹e_ù_fÜg‘_Ãw_cÚÃùiÚs
+(
+¹e_ù_úxn_Œack”
+ *
+ù
+)
+
+291 
+ù
+->
+ϋ¡_cÚÃùiÚ
+ = -1;
+
+292 
+	}
+}
+
+297 
+¹e_ù_·ck‘_aùiÚ
+
+
+298 
+	$¹e_ù_hªdË_tý_lookup
+(
+
+299 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+300 
+¹e_mbuf
+ *
+·ck‘
+,
+
+301 
+ušt8_t
+ 
+pkt_num
+,
+
+302 
+ušt8_t
+ 
+key_is_þ›Á_Üd”
+,
+
+303 
+ušt32_t
+ *
+key
+,
+
+304 
+hash_bË_’Œy
+,
+
+305 
+no_Ãw_úxn
+,
+
+306 
+ušt8_t
+ 
+_hdr_size_by‹s
+)
+
+308 
+¹e_ù_úxn_d©a
+ 
+Ãw_úxn_d©a
+;
+
+310 
+	`mem£t
+(&
+Ãw_úxn_d©a
+, 0, (
+¹e_ù_úxn_d©a
+));
+
+311 
+¹e_ù_·ck‘_aùiÚ
+ 
+·ck‘_aùiÚ
+;
+
+313 #ifdeà
+CT_CGNAT
+
+
+314 
+št32_t
+ 
+pos™iÚ
+ = 
+hash_bË_’Œy
+;
+
+315 
+ù
+->
+pos™iÚs
+[
+pkt_num
+] = 
+pos™iÚ
+;
+
+319 ià(
+hash_bË_’Œy
+ >= 0) {
+
+325 
+¹e_ù_úxn_d©a
+ *
+’Œy
+ =
+
+326 &
+ù
+->
+hash_bË_’Œ›s
+[
+hash_bË_’Œy
+];
+
+328 
+·ck‘_aùiÚ
+ = 
+	`¹e_ù_v”ify_tý_·ck‘
+(
+ù
+, 
+’Œy
+, 
+·ck‘
+,
+
+329 
+key_is_þ›Á_Üd”
+, 
+_hdr_size_by‹s
+);
+
+331 
+·ck‘_aùiÚ
+) {
+
+333 
+RTE_CT_FORWARD_PACKET
+:
+
+334 
+’Œy
+->
+couÁ”s
+.
+·ck‘s_fÜw¬ded
+++;
+
+337 
+RTE_CT_DROP_PACKET
+:
+
+338 
+’Œy
+->
+couÁ”s
+.
+·ck‘s_drݳd
+++;
+
+339  
+RTE_CT_DROP_PACKET
+;
+
+341 
+RTE_CT_REOPEN_CNXN_AND_FORWARD_PACKET
+:
+
+348 ià(
+	`¹e_ù_tý_Ãw_cÚÃùiÚ
+(
+ù
+, &
+Ãw_úxn_d©a
+,
+
+349 
+·ck‘
+, 0, 
+_hdr_size_by‹s
+) !=
+
+350 
+RTE_CT_DROP_PACKET
+) {
+
+351 
+	`¹e_memýy
+(&
+’Œy
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+,
+
+352 &
+Ãw_úxn_d©a
+.
+ù_´ÙocÞ
+.
+tý_ù_d©a
+,
+
+353 (
+Ãw_úxn_d©a
+.
+ù_´ÙocÞ
+.
+tý_ù_d©a
+));
+
+354 
+	`¹e_ù_£t_tim”_fÜ_Ãw_úxn
+(
+ù
+, 
+’Œy
+);
+
+355 ià(
+ù
+->
+couÁ”s
+->
+£ssiÚs_»aùiv©ed
+ > 0)
+
+356 
+ù
+->
+couÁ”s
+->
+£ssiÚs_»aùiv©ed
+--;
+
+361 
+RTE_CT_SEND_SERVER_SYN
+:
+
+362 
+ù
+->
+couÁ”s
+->
+pkts_fÜw¬ded
+++;
+
+364  
+RTE_CT_SEND_SERVER_SYN
+;
+
+366 
+RTE_CT_SEND_SERVER_ACK
+:
+
+367 
+ù
+->
+couÁ”s
+->
+pkts_fÜw¬ded
+++;
+
+369  
+RTE_CT_SEND_SERVER_ACK
+;
+
+371 
+RTE_CT_HIJACK
+:
+
+372 
+ù
+->
+couÁ”s
+->
+pkts_fÜw¬ded
+++;
+
+376  
+RTE_CT_HIJACK
+;
+
+378 
+RTE_CT_DESTROY_CNXN_AND_FORWARD_PACKET
+:
+
+396 ià(
+	`¹e_hash_d–_key
+(
+ù
+->
+rhash
+, 
+’Œy
+->
+key
+) >= 0) {
+
+407 
+ù
+->
+couÁ”s
+->
+£ssiÚs_þo£d
+++;
+
+408 ià(
+ù
+->
+couÁ”s
+->
+cu¼’t_aùive_£ssiÚs
+ > 0)
+
+409 
+ù
+->
+couÁ”s
+->
+cu¼’t_aùive_£ssiÚs
+--;
+
+410 
+	`¹e_ù_ÿnûl_úxn_tim”
+(
+’Œy
+);
+
+412 
+’Œy
+->
+couÁ”s
+.
+·ck‘s_fÜw¬ded
+++;
+
+420 
+¹e_ù_úxn_d©a
+ *
+Ãw_hash_’Œy
+;
+
+422 ià(
+no_Ãw_úxn
+) {
+
+423 
+ù
+->
+couÁ”s
+->
+pkts_drÝ_šv®id_cÚn
+++;
+
+424  
+RTE_CT_DROP_PACKET
+;
+
+427 
+·ck‘_aùiÚ
+ = 
+	`¹e_ù_tý_Ãw_cÚÃùiÚ
+(
+ù
+, &
+Ãw_úxn_d©a
+,
+
+428 
+·ck‘
+, 
+ù
+->
+misc_ÝtiÚs
+.
+syÅroxy_’abËd
+,
+
+429 
+_hdr_size_by‹s
+);
+
+431 ià(
+	`uÆik–y
+(
+·ck‘_aùiÚ
+ =ð
+RTE_CT_DROP_PACKET
+)) {
+
+432 
+ù
+->
+couÁ”s
+->
+pkts_drÝ_šv®id_cÚn
+++;
+
+433  
+RTE_CT_DROP_PACKET
+;
+
+437 
+št32_t
+ 
+pos™iÚ
+ = 
+	`¹e_hash_add_key
+(
+ù
+->
+rhash
+, 
+key
+);
+
+438 ià(
+pos™iÚ
+ < 0) {
+
+439 
+´štf
+
+
+441 
+pos™iÚ
+, 
+pkt_num
+);
+
+442  
+RTE_CT_DROP_PACKET
+;
+
+444 #ifdeà
+CT_CGNAT
+
+
+445 
+ù
+->
+pos™iÚs
+[
+pkt_num
+] = 
+pos™iÚ
+;
+
+447 
+Ãw_hash_’Œy
+ = &
+ù
+->
+hash_bË_’Œ›s
+[
+pos™iÚ
+];
+
+451 
+	`memýy
+(
+Ãw_úxn_d©a
+.
+key
+, key, (new_cnxn_data.key));
+
+452 
+Ãw_úxn_d©a
+.
+key_is_þ›Á_Üd”
+ = key_is_client_order;
+
+453 
+Ãw_úxn_d©a
+.
+´ÙocÞ
+ = 
+TCP_PROTOCOL
+;
+
+454 
+	`¹e_úxn__ty³
+(&
+Ãw_úxn_d©a
+.
+ty³
+, 
+·ck‘
+);
+
+455 
+	`¹e_memýy
+(
+Ãw_hash_’Œy
+, &
+Ãw_úxn_d©a
+,
+
+456 (
+¹e_ù_úxn_d©a
+));
+
+457 
+Ãw_hash_’Œy
+->
+couÁ”s
+.
+·ck‘s_fÜw¬ded
+ = 1;
+
+458 
+Ãw_hash_’Œy
+->
+couÁ”s
+.
+·ck‘s_drݳd
+ = 0;
+
+459 
+ù
+->
+couÁ”s
+->
+cu¼’t_aùive_£ssiÚs
+++;
+
+460 
+ù
+->
+couÁ”s
+->
+£ssiÚs_aùiv©ed
+++;
+
+462 ià(
+·ck‘_aùiÚ
+ =ð
+RTE_CT_SEND_CLIENT_SYNACK
+) {
+
+466 
+	`¹e_¥_·r£_ÝtiÚs
+(
+·ck‘
+, 
+Ãw_hash_’Œy
+);
+
+473 
+	`¹e_¥_cvt_to_¥ooãd_þ›Á_syÇck
+(
+Ãw_hash_’Œy
+,
+
+474 
+·ck‘
+);
+
+481 
+·ck‘_aùiÚ
+ = 
+	`¹e_ù_v”ify_tý_·ck‘
+(
+ù
+,
+
+482 
+Ãw_hash_’Œy
+, 
+·ck‘
+,
+
+483 !
+key_is_þ›Á_Üd”
+,
+
+484 
+_hdr_size_by‹s
+);
+
+486 ià(
+	`uÆik–y
+(
+·ck‘_aùiÚ
+ !ð
+RTE_CT_FORWARD_PACKET
+)) {
+
+488 
+	`´štf
+("Seriousƒrror in synproxy generating ");
+
+489 
+	`´štf
+("SYN/ACK\n");
+
+490  
+RTE_CT_DROP_PACKET
+;
+
+492 
+ù
+->
+couÁ”s
+->
+pkts_fÜw¬ded
+++;
+
+494  
+RTE_CT_SEND_CLIENT_SYNACK
+;
+
+496 
+	`¹e_ù_£t_tim”_fÜ_Ãw_úxn
+(
+ù
+, 
+Ãw_hash_’Œy
+);
+
+508 
+ù
+->
+couÁ”s
+->
+pkts_fÜw¬ded
+++;
+
+509  
+RTE_CT_FORWARD_PACKET
+;
+
+510 
+	}
+}
+
+512 
+ušt64_t
+
+
+513 
+	$¹e_ù_úxn_Œack”_b©ch_lookup_basic
+(
+
+514 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+515 
+¹e_mbuf
+ **
+pkts
+,
+
+516 
+ušt64_t
+ 
+pkts_mask
+,
+
+517 
+ušt64_t
+ 
+no_Ãw_úxn_mask
+,
+
+518 
+ušt64_t
+ *
+Ȧy_pkt_mask
+,
+
+519 
+ušt64_t
+ *
+hijack_mask
+)
+
+522 
+ušt64_t
+ 
+pkts_to_´oûss
+ = 
+pkts_mask
+;
+
+524 
+ušt64_t
+ 
+v®id_·ck‘s
+ = 
+pkts_mask
+;
+
+525 
+ušt8_t
+ 
+com·ùšg_m­
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+527 
+ušt8_t
+ 
+key_Üig_dœ
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+528 
+ušt32_t
+ 
+·ck‘s_fÜ_lookup
+ = 0;
+
+529 
+št32_t
+ 
+pos™iÚs
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+530 
+ušt32_t
+ 
+i
+;
+
+531 
+¹e_ù_úxn_d©a
+ 
+Ãw_úxn_d©a
+;
+
+533 ià(
+CNXN_TRX_DEBUG
+ > 1) {
+
+534 
+	`´štf
+("EÁ” cnxÀŒack” %p", 
+ù
+);
+
+535 
+	`´štf
+(" synproxy batch†ookup with…acket mask %p\n",
+
+536 (*)
+pkts_mask
+);
+
+539 
+	`¹e_ù_fÜg‘_Ãw_cÚÃùiÚs
+(
+ù
+);
+
+540 *
+Ȧy_pkt_mask
+ = 0;
+
+541 *
+hijack_mask
+ = 0;
+
+548 ; 
+pkts_to_´oûss
+;) {
+
+549 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+pkts_to_´oûss
+);
+
+551 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+553 
+pkts_to_´oûss
+ &ð~
+pkt_mask
+;
+
+555 
+¹e_mbuf
+ *
+pkt
+ = 
+pkts
+[
+pos
+];
+
+557 
+_hdr_size_by‹s
+ = 
+	`¹e_ù_g‘_IP_hdr_size
+(
+pkt
+);
+
+559 ià(
+	`uÆik–y
+(
+_hdr_size_by‹s
+ < 0)) {
+
+564 *
+_hdr
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, 
+IP_START
+);
+
+569 
+tý_hdr
+ *
+thdr
+ =
+
+570 (
+tý_hdr
+ *)
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+571 (
+IP_START
+ + 
+_hdr_size_by‹s
+));
+
+572 
+ušt16_t
+ 
+¤c_pÜt
+ = 
+	`¹e_bsw­16
+(
+thdr
+->src_port);
+
+573 
+ušt16_t
+ 
+d¡_pÜt
+ = 
+	`¹e_bsw­16
+(
+thdr
+->dst_port);
+
+575 ià(
+_hdr_size_by‹s
+ =ð
+IPv4_HEADER_SIZE
+) {
+
+576 
+v4_hdr
+ *
+ihdr
+ = (v4_hd¸*)
+_hdr
+;
+
+577 
+ušt8_t
+ 
+´Ùo
+ = 
+ihdr
+->
+Ãxt_´Ùo_id
+;
+
+579 ià(!(
+´Ùo
+ =ð
+TCP_PROTOCOL
+ ||…rÙØ=ð
+UDP_PROTOCOL
+)) {
+
+590 
+ušt32_t
+ 
+¤c_addr
+ = 
+	`¹e_bsw­32
+(
+ihdr
+->src_addr);
+
+591 
+ušt32_t
+ 
+d¡_addr
+ = 
+	`¹e_bsw­32
+(
+ihdr
+->dst_addr);
+
+593 ià(
+CNXN_TRX_DEBUG
+ > 2) {
+
+594 ià(
+CNXN_TRX_DEBUG
+ > 4)
+
+595 
+	`¹e_ù_úxn_´št_pkt
+(
+pkt
+,
+
+596 
+IP_VERSION_4
+);
+
+602 
+com·ùšg_m­
+[
+·ck‘s_fÜ_lookup
+] = 
+pos
+;
+
+603 
+key_Üig_dœ
+[
+·ck‘s_fÜ_lookup
+] =
+
+604 
+	`¹e_ù_ü—‹_úxn_hashkey
+(&
+¤c_addr
+, &
+d¡_addr
+,
+
+605 
+¤c_pÜt
+, 
+d¡_pÜt
+,
+
+606 
+´Ùo
+,
+
+607 &
+ù
+->
+hash_keys
+
+
+608 [
+·ck‘s_fÜ_lookup
+][0],
+
+609 
+IP_VERSION_4
+);
+
+610 
+·ck‘s_fÜ_lookup
+++;
+
+613 ià(
+_hdr_size_by‹s
+ =ð
+IPv6_HEADER_SIZE
+) {
+
+614 
+v6_hdr
+ *
+ihdr
+ = (v6_hd¸*)
+_hdr
+;
+
+615 
+ušt8_t
+ 
+´Ùo
+ = 
+ihdr
+->proto;
+
+617 ià(!(
+´Ùo
+ =ð
+TCP_PROTOCOL
+ ||…rÙØ=ð
+UDP_PROTOCOL
+)) {
+
+622 ià(
+CNXN_TRX_DEBUG
+ > 2) {
+
+623 ià(
+CNXN_TRX_DEBUG
+ > 4)
+
+624 
+	`¹e_ù_úxn_´št_pkt
+(
+pkt
+,
+
+625 
+IP_VERSION_6
+);
+
+632 
+com·ùšg_m­
+[
+·ck‘s_fÜ_lookup
+] = 
+pos
+;
+
+633 
+key_Üig_dœ
+[
+·ck‘s_fÜ_lookup
+] =
+
+634 
+	`¹e_ù_ü—‹_úxn_hashkey
+(
+
+635 (
+ušt32_t
+ *è
+ihdr
+->
+¤c_addr
+,
+
+636 (
+ušt32_t
+ *è
+ihdr
+->
+d¡_addr
+,
+
+637 
+¤c_pÜt
+, 
+d¡_pÜt
+,
+
+638 
+´Ùo
+,
+
+639 &
+ù
+->
+hash_keys
+
+
+640 [
+·ck‘s_fÜ_lookup
+][0],
+
+641 
+IP_VERSION_6
+);
+
+642 
+·ck‘s_fÜ_lookup
+++;
+
+647 ià(
+	`uÆik–y
+(
+·ck‘s_fÜ_lookup
+ == 0))
+
+648  
+v®id_·ck‘s
+;
+
+651 
+	`mem£t
+(&
+Ãw_úxn_d©a
+, 0, (
+¹e_ù_úxn_d©a
+));
+
+655 
+lookup_»suÉ
+ =
+
+656 
+	`¹e_hash_lookup_bulk
+(
+ù
+->
+rhash
+, (cÚ¡ **)&ù->
+hash_key_±rs
+,
+
+657 
+·ck‘s_fÜ_lookup
+, &
+pos™iÚs
+[0]);
+
+659 ià(
+	`uÆik–y
+(
+lookup_»suÉ
+ < 0)) {
+
+661 
+	`´štf
+("Unexpected hashable…roblem, discarding‡ll…ackets");
+
+664 #ifdeà
+ALGDBG
+
+
+665 
+i
+ = 0; i < 
+·ck‘s_fÜ_lookup
+; i++) {
+
+666 ià(
+pos™iÚs
+[
+i
+] >= 0)
+
+667 
+	`´štf
+("@CT…ositions[i]= %d, compacting_map[i]= %d\n",
+
+668 
+pos™iÚs
+[
+i
+], 
+com·ùšg_m­
+[i]);
+
+671 
+i
+ = 0; i < 
+·ck‘s_fÜ_lookup
+; i++) {
+
+673 
+hash_bË_’Œy
+ = 
+pos™iÚs
+[
+i
+];
+
+675 
+ušt8_t
+ 
+pkt_šdex
+ = 
+com·ùšg_m­
+[
+i
+];
+
+677 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pkt_šdex
+;
+
+678 
+ušt8_t
+ 
+key_is_þ›Á_Üd”
+ = 
+key_Üig_dœ
+[
+i
+];
+
+679 
+ušt32_t
+ *
+key
+ = 
+ù
+->
+hash_key_±rs
+[
+pkt_šdex
+];
+
+680 
+ušt8_t
+ 
+´ÙocÞ
+ = *(
+key
+ + 9);
+
+681 
+¹e_mbuf
+ *
+·ck‘
+ = 
+pkts
+[
+pkt_šdex
+];
+
+682 
+no_Ãw_úxn
+ = (
+pkt_mask
+ & 
+no_Ãw_úxn_mask
+) != 0;
+
+686 ià(
+´ÙocÞ
+ =ð
+TCP_PROTOCOL
+) {
+
+687 
+¹e_ù_·ck‘_aùiÚ
+ 
+tý_pkt_aùiÚ
+;
+
+689 
+_hdr_size_by‹s
+ = 
+	`¹e_ù_g‘_IP_hdr_size
+(
+·ck‘
+);
+
+690 
+tý_pkt_aùiÚ
+ = 
+	`¹e_ù_hªdË_tý_lookup
+(
+ù
+, 
+·ck‘
+,
+
+691 
+pkt_šdex
+, 
+key_is_þ›Á_Üd”
+,
+
+692 
+key
+, 
+hash_bË_’Œy
+, 
+no_Ãw_úxn
+,
+
+693 
+_hdr_size_by‹s
+);
+
+695 
+tý_pkt_aùiÚ
+) {
+
+697 
+RTE_CT_SEND_CLIENT_SYNACK
+:
+
+698 
+RTE_CT_SEND_SERVER_ACK
+:
+
+702 *
+Ȧy_pkt_mask
+ |ð
+pkt_mask
+;
+
+705 
+RTE_CT_SEND_SERVER_SYN
+:
+
+706 
+RTE_CT_FORWARD_PACKET
+:
+
+709 
+RTE_CT_HIJACK
+:
+
+710 *
+hijack_mask
+ |ð
+pkt_mask
+;
+
+715 
+v®id_·ck‘s
+ ^ð
+pkt_mask
+;
+
+716 
+ù
+->
+couÁ”s
+->
+pkts_drÝ
+++;
+
+723 ià(
+hash_bË_’Œy
+ >= 0) {
+
+729 
+¹e_ù_úxn_d©a
+ *
+’Œy
+ =
+
+730 &
+ù
+->
+hash_bË_’Œ›s
+[
+hash_bË_’Œy
+];
+
+732 ià(
+¹e_ù_udp_·ck‘
+
+
+733 (
+ù
+, 
+’Œy
+, 
+pkts
+[
+pkt_šdex
+],
+
+734 
+key_is_þ›Á_Üd”
+)) {
+
+735 
+’Œy
+->
+couÁ”s
+.
+·ck‘s_fÜw¬ded
+++;
+
+736 
+ù
+->
+couÁ”s
+->
+pkts_fÜw¬ded
+++;
+
+744 
+¹e_ù_úxn_d©a
+ *
+»ûÁ_’Œy
+ =
+
+745 
+	`¹e_ù_£¬ch_Ãw_cÚÃùiÚs
+(
+ù
+, 
+key
+);
+
+747 ià(
+»ûÁ_’Œy
+ !ð
+NULL
+) {
+
+748 ià(
+	`¹e_ù_udp_·ck‘
+(
+ù
+, 
+»ûÁ_’Œy
+,
+
+749 
+pkts
+[
+pkt_šdex
+],
+
+750 
+key_is_þ›Á_Üd”
+)) {
+
+751 
+»ûÁ_’Œy
+->
+couÁ”s
+.
+
+752 
+·ck‘s_fÜw¬ded
+++;
+
+753 
+ù
+->
+couÁ”s
+->
+pkts_fÜw¬ded
+++;
+
+760 ià(
+no_Ãw_úxn
+) {
+
+764 
+v®id_·ck‘s
+ ^ð
+pkt_mask
+;
+
+765 
+ù
+->
+couÁ”s
+->
+pkts_drÝ
+++;
+
+766 
+ù
+->
+couÁ”s
+->
+
+767 
+pkts_drÝ_šv®id_cÚn
+++;
+
+771 ià(
+	`¹e_ù_udp_Ãw_cÚÃùiÚ
+(
+ù
+,
+
+772 &
+Ãw_úxn_d©a
+,
+
+773 
+pkts
+[
+pkt_šdex
+])) {
+
+777 
+št32_t
+ 
+pos™iÚ
+ =
+
+778 
+	`¹e_hash_add_key
+(
+
+779 
+ù
+->
+rhash
+, 
+key
+);
+
+781 ià(
+pos™iÚ
+ < 0)
+
+784 
+¹e_ù_úxn_d©a
+
+
+785 *
+Ãw_hash_’Œy
+ = &
+ù
+->
+
+786 
+hash_bË_’Œ›s
+[
+pos™iÚ
+];
+
+793 
+	`memýy
+(
+Ãw_úxn_d©a
+.
+key
+, key,
+
+794 (
+Ãw_úxn_d©a
+.
+key
+));
+
+796 
+Ãw_úxn_d©a
+.
+
+797 
+key_is_þ›Á_Üd”
+
+
+798 ð
+key_is_þ›Á_Üd”
+;
+
+799 
+Ãw_úxn_d©a
+.
+´ÙocÞ
+ =
+
+800 
+UDP_PROTOCOL
+;
+
+801 
+	`¹e_úxn__ty³
+(
+
+802 &
+Ãw_úxn_d©a
+.
+ty³
+,
+
+803 
+·ck‘
+);
+
+804 
+	`¹e_memýy
+(
+Ãw_hash_’Œy
+,
+
+805 &
+Ãw_úxn_d©a
+,
+
+807 
+¹e_ù_úxn_d©a
+));
+
+809 
+Ãw_hash_’Œy
+->
+couÁ”s
+.
+
+810 
+·ck‘s_fÜw¬ded
+ = 1;
+
+811 
+ù
+->
+couÁ”s
+->
+pkts_fÜw¬ded
+++;
+
+812 
+Ãw_hash_’Œy
+->
+couÁ”s
+.
+
+813 
+·ck‘s_drݳd
+ = 0;
+
+814 
+ù
+->
+couÁ”s
+->
+pkts_drÝ
+ = 0;
+
+815 
+ù
+->
+couÁ”s
+->
+
+816 
+cu¼’t_aùive_£ssiÚs
+++;
+
+817 
+ù
+->
+couÁ”s
+->
+
+818 
+£ssiÚs_aùiv©ed
+++;
+
+820 
+Ãw_hash_’Œy
+->
+
+821 
+¡©e_u£d_fÜ_tim”
+
+
+822 ð
+RTE_CT_UDP_NONE
+;
+
+823 
+	`¹e_ù_£t_úxn_tim”_fÜ_udp
+(
+
+824 
+ù
+,
+
+825 
+Ãw_hash_’Œy
+,
+
+826 
+RTE_CT_UDP_UNREPLIED
+);
+
+828 
+	`¹e_ù_»memb”_Ãw_cÚÃùiÚ
+(
+
+829 
+ù
+,
+
+830 
+Ãw_hash_’Œy
+);
+
+839 ià(
+CNXN_TRX_DEBUG
+ > 1) {
+
+840 
+	`´štf
+("Exit cnxnracker synproxy batch†ookup with");
+
+841 
+	`´štf
+("…ack‘ mask %p\n", (*)
+v®id_·ck‘s
+);
+
+844  
+v®id_·ck‘s
+;
+
+845 
+	}
+}
+
+847 
+ušt64_t
+
+
+848 
+	$¹e_ù_úxn_Œack”_b©ch_lookup_w™h_syÅroxy
+(
+
+849 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+850 
+¹e_mbuf
+ **
+pkts
+,
+
+851 
+ušt64_t
+ 
+pkts_mask
+,
+
+852 
+¹e_syÅroxy_h–³r
+ *
+¥_h–³r
+)
+
+854  
+	`¹e_ù_úxn_Œack”_b©ch_lookup_basic
+(
+ù
+, 
+pkts
+, 
+pkts_mask
+, 0,
+
+855 &
+¥_h–³r
+->
+Ȧy_pkt_mask
+, &¥_h–³r->
+hijack_mask
+);
+
+856 
+	}
+}
+
+857 #ifdeà
+CT_CGNAT
+
+
+858 
+ušt64_t
+ 
+	$cgDZ_ù_´oûss
+(
+
+859 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+860 
+¹e_mbuf
+ **
+pkts
+,
+
+861 
+ušt64_t
+ 
+pkts_mask
+,
+
+862 
+¹e_CT_h–³r
+ *
+ù_h–³r
+)
+
+865 
+	`¹e_ù_di§bË_syÅroxy
+(
+ù
+);
+
+866  
+	`¹e_ù_úxn_Œack”_b©ch_lookup_basic
+(
+ù
+, 
+pkts
+, 
+pkts_mask
+,
+
+867 
+ù_h–³r
+->
+no_Ãw_úxn_mask
+,
+
+868 &
+ù_h–³r
+->
+Ȧy_pkt_mask
+,
+
+869 &
+ù_h–³r
+->
+hijack_mask
+);
+
+870 
+	}
+}
+
+872 
+ušt64_t
+
+
+873 
+	$¹e_ù_úxn_Œack”_b©ch_lookup
+(
+
+874 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+875 
+¹e_mbuf
+ **
+pkts
+,
+
+876 
+ušt64_t
+ 
+pkts_mask
+,
+
+877 
+¹e_CT_h–³r
+ *
+ù_h–³r
+)
+
+880  
+	`¹e_ù_úxn_Œack”_b©ch_lookup_basic
+(
+ù
+, 
+pkts
+, 
+pkts_mask
+,
+
+881 
+ù_h–³r
+->
+no_Ãw_úxn_mask
+,
+
+882 &
+ù_h–³r
+->
+Ȧy_pkt_mask
+, &ù_h–³r->
+hijack_mask
+);
+
+883 
+	}
+}
+
+886 
+	$¹e_ù_úxn_Œack”_b©ch_lookup_ty³
+(
+
+887 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+888 
+¹e_mbuf
+ **
+pkts
+,
+
+889 
+ušt64_t
+ *
+pkts_mask
+,
+
+890 
+¹e_CT_h–³r
+ *
+ù_h–³r
+,
+
+891 
+ušt8_t
+ 
+_hdr_size_by‹s
+)
+
+894 
+	`¹e_ù_úxn_Œack”_b©ch_lookup_basic_ty³
+(
+ù
+, 
+pkts
+, 
+pkts_mask
+,
+
+895 
+ù_h–³r
+->
+no_Ãw_úxn_mask
+,
+
+896 &
+ù_h–³r
+->
+Ȧy_pkt_mask
+, &ù_h–³r->
+hijack_mask
+,
+
+897 
+_hdr_size_by‹s
+);
+
+898 
+	}
+}
+
+902 
+ušt64_t
+
+
+903 
+	$¹e_ù_úxn_Œack”_b©ch_lookup_w™h_Ãw_úxn_cڌÞ
+(
+
+904 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+905 
+¹e_mbuf
+ **
+pkts
+,
+
+906 
+ušt64_t
+ 
+pkts_mask
+,
+
+907 
+ušt64_t
+ 
+no_Ãw_úxn_mask
+)
+
+909 
+ušt64_t
+ 
+dÚt_ÿ»
+;
+
+911  
+	`¹e_ù_úxn_Œack”_b©ch_lookup_basic
+(
+ù
+, 
+pkts
+, 
+pkts_mask
+,
+
+912 
+no_Ãw_úxn_mask
+,
+
+913 &
+dÚt_ÿ»
+, &dont_care);
+
+914 
+	}
+}
+
+918 
+	$¹e_ù_š™Ÿlize_deçuÉ_timeouts
+(
+¹e_ù_úxn_Œack”
+ *
+Ãw_úxn_Œack”
+)
+
+923 
+ušt64_t
+ 
+h”tz
+ = 
+	`¹e_g‘_tsc_hz
+();
+
+925 
+Ãw_úxn_Œack”
+->
+h”tz
+ = hertz;
+
+926 
+Ãw_úxn_Œack”
+->
+timšg_cyþes_³r_timšg_¡•
+ = 
+h”tz
+ / 10;
+
+927 
+Ãw_úxn_Œack”
+->
+timšg_100ms_¡•s_´evious
+ = 0;
+
+928 
+Ãw_úxn_Œack”
+->
+timšg_100ms_¡•s
+ = 0;
+
+929 
+Ãw_úxn_Œack”
+->
+timšg_Ï¡_time
+ = 
+	`¹e_g‘_tsc_cyþes
+();
+
+932 
+Ãw_úxn_Œack”
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+933 [
+RTE_CT_TCP_SYN_SENT
+] = 120 * 
+h”tz
+;
+
+934 
+Ãw_úxn_Œack”
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+935 [
+RTE_CT_TCP_SYN_RECV
+] = 60 * 
+h”tz
+;
+
+937 
+Ãw_úxn_Œack”
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+938 [
+RTE_CT_TCP_ESTABLISHED
+] = 60 * 60 * 24 * 5 * 
+h”tz
+;
+
+940 
+Ãw_úxn_Œack”
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+941 [
+RTE_CT_TCP_FIN_WAIT
+] = 120 * 
+h”tz
+;
+
+942 
+Ãw_úxn_Œack”
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+943 [
+RTE_CT_TCP_CLOSE_WAIT
+] = 60 * 
+h”tz
+;
+
+944 
+Ãw_úxn_Œack”
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+945 [
+RTE_CT_TCP_LAST_ACK
+] = 30 * 
+h”tz
+;
+
+946 
+Ãw_úxn_Œack”
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+947 [
+RTE_CT_TCP_TIME_WAIT
+] = 120 * 
+h”tz
+;
+
+948 
+Ãw_úxn_Œack”
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+949 [
+RTE_CT_TCP_CLOSE
+] = 10 * 
+h”tz
+;
+
+950 
+Ãw_úxn_Œack”
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+951 [
+RTE_CT_TCP_SYN_SENT_2
+] = 120 * 
+h”tz
+;
+
+952 
+Ãw_úxn_Œack”
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+953 [
+RTE_CT_TCP_RETRANS
+] = 300 * 
+h”tz
+;
+
+954 
+Ãw_úxn_Œack”
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+955 [
+RTE_CT_TCP_UNACK
+] = 300 * 
+h”tz
+;
+
+957 
+Ãw_úxn_Œack”
+->
+ù_timeout
+.
+ud±imeout
+.
+udp_timeouts
+
+
+958 [
+RTE_CT_UDP_UNREPLIED
+] = 30 * 
+h”tz
+;
+
+959 
+Ãw_úxn_Œack”
+->
+ù_timeout
+.
+ud±imeout
+.
+udp_timeouts
+
+
+960 [
+RTE_CT_UDP_REPLIED
+] = 180 * 
+h”tz
+;
+
+962 
+Ãw_úxn_Œack”
+->
+misc_ÝtiÚs
+.
+tý_max_»Œªs
+ =
+
+963 
+RTE_CT_TCP_MAX_RETRANS
+;
+
+964 
+Ãw_úxn_Œack”
+->
+misc_ÝtiÚs
+.
+tý_loo£
+ = 0;
+
+965 
+Ãw_úxn_Œack”
+->
+misc_ÝtiÚs
+.
+tý_be_lib”®
+ = 0;
+
+966 #ifdeà
+CT_CGNAT
+
+
+967 
+i
+;
+
+968 
+i
+=0; i < 
+RTE_HASH_LOOKUP_BULK_MAX
+ ;i ++ )
+
+969 
+Ãw_úxn_Œack”
+->
+pos™iÚs
+[
+i
+] = -1;
+
+973 
+	}
+}
+
+975 
+¹e_CT_couÁ”_block
+ 
+	g¹e_CT_couÁ”_bË
+[
+MAX_CT_INSTANCES
+]
+
+976 
+	g__¹e_ÿche_®igÃd
+;
+
+977 
+	g¹e_CT_hi_couÁ”_block_š_u£
+ = -1;
+
+980 
+	$¹e_ù_š™Ÿlize_úxn_Œack”_w™h_syÅroxy
+(
+
+981 
+¹e_ù_úxn_Œack”
+ *
+Ãw_úxn_Œack”
+,
+
+982 
+ušt32_t
+ 
+max_cÚÃùiÚ_couÁ
+,
+
+983 *
+Çme
+,
+
+984 
+ušt16_t
+ 
+poš‹r_off£t
+)
+
+986 
+ušt32_t
+ 
+i
+;
+
+987 
+ušt32_t
+ 
+size
+;
+
+988 
+¹e_CT_couÁ”_block
+ *
+couÁ”_±r
+;
+
+995 
+Ãw_úxn_Œack”
+->
+poš‹r_off£t
+ =…ointer_offset;
+
+997 
+	`mem£t
+(
+Ãw_úxn_Œack”
+->
+Çme
+, '\0', (new_cnxn_tracker->name));
+
+998 
+	`¡ºýy
+(
+Ãw_úxn_Œack”
+->
+Çme
+,‚ame, 
+	`¡¾’
+(new_cnxn_tracker->name));
+
+1001 
+ušt32_t
+ 
+numb”_of_’Œ›s
+ = 
+max_cÚÃùiÚ_couÁ
+;
+
+1003 
+size
+ = 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+¹e_ù_úxn_d©a
+) *
+
+1004 
+numb”_of_’Œ›s
+);
+
+1005 
+Ãw_úxn_Œack”
+->
+hash_bË_’Œ›s
+ =
+
+1006 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+1007 ià(
+Ãw_úxn_Œack”
+->
+hash_bË_’Œ›s
+ =ð
+NULL
+) {
+
+1008 
+	`´štf
+(" Notƒnough memory, or invalid‡rguments\n");
+
+1011 
+Ãw_úxn_Œack”
+->
+num_úxn_’Œ›s
+ = 
+numb”_of_’Œ›s
+;
+
+1015 
+i
+ = 0; i < 
+numb”_of_’Œ›s
+; i++)
+
+1016 
+	`¹e_tim”_š™
+(&
+Ãw_úxn_Œack”
+->
+hash_bË_’Œ›s
+[
+i
+].
+tim”
+);
+
+1019 
+i
+ = 0; i < 
+RTE_HASH_LOOKUP_BULK_MAX
+; i++)
+
+1020 
+Ãw_úxn_Œack”
+->
+hash_key_±rs
+[
+i
+] =
+
+1021 &
+Ãw_úxn_Œack”
+->
+hash_keys
+[
+i
+][0];
+
+1028 ià(
+¹e_CT_hi_couÁ”_block_š_u£
+ =ð
+MAX_CT_INSTANCES
+)
+
+1031 
+¹e_CT_hi_couÁ”_block_š_u£
+++;
+
+1032 
+couÁ”_±r
+ = &
+¹e_CT_couÁ”_bË
+[
+¹e_CT_hi_couÁ”_block_š_u£
+];
+
+1034 
+Ãw_úxn_Œack”
+->
+couÁ”s
+ = 
+couÁ”_±r
+;
+
+1037 
+¹e_hash_·¿m‘”s
+ 
+rhash_·rms
+ = {
+
+1038 .
+Çme
+ =‚ame,
+
+1039 .
+’Œ›s
+ = 
+numb”_of_’Œ›s
+,
+
+1040 .
+hash_func
+ = 
+NULL
+,
+
+1041 .
+key_Ën
+ = 40,
+
+1042 .
+hash_func_š™_v®
+ = 0,
+
+1043 .
+sock‘_id
+ = 
+	`¹e_sock‘_id
+(),
+
+1044 .
+exŒa_æag
+ = 1
+
+1047 
+Ãw_úxn_Œack”
+->
+rhash
+ = 
+	`¹e_hash_ü—‹
+(&
+rhash_·rms
+);
+
+1050 
+	}
+}
+
+1053 
+	$¹e_ù_š™Ÿlize_úxn_Œack”
+(
+
+1054 
+¹e_ù_úxn_Œack”
+ *
+Ãw_úxn_Œack”
+,
+
+1055 
+ušt32_t
+ 
+max_cÚÃùiÚ_couÁ
+,
+
+1056 *
+Çme
+)
+
+1058  
+	`¹e_ù_š™Ÿlize_úxn_Œack”_w™h_syÅroxy
+(
+Ãw_úxn_Œack”
+,
+
+1059 
+max_cÚÃùiÚ_couÁ
+, 
+Çme
+, 0);
+
+1060 
+	}
+}
+
+1063 
+	$¹e_ù_ä“_úxn_Œack”_»sourûs
+(
+¹e_ù_úxn_Œack”
+ *
+Þd_úxn_Œack”
+)
+
+1065 
+	`¹e_ä“
+(
+Þd_úxn_Œack”
+->
+hash_bË_’Œ›s
+);
+
+1066 
+	`¹e_hash_ä“
+(
+Þd_úxn_Œack”
+->
+rhash
+);
+
+1068 
+	}
+}
+
+1071 
+	$¹e_ù_g‘_úxn_Œack”_size
+()
+
+1073  (
+¹e_ù_úxn_Œack”
+);
+
+1074 
+	}
+}
+
+1077 
+¹e_ù_úxn_tim”_expœed
+(
+¹e_tim”
+ *
+¹
+, *
+¬g
+);
+
+1080 
+	$¹e_ù_£t_úxn_tim”
+(
+
+1081 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+1082 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+1083 
+ušt64_t
+ 
+ticks_uÁž_timeout
+)
+
+1090 
+¹e_tim”
+ *
+¹
+ = (¹e_tim” *)
+cd
+;
+
+1091 #ifdeà
+CT_CGNAT
+
+
+1093 
+ušt32_t
+ 
+cÜe_id
+ = 
+	`g‘_tim”_cÜe_id
+();
+
+1096 
+ušt32_t
+ 
+cÜe_id
+ = 
+	`¹e_lcÜe_id
+();
+
+1101 
+sucûss
+ = 
+	`¹e_tim”_»£t
+(
+¹
+, 
+ticks_uÁž_timeout
+, 
+SINGLE
+, 
+cÜe_id
+,
+
+1102 
+¹e_ù_úxn_tim”_expœed
+, 
+ù
+);
+
+1104 ià(
+sucûss
+ < 0) {
+
+1108 
+	`´štf
+("CNXN_TRACKER: Failedo set connectionimer.\n");
+
+1110 
+	}
+}
+
+1118 
+	$¹e_ù_£t_úxn_tim”_fÜ_tý
+(
+
+1119 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+1120 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+1121 
+ušt8_t
+ 
+tý_¡©e
+)
+
+1124 
+cd
+->
+ex³ùed_timeout
+ =
+
+1125 (
+ù
+->
+timšg_100ms_¡•s
+ * ct->
+timšg_cyþes_³r_timšg_¡•
+) +
+
+1126 
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+tý_¡©e
+];
+
+1128 ià(
+tý_¡©e
+ =ð
+cd
+->
+¡©e_u£d_fÜ_tim”
+) {
+
+1141 ià(
+TESTING_TIMERS
+)
+
+1142 
+	`´štf
+("S‘ Tim” fÜ cÚÃùiÚ %°ªd s‹ %s\n", 
+cd
+,
+
+1143 
+¹e_ù_tý_Çmes
+[
+tý_¡©e
+]);
+
+1145 
+	`¹e_ù_£t_úxn_tim”
+(
+ù
+, 
+cd
+,
+
+1146 
+ù
+->
+ù_timeout
+.
+
+1147 
+týtimeout
+.
+tý_timeouts
+[
+tý_¡©e
+]);
+
+1148 
+cd
+->
+¡©e_u£d_fÜ_tim”
+ = 
+tý_¡©e
+;
+
+1149 
+	}
+}
+
+1158 
+	$¹e_ù_£t_úxn_tim”_fÜ_udp
+(
+
+1159 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+1160 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+1161 
+ušt8_t
+ 
+udp_¡©e
+)
+
+1164 
+cd
+->
+ex³ùed_timeout
+ = (
+ù
+->
+timšg_cyþes_³r_timšg_¡•
+) +
+
+1165 
+ù
+->
+ù_timeout
+.
+ud±imeout
+.
+udp_timeouts
+[
+udp_¡©e
+];
+
+1167 ià(
+udp_¡©e
+ =ð
+cd
+->
+¡©e_u£d_fÜ_tim”
+) {
+
+1180 ià(
+TESTING_TIMERS
+)
+
+1181 
+	`´štf
+("S‘ Tim” fÜ cÚÃùiÚ %°ªd s‹ %s\n", 
+cd
+,
+
+1182 
+¹e_ù_udp_Çmes
+[
+udp_¡©e
+]);
+
+1183 
+	`¹e_ù_£t_úxn_tim”
+(
+ù
+, 
+cd
+,
+
+1184 
+ù
+->
+ù_timeout
+.
+
+1185 
+ud±imeout
+.
+udp_timeouts
+[
+udp_¡©e
+]);
+
+1186 
+cd
+->
+¡©e_u£d_fÜ_tim”
+ = 
+udp_¡©e
+;
+
+1187 
+	}
+}
+
+1193 
+	$¹e_ù_ÿnûl_úxn_tim”
+(
+¹e_ù_úxn_d©a
+ *
+cd
+)
+
+1195 ià(
+TESTING_TIMERS
+)
+
+1196 
+	`´štf
+("Cancel Timer\n");
+
+1198 
+	`¹e_tim”_¡Ý
+(&
+cd
+->
+tim”
+);
+
+1199 
+	}
+}
+
+1202 
+	$¹e_ù_hªdË_expœed_tim”s
+(
+¹e_ù_úxn_Œack”
+ *
+ù
+)
+
+1209 
+ušt64_t
+ 
+Ãw_time
+ = 
+	`¹e_g‘_tsc_cyþes
+();
+
+1210 
+ušt64_t
+ 
+time_diff
+ = 
+Ãw_time
+ - 
+ù
+->
+timšg_Ï¡_time
+;
+
+1212 ià(
+time_diff
+ >ð
+ù
+->
+timšg_cyþes_³r_timšg_¡•
+) {
+
+1213 
+ù
+->
+timšg_Ï¡_time
+ = 
+Ãw_time
+;
+
+1214 
+ù
+->
+timšg_100ms_¡•s
+++;
+
+1217 ià(
+ù
+->
+timšg_100ms_¡•s
+ !ðù->
+timšg_100ms_¡•s_´evious
+) {
+
+1218 
+	`¹e_tim”_mªage
+();
+
+1219 
+ù
+->
+timšg_100ms_¡•s_´evious
+ = ct->
+timšg_100ms_¡•s
+;
+
+1221 
+	}
+}
+
+1226 
+	$¹e_ù_úxn_tim”_expœed
+(
+¹e_tim”
+ *
+¹
+, *
+¬g
+)
+
+1231 
+¹e_ù_úxn_d©a
+ *
+cd
+ = (¹e_ù_úxn_d©¨*)
+¹
+;
+
+1232 
+¹e_ù_úxn_Œack”
+ *
+ù
+ = (¹e_ù_úxn_Œack” *)
+¬g
+;
+
+1233 
+sucûss
+ = 0;
+
+1241 
+ušt64_t
+ 
+cu¼’t_time
+ = 
+ù
+->
+timšg_100ms_¡•s
+ *
+
+1242 
+ù
+->
+timšg_cyþes_³r_timšg_¡•
+;
+
+1244 ià(
+cd
+->
+ex³ùed_timeout
+ >ð
+cu¼’t_time
+) {
+
+1245 
+ušt64_t
+ 
+time_diff
+ = 
+cd
+->
+ex³ùed_timeout
+ - 
+cu¼’t_time
+;
+
+1247 
+	`¹e_ù_£t_úxn_tim”
+(
+ù
+, 
+cd
+, 
+time_diff
+);
+
+1251 ià(
+cd
+->
+´ÙocÞ
+ =ð
+TCP_PROTOCOL
+) {
+
+1252 ià(
+cd
+->
+¡©e_u£d_fÜ_tim”
+ =ð
+RTE_CT_TCP_TIME_WAIT
+ ||
+
+1253 
+cd
+->
+¡©e_u£d_fÜ_tim”
+ =ð
+RTE_CT_TCP_CLOSE
+)
+
+1254 
+ù
+->
+couÁ”s
+->
+£ssiÚs_þo£d
+++;
+
+1256 
+ù
+->
+couÁ”s
+->
+£ssiÚs_timedout
+++;
+
+1261 ià(
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox›d
+)
+
+1262 
+	`¹e_ù_»Ëa£_bufã»d_·ck‘s
+(
+ù
+, 
+cd
+);
+
+1264 } ià(
+cd
+->
+´ÙocÞ
+ =ð
+UDP_PROTOCOL
+)
+
+1265 
+ù
+->
+couÁ”s
+->
+£ssiÚs_þo£d
+++;
+
+1266 ià(
+ù
+->
+couÁ”s
+->
+cu¼’t_aùive_£ssiÚs
+ > 0)
+
+1267 
+ù
+->
+couÁ”s
+->
+cu¼’t_aùive_£ssiÚs
+--;
+
+1269 ià(
+RTE_CT_TIMER_EXPIRED_DUMP
+) {
+
+1270 
+ušt64_t
+ 
+³rûÁ
+ = (
+cd
+->
+couÁ”s
+.
+·ck‘s_drݳd
+ * 10000) /
+
+1271 (
+cd
+->
+couÁ”s
+.
+·ck‘s_fÜw¬ded
+ +
+
+1272 
+cd
+->
+couÁ”s
+.
+·ck‘s_drݳd
+);
+
+1274 ià(
+cd
+->
+´ÙocÞ
+ =ð
+TCP_PROTOCOL
+) {
+
+1275 
+	`´štf
+("CnxnTrkr %s,imed-out TCP Connection: %p,",
+
+1276 
+ù
+->
+Çme
+, 
+cd
+);
+
+1277 
+	`´štf
+(" %s,…kts forwarded %"
+
+1278 
+PRIu64
+ ",…kts dropped %" PRIu64
+
+1280 
+¹e_ù_tý_Çmes
+[
+cd
+->
+¡©e_u£d_fÜ_tim”
+],
+
+1281 
+cd
+->
+couÁ”s
+.
+·ck‘s_fÜw¬ded
+,
+
+1282 
+cd
+->
+couÁ”s
+.
+·ck‘s_drݳd
+,
+
+1283 (
+ušt32_t
+è(
+³rûÁ
+ / 100),
+
+1284 (
+ušt32_t
+è(
+³rûÁ
+ % 100));
+
+1285 } ià(
+cd
+->
+´ÙocÞ
+ =ð
+UDP_PROTOCOL
+) {
+
+1286 
+	`´štf
+("CnxnTrkr %s, Timed-out UDP Connection: %p,",
+
+1287 
+ù
+->
+Çme
+, 
+cd
+);
+
+1288 
+	`´štf
+(" %s,…kt fÜw¬ded %" 
+PRIu64
+
+
+1289 ",…kt drݳd %" 
+PRIu64
+ ", drop%% %u.%u\n",
+
+1290 
+¹e_ù_udp_Çmes
+[
+cd
+->
+¡©e_u£d_fÜ_tim”
+],
+
+1291 
+cd
+->
+couÁ”s
+.
+·ck‘s_fÜw¬ded
+,
+
+1292 
+cd
+->
+couÁ”s
+.
+·ck‘s_drݳd
+,
+
+1293 (
+ušt32_t
+è(
+³rûÁ
+ / 100),
+
+1294 (
+ušt32_t
+è(
+³rûÁ
+ % 100));
+
+1298 
+sucûss
+ = 
+	`¹e_hash_d–_key
+(
+ù
+->
+rhash
+, &
+cd
+->
+key
+);
+
+1300 ià(
+sucûss
+ < 0) {
+
+1302 
+	`¹e_ù_´št_hashkey
+(
+cd
+->
+key
+);
+
+1305 
+	}
+}
+
+1307 
+¹e_CT_couÁ”_block
+ *
+
+1308 
+	$¹e_ù_g‘_couÁ”_add»ss
+(
+¹e_ù_úxn_Œack”
+ *
+ù
+)
+
+1310  
+ù
+->
+couÁ”s
+;
+
+1311 
+	}
+}
+
+1314 
+	$¹e_ù_£t_cÚfigu¿tiÚ_ÝtiÚs
+(
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+1315 *
+Çme
+, *
+v®ue
+)
+
+1318 
+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”®
+ = 
+iv®
+;
+
+1333 ià(
+	`¡rcmp
+(
+Çme
+, "tcp_max_retrans") == 0) {
+
+1334 
+ù
+->
+misc_ÝtiÚs
+.
+tý_max_»Œªs
+ = 
+iv®
+;
+
+1338 
+ušt64_t
+ 
+time_v®ue
+ = 
+iv®
+ * 
+ù
+->
+h”tz
+;
+
+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_Œack”_b©ch_lookup_basic_ty³
+(
+
+1464 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+1465 
+¹e_mbuf
+ **
+pkts
+,
+
+1466 
+ušt64_t
+ *
+pkts_mask
+,
+
+1467 
+ušt64_t
+ 
+no_Ãw_úxn_mask
+,
+
+1468 
+ušt64_t
+ *
+Ȧy_pkt_mask
+,
+
+1469 
+ušt64_t
+ *
+hijack_mask
+,
+
+1470 
+ušt8_t
+ 
+_hdr_size_by‹s
+)
+
+1473 
+ušt64_t
+ 
+pkts_to_´oûss
+ = *
+pkts_mask
+;
+
+1475 
+ušt8_t
+ 
+com·ùšg_m­
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+1477 
+ušt8_t
+ 
+key_Üig_dœ
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+1478 
+ušt32_t
+ 
+·ck‘s_fÜ_lookup
+ = 0;
+
+1479 
+št32_t
+ 
+pos™iÚs
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+1480 
+ušt32_t
+ 
+i
+;
+
+1481 
+¹e_ù_úxn_d©a
+ 
+Ãw_úxn_d©a
+;
+
+1483 ià(
+CNXN_TRX_DEBUG
+ > 1) {
+
+1484 
+	`´štf
+("EÁ” cnxÀŒack” %p", 
+ù
+);
+
+1485 
+	`´štf
+(" synproxy batch†ookup with…acket mask %p\n",
+
+1486 (*)*
+pkts_mask
+);
+
+1489 
+	`¹e_ù_fÜg‘_Ãw_cÚÃùiÚs
+(
+ù
+);
+
+1490 *
+Ȧy_pkt_mask
+ = 0;
+
+1491 *
+hijack_mask
+ = 0;
+
+1498 
+_hdr_size_by‹s
+) {
+
+1499 
+IPv4_HEADER_SIZE
+:
+
+1500 ; 
+pkts_to_´oûss
+;) {
+
+1501 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+
+1502 
+pkts_to_´oûss
+);
+
+1504 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+1506 
+pkts_to_´oûss
+ &ð~
+pkt_mask
+;
+
+1508 
+¹e_mbuf
+ *
+pkt
+ = 
+pkts
+[
+pos
+];
+
+1514 
+tý_hdr
+ *
+thdr
+ = (tcp_hdr *)
+
+1515 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+1516 (
+IP_START
+ + 
+_hdr_size_by‹s
+));
+
+1517 
+ušt16_t
+ 
+¤c_pÜt
+ = 
+	`¹e_bsw­16
+(
+thdr
+->src_port);
+
+1518 
+ušt16_t
+ 
+d¡_pÜt
+ = 
+	`¹e_bsw­16
+(
+thdr
+->dst_port);
+
+1520 
+v4_hdr
+ *
+ihdr
+ = (ipv4_hdr *)
+
+1521 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, 
+IP_START
+);
+
+1522 
+ušt8_t
+ 
+´Ùo
+ = 
+ihdr
+->
+Ãxt_´Ùo_id
+;
+
+1524 ià(!(
+´Ùo
+ =ð
+TCP_PROTOCOL
+ ||…rÙØ=ð
+UDP_PROTOCOL
+)) {
+
+1535 
+ušt32_t
+ 
+¤c_addr
+ = 
+	`¹e_bsw­32
+(
+ihdr
+->src_addr);
+
+1536 
+ušt32_t
+ 
+d¡_addr
+ = 
+	`¹e_bsw­32
+(
+ihdr
+->dst_addr);
+
+1538 ià(
+CNXN_TRX_DEBUG
+ > 2) {
+
+1539 ià(
+CNXN_TRX_DEBUG
+ > 4)
+
+1540 
+	`¹e_ù_úxn_´št_pkt
+(
+pkt
+,
+
+1541 
+IP_VERSION_4
+);
+
+1547 
+com·ùšg_m­
+[
+·ck‘s_fÜ_lookup
+] = 
+pos
+;
+
+1548 
+key_Üig_dœ
+[
+·ck‘s_fÜ_lookup
+] =
+
+1549 
+	`¹e_ù_ü—‹_úxn_hashkey
+(&
+¤c_addr
+, &
+d¡_addr
+,
+
+1550 
+¤c_pÜt
+, 
+d¡_pÜt
+,
+
+1551 
+´Ùo
+,
+
+1552 &
+ù
+->
+hash_keys
+
+
+1553 [
+·ck‘s_fÜ_lookup
+][0],
+
+1554 
+IP_VERSION_4
+);
+
+1555 
+·ck‘s_fÜ_lookup
+++;
+
+1558 
+IPv6_HEADER_SIZE
+:
+
+1559 ; 
+pkts_to_´oûss
+;) {
+
+1560 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+
+1561 
+pkts_to_´oûss
+);
+
+1563 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+1565 
+pkts_to_´oûss
+ &ð~
+pkt_mask
+;
+
+1567 
+¹e_mbuf
+ *
+pkt
+ = 
+pkts
+[
+pos
+];
+
+1570 *
+_hdr
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+1571 
+IP_START
+);
+
+1576 
+tý_hdr
+ *
+thdr
+ = (tcp_hdr *)
+
+1577 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+1578 (
+IP_START
+ + 
+_hdr_size_by‹s
+));
+
+1579 
+ušt16_t
+ 
+¤c_pÜt
+ = 
+	`¹e_bsw­16
+(
+thdr
+->src_port);
+
+1580 
+ušt16_t
+ 
+d¡_pÜt
+ = 
+	`¹e_bsw­16
+(
+thdr
+->dst_port);
+
+1582 
+v6_hdr
+ *
+ihdr
+ = (v6_hd¸*)
+_hdr
+;
+
+1583 
+ušt8_t
+ 
+´Ùo
+ = 
+ihdr
+->proto;
+
+1585 ià(!(
+´Ùo
+ =ð
+TCP_PROTOCOL
+ ||…rÙØ=ð
+UDP_PROTOCOL
+)) {
+
+1590 ià(
+CNXN_TRX_DEBUG
+ > 2) {
+
+1591 ià(
+CNXN_TRX_DEBUG
+ > 4)
+
+1592 
+	`¹e_ù_úxn_´št_pkt
+(
+pkt
+,
+
+1593 
+IP_VERSION_6
+);
+
+1600 
+com·ùšg_m­
+[
+·ck‘s_fÜ_lookup
+] = 
+pos
+;
+
+1601 
+key_Üig_dœ
+[
+·ck‘s_fÜ_lookup
+] =
+
+1602 
+	`¹e_ù_ü—‹_úxn_hashkey
+(
+
+1603 (
+ušt32_t
+ *è
+ihdr
+->
+¤c_addr
+,
+
+1604 (
+ušt32_t
+ *è
+ihdr
+->
+d¡_addr
+,
+
+1605 
+¤c_pÜt
+, 
+d¡_pÜt
+,
+
+1606 
+´Ùo
+,
+
+1607 &
+ù
+->
+hash_keys
+
+
+1608 [
+·ck‘s_fÜ_lookup
+][0],
+
+1609 
+IP_VERSION_6
+);
+
+1610 
+·ck‘s_fÜ_lookup
+++;
+
+1616 ià(
+	`uÆik–y
+(
+·ck‘s_fÜ_lookup
+ == 0))
+
+1620 
+	`mem£t
+(&
+Ãw_úxn_d©a
+, 0, (
+¹e_ù_úxn_d©a
+));
+
+1624 
+lookup_»suÉ
+ = 
+	`¹e_hash_lookup_bulk
+(
+ù
+->
+rhash
+,
+
+1625 (cÚ¡ **)&
+ù
+->
+hash_key_±rs
+,
+
+1626 
+·ck‘s_fÜ_lookup
+, &
+pos™iÚs
+[0]);
+
+1628 ià(
+	`uÆik–y
+(
+lookup_»suÉ
+ < 0)) {
+
+1630 
+	`´štf
+("Unexpected hashable…roblem, discarding‡ll…ackets");
+
+1631 *
+pkts_mask
+ = 0;
+
+1634 
+i
+ = 0; i < 
+·ck‘s_fÜ_lookup
+; i++) {
+
+1636 
+hash_bË_’Œy
+ = 
+pos™iÚs
+[
+i
+];
+
+1638 
+ušt8_t
+ 
+pkt_šdex
+ = 
+com·ùšg_m­
+[
+i
+];
+
+1640 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pkt_šdex
+;
+
+1641 
+ušt8_t
+ 
+key_is_þ›Á_Üd”
+ = 
+key_Üig_dœ
+[
+i
+];
+
+1642 
+ušt32_t
+ *
+key
+ = 
+ù
+->
+hash_key_±rs
+[
+pkt_šdex
+];
+
+1643 
+ušt8_t
+ 
+´ÙocÞ
+ = *(
+key
+ + 9);
+
+1644 
+¹e_mbuf
+ *
+·ck‘
+ = 
+pkts
+[
+pkt_šdex
+];
+
+1645 
+no_Ãw_úxn
+ = (
+pkt_mask
+ & 
+no_Ãw_úxn_mask
+) != 0;
+
+1649 ià(
+´ÙocÞ
+ =ð
+TCP_PROTOCOL
+) {
+
+1650 
+¹e_ù_·ck‘_aùiÚ
+ 
+tý_pkt_aùiÚ
+;
+
+1652 
+tý_pkt_aùiÚ
+ = 
+	`¹e_ù_hªdË_tý_lookup
+(
+ù
+, 
+·ck‘
+,
+
+1653 
+pkt_šdex
+, 
+key_is_þ›Á_Üd”
+,
+
+1654 
+key
+, 
+hash_bË_’Œy
+, 
+no_Ãw_úxn
+,
+
+1655 
+_hdr_size_by‹s
+);
+
+1657 
+tý_pkt_aùiÚ
+) {
+
+1659 
+RTE_CT_SEND_CLIENT_SYNACK
+:
+
+1660 
+RTE_CT_SEND_SERVER_ACK
+:
+
+1664 *
+Ȧy_pkt_mask
+ |ð
+pkt_mask
+;
+
+1667 
+RTE_CT_SEND_SERVER_SYN
+:
+
+1668 
+RTE_CT_FORWARD_PACKET
+:
+
+1671 
+RTE_CT_HIJACK
+:
+
+1672 *
+hijack_mask
+ |ð
+pkt_mask
+;
+
+1677 *
+pkts_mask
+ ^ð
+pkt_mask
+;
+
+1678 
+ù
+->
+couÁ”s
+->
+pkts_drÝ
+++;
+
+1685 ià(
+hash_bË_’Œy
+ >= 0) {
+
+1691 
+¹e_ù_úxn_d©a
+ *
+’Œy
+ =
+
+1692 &
+ù
+->
+hash_bË_’Œ›s
+[
+hash_bË_’Œy
+];
+
+1694 ià(
+¹e_ù_udp_·ck‘
+
+
+1695 (
+ù
+, 
+’Œy
+, 
+pkts
+[
+pkt_šdex
+],
+
+1696 
+key_is_þ›Á_Üd”
+)) {
+
+1697 
+’Œy
+->
+couÁ”s
+.
+·ck‘s_fÜw¬ded
+++;
+
+1698 
+ù
+->
+couÁ”s
+->
+pkts_fÜw¬ded
+++;
+
+1706 
+¹e_ù_úxn_d©a
+ *
+»ûÁ_’Œy
+ =
+
+1707 
+	`¹e_ù_£¬ch_Ãw_cÚÃùiÚs
+(
+ù
+, 
+key
+);
+
+1709 ià(
+»ûÁ_’Œy
+ !ð
+NULL
+) {
+
+1710 ià(
+	`¹e_ù_udp_·ck‘
+(
+ù
+, 
+»ûÁ_’Œy
+,
+
+1711 
+pkts
+[
+pkt_šdex
+],
+
+1712 
+key_is_þ›Á_Üd”
+)) {
+
+1713 
+»ûÁ_’Œy
+->
+couÁ”s
+.
+
+1714 
+·ck‘s_fÜw¬ded
+++;
+
+1715 
+ù
+->
+couÁ”s
+->
+pkts_fÜw¬ded
+++;
+
+1722 ià(
+no_Ãw_úxn
+) {
+
+1726 *
+pkts_mask
+ ^ð
+pkt_mask
+;
+
+1727 
+ù
+->
+couÁ”s
+->
+pkts_drÝ
+++;
+
+1728 
+ù
+->
+couÁ”s
+->
+
+1729 
+pkts_drÝ_šv®id_cÚn
+++;
+
+1733 ià(
+	`¹e_ù_udp_Ãw_cÚÃùiÚ
+(
+ù
+,
+
+1734 &
+Ãw_úxn_d©a
+, 
+pkts
+[
+pkt_šdex
+])) {
+
+1738 
+št32_t
+ 
+pos™iÚ
+ =
+
+1739 
+	`¹e_hash_add_key
+(
+ù
+->
+
+1740 
+rhash
+, 
+key
+);
+
+1742 ià(
+pos™iÚ
+ < 0)
+
+1745 
+¹e_ù_úxn_d©a
+
+
+1746 *
+Ãw_hash_’Œy
+ = &
+ù
+->
+
+1747 
+hash_bË_’Œ›s
+[
+pos™iÚ
+];
+
+1754 
+	`memýy
+(
+Ãw_úxn_d©a
+.
+key
+, key,
+
+1755 (
+Ãw_úxn_d©a
+.
+key
+));
+
+1757 
+Ãw_úxn_d©a
+.
+
+1758 
+key_is_þ›Á_Üd”
+
+
+1759 ð
+key_is_þ›Á_Üd”
+;
+
+1760 
+Ãw_úxn_d©a
+.
+´ÙocÞ
+ =
+
+1761 
+UDP_PROTOCOL
+;
+
+1762 
+	`¹e_úxn__ty³
+(
+
+1763 &
+Ãw_úxn_d©a
+.
+ty³
+,
+
+1764 
+·ck‘
+);
+
+1765 
+	`¹e_memýy
+(
+Ãw_hash_’Œy
+,
+
+1766 &
+Ãw_úxn_d©a
+,
+
+1768 
+¹e_ù_úxn_d©a
+));
+
+1770 
+Ãw_hash_’Œy
+->
+couÁ”s
+.
+
+1771 
+·ck‘s_fÜw¬ded
+ = 1;
+
+1772 
+ù
+->
+couÁ”s
+->
+pkts_fÜw¬ded
+++;
+
+1773 
+Ãw_hash_’Œy
+->
+couÁ”s
+.
+
+1774 
+·ck‘s_drݳd
+ = 0;
+
+1775 
+ù
+->
+couÁ”s
+->
+pkts_drÝ
+ = 0;
+
+1776 
+ù
+->
+couÁ”s
+->
+
+1777 
+cu¼’t_aùive_£ssiÚs
+++;
+
+1778 
+ù
+->
+couÁ”s
+->
+
+1779 
+£ssiÚs_aùiv©ed
+++;
+
+1781 
+Ãw_hash_’Œy
+->
+
+1782 
+¡©e_u£d_fÜ_tim”
+
+
+1783 ð
+RTE_CT_UDP_NONE
+;
+
+1784 
+	`¹e_ù_£t_úxn_tim”_fÜ_udp
+(
+
+1785 
+ù
+,
+
+1786 
+Ãw_hash_’Œy
+,
+
+1787 
+RTE_CT_UDP_UNREPLIED
+);
+
+1789 
+	`¹e_ù_»memb”_Ãw_cÚÃùiÚ
+(
+
+1790 
+ù
+,
+
+1791 
+Ãw_hash_’Œy
+);
+
+1800 ià(
+CNXN_TRX_DEBUG
+ > 1) {
+
+1801 
+	`´štf
+("Exit cnxnracker synproxy batch†ookup with");
+
+1802 
+	`´štf
+("…ack‘ mask %p\n", (*)*
+pkts_mask
+);
+
+1804 
+	}
+}
+
+	@VIL/conntrack/rte_cnxn_tracking.h
+
+17 #iâdeà
+_CNXN_TRACKING_H
+
+
+18 
+	#_CNXN_TRACKING_H
+
+
+	)
+
+20 
+	~<¡dlib.h
+>
+
+21 
+	~<¡ršg.h
+>
+
+22 
+	~<š‰y³s.h
+>
+
+23 
+	~<¡dboÞ.h
+>
+
+26 
+	~<¹e_hash.h
+>
+
+27 
+	~<¹e_‘h”.h
+>
+
+29 
+	~"¹e_ù_tý.h
+"
+
+54 
+¹e_ù_úxn_Œack”
+ 
+	g__¹e_ÿche_®igÃd
+;
+
+56 

+¹e_CT_hi_couÁ”_block_š_u£
+;
+
+58 
+	s¹e_CT_couÁ”_block
+ {
+
+60 
+ušt64_t
+ 
+	mcu¼’t_aùive_£ssiÚs
+;
+
+61 
+ušt64_t
+ 
+	m£ssiÚs_aùiv©ed
+;
+
+63 
+ušt64_t
+ 
+	m£ssiÚs_»aùiv©ed
+;
+
+65 
+ušt64_t
+ 
+	m£ssiÚs_e¡ablished
+;
+
+66 
+ušt64_t
+ 
+	m£ssiÚs_þo£d
+;
+
+67 
+ušt64_t
+ 
+	m£ssiÚs_timedout
+;
+
+68 
+ušt64_t
+ 
+	mpkts_fÜw¬ded
+;
+
+69 
+ušt64_t
+ 
+	mpkts_drÝ
+;
+
+70 
+ušt64_t
+ 
+	mpkts_drÝ_šv®id_cÚn
+;
+
+71 
+ušt64_t
+ 
+	mpkts_drÝ_šv®id_¡©e
+;
+
+72 
+ušt64_t
+ 
+	mpkts_drÝ_šv®id_r¡
+;
+
+73 
+ušt64_t
+ 
+	mpkts_drÝ_outof_wšdow
+;
+
+74 } 
+	g__¹e_ÿche_®igÃd
+;
+
+76 
+	s¹e_syÅroxy_h–³r
+ {
+
+77 
+ušt64_t
+ 
+	mȦy_pkt_mask
+;
+
+78 
+ušt64_t
+ 
+	mhijack_mask
+;
+
+79 
+¹e_mbuf
+ **
+	mbufã»d_pkts_to_fÜw¬d
+;
+
+80 
+ušt8_t
+ 
+	mnum_bufã»d_pkts_to_fÜw¬d
+;
+
+83 
+	s¹e_CT_h–³r
+ {
+
+84 
+ušt64_t
+ 
+	mno_Ãw_úxn_mask
+;
+
+85 
+ušt64_t
+ 
+	mȦy_pkt_mask
+;
+
+86 
+ušt64_t
+ 
+	mhijack_mask
+;
+
+87 
+¹e_mbuf
+ **
+	mbufã»d_pkts_to_fÜw¬d
+;
+
+88 
+ušt8_t
+ 
+	mnum_bufã»d_pkts_to_fÜw¬d
+;
+
+91 
+	#MAX_CT_INSTANCES
+ 24
+
+	)
+
+93 

+¹e_CT_couÁ”_block
+ 
+¹e_CT_couÁ”_bË
+[
+MAX_CT_INSTANCES
+]
+
+94 
+__¹e_ÿche_®igÃd
+;
+
+122 
+ušt64_t
+
+
+123 
+¹e_ù_úxn_Œack”_b©ch_lookup
+(
+
+124 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+125 
+¹e_mbuf
+ **
+pkts
+,
+
+126 
+ušt64_t
+ 
+pkts_mask
+,
+
+127 
+¹e_CT_h–³r
+ *
+ù_h–³r
+);
+
+130 
+¹e_ù_úxn_Œack”_b©ch_lookup_ty³
+(
+
+131 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+132 
+¹e_mbuf
+ **
+pkts
+,
+
+133 
+ušt64_t
+ *
+pkts_mask
+,
+
+134 
+¹e_CT_h–³r
+ *
+ù_h–³r
+,
+
+135 
+ušt8_t
+ 
+_hdr_size_by‹s
+);
+
+169 
+ušt64_t
+
+
+170 
+¹e_ù_úxn_Œack”_b©ch_lookup_w™h_Ãw_úxn_cڌÞ
+(
+
+171 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+172 
+¹e_mbuf
+ **
+pkts
+,
+
+173 
+ušt64_t
+ 
+pkts_mask
+,
+
+174 
+ušt64_t
+ 
+no_Ãw_úxn_mask
+);
+
+205 
+ušt64_t
+
+
+206 
+¹e_ù_úxn_Œack”_b©ch_lookup_w™h_syÅroxy
+(
+
+207 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+208 
+¹e_mbuf
+ **
+pkts
+,
+
+209 
+ušt64_t
+ 
+pkts_mask
+,
+
+210 
+¹e_syÅroxy_h–³r
+ *
+¥_h–³r
+);
+
+239 
+¹e_mbuf
+ *
+
+240 
+¹e_ù_g‘_bufã»d_syÅroxy_·ck‘s
+(
+¹e_ù_úxn_Œack”
+ *
+ù
+);
+
+259 
+¹e_ù_š™Ÿlize_úxn_Œack”_w™h_syÅroxy
+(
+
+260 
+¹e_ù_úxn_Œack”
+ *
+Ãw_úxn_Œack”
+,
+
+261 
+ušt32_t
+ 
+max_cÚÃùiÚ_couÁ
+,
+
+262 *
+Çme
+,
+
+263 
+ušt16_t
+ 
+poš‹r_off£t
+);
+
+283 
+¹e_ù_š™Ÿlize_úxn_Œack”
+(
+
+284 
+¹e_ù_úxn_Œack”
+ *
+Ãw_úxn_Œack”
+,
+
+285 
+ušt32_t
+ 
+max_cÚÃùiÚ_couÁ
+,
+
+286 *
+Çme
+);
+
+301 
+¹e_ù_ä“_úxn_Œack”_»sourûs
+(
+
+302 
+¹e_ù_úxn_Œack”
+ *
+Þd_úxn_Œack”
+);
+
+313 
+¹e_ù_g‘_úxn_Œack”_size
+();
+
+323 
+¹e_CT_couÁ”_block
+*
+
+324 
+¹e_ù_g‘_couÁ”_add»ss
+(
+¹e_ù_úxn_Œack”
+ *
+ù
+);
+
+346 
+¹e_ù_£t_cÚfigu¿tiÚ_ÝtiÚs
+(
+
+347 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+348 *
+Çme
+,
+
+349 *
+v®ue
+);
+
+363 
+¹e_ù_hªdË_expœed_tim”s
+(
+¹e_ù_úxn_Œack”
+ *
+ù
+);
+
+367 
+¹e_ù_g‘_IP_hdr_size
+(
+¹e_mbuf
+ *
+pkt
+);
+
+378 
+¹e_ù_’abË_syÅroxy
+(
+¹e_ù_úxn_Œack”
+ *
+ù
+);
+
+389 
+¹e_ù_di§bË_syÅroxy
+(
+¹e_ù_úxn_Œack”
+ *
+ù
+);
+
+391 
+¹e_ù_š™Ÿlize_deçuÉ_timeouts
+(
+
+392 
+¹e_ù_úxn_Œack”
+ *
+Ãw_úxn_Œack”
+);
+
+394 
+ušt8_t
+
+
+395 
+¹e_ù_ü—‹_úxn_hashkey
+(
+
+396 
+ušt32_t
+ *
+¤c_addr
+,
+
+397 
+ušt32_t
+ *
+d¡_addr
+,
+
+398 
+ušt16_t
+ 
+¤c_pÜt
+,
+
+399 
+ušt16_t
+ 
+d¡_pÜt
+,
+
+400 
+ušt8_t
+ 
+´Ùo
+,
+
+401 
+ušt32_t
+ *
+key
+,
+
+402 
+ušt8_t
+ 
+ty³
+);
+
+405 #ifdeà
+CT_CGNAT
+
+
+406 
+ušt32_t
+ 
+g‘_tim”_cÜe_id
+();
+
+407 
+ušt64_t
+ 
+cgDZ_ù_´oûss
+(
+
+408 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+409 
+¹e_mbuf
+ **
+pkts
+,
+
+410 
+ušt64_t
+ 
+pkts_mask
+,
+
+411 
+¹e_CT_h–³r
+ *
+ù_h–³r
+);
+
+	@VIL/conntrack/rte_ct_synproxy.c
+
+17 
+	~<¡dio.h
+>
+
+18 
+	~<¡dlib.h
+>
+
+19 
+	~<¡dšt.h
+>
+
+20 
+	~<¡ddef.h
+>
+
+21 
+	~<¡ršg.h
+>
+
+22 
+	~<uni¡d.h
+>
+
+24 
+	~<¹e_commÚ.h
+>
+
+25 
+	~<¹e_m®loc.h
+>
+
+26 
+	~<¹e_‘h”.h
+>
+
+27 
+	~<¹e_.h
+>
+
+28 
+	~<¹e_udp.h
+>
+
+29 
+	~<¹e_icmp.h
+>
+
+30 
+	~<¹e_by‹Üd”.h
+>
+
+31 
+	~<¹e_cyþes.h
+>
+
+33 
+	~"¹e_ù_tý.h
+"
+
+71 
+	#META_DATA_OFFSET
+ 128
+
+	)
+
+72 
+	#ETHERNET_START
+ (
+META_DATA_OFFSET
+ + 
+RTE_PKTMBUF_HEADROOM
+)
+
+	)
+
+73 
+	#ETH_HDR_SIZE
+ 14
+
+	)
+
+74 
+	#IP_START
+ (
+ETHERNET_START
+ + 
+ETH_HDR_SIZE
+)
+
+	)
+
+75 
+	#PROTOCOL_START
+ (
+IP_START
+ + 9)
+
+	)
+
+76 
+	#IP_V4_HEADER_SIZE
+ 20
+
+	)
+
+77 
+	#IP_V6_HEADER_SIZE
+ 40
+
+	)
+
+78 
+	#TCP_START
+ (
+IP_START
+ + 
+IP_V4_HEADER_SIZE
+)
+
+	)
+
+79 
+	#TCP_MIN_HDR_SIZE
+ 20
+
+	)
+
+81 
+	#RTE_TCP_PROTO_ID
+ 6
+
+	)
+
+82 
+	#RTE_SP_DEFAULT_TTL
+ 64
+
+	)
+
+84 
+	#RTE_SYNPROXY_MAX_SPOOFED_PKTS
+ 64
+
+	)
+
+86 
+	#RTE_TCP_SYN
+ 0x02
+
+	)
+
+87 
+	#RTE_TCP_ACK
+ 0x10
+
+	)
+
+88 
+	#RTE_TCP_SYN_ACK
+ (
+RTE_TCP_SYN
+ | 
+RTE_TCP_ACK
+)
+
+	)
+
+90 
+	#RTE_SP_DEFAULT_WINDOW
+ 29200
+
+	)
+
+91 
+	#RTE_CT_DEBUG_SPOOFED_SEQ
+ 0
+
+	)
+
+92 
+	#RTE_DPDK_IS_16_4
+ 0
+
+	)
+
+94 
+	#IP_VERSION_4
+ 4
+
+	)
+
+95 
+	#IP_VERSION_6
+ 6
+
+	)
+
+101 
+¹e_syÅroxy_ÝtiÚs
+ 
+	gdeçuÉ_v4_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šdow_sÿË
+ = 7,
+
+107 .
+	gš™Ÿl_wšdow
+ = 
+RTE_SP_DEFAULT_WINDOW
+
+
+111 
+¹e_syÅroxy_ÝtiÚs
+ 
+	gdeçuÉ_v6_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šdow_sÿË
+ = 7,
+
+117 .
+	gš™Ÿl_wšdow
+ = 
+RTE_SP_DEFAULT_WINDOW
+
+
+121 
+__¹e_unu£d
+ 
+
+122 
+	$¹e_ù_syÅroxy_´št_pkt_šfo
+(
+¹e_mbuf
+ *
+pkt
+)
+
+124 
+v4_hdr
+ *
+ihdr4
+ = (ipv4_hdr *)
+
+125 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, 
+IP_START
+);
+
+126 
+__¹e_unu£d
+ 
+tý_hdr
+ *
+thdr
+ = (tcp_hdr *)
+
+127 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, 
+TCP_START
+);
+
+128 
+ušt32_t
+ 
+·ck‘_Ëngth
+ = 
+	`¹e_pktmbuf_pkt_Ën
+(
+pkt
+);
+
+130 
+	`´štf
+("\Åack‘†’gth %u, i°Ëngth %u\n", 
+·ck‘_Ëngth
+,
+
+131 
+	`¹e_bsw­16
+(
+ihdr4
+->
+tÙ®_Ëngth
+));
+
+132 
+	`¹e_pktmbuf_dump
+(
+¡dout
+, 
+pkt
+, 80);
+
+133 
+	}
+}
+
+135 
+šlše
+ 
+
+136 
+	$¹e_¥_šüem’l_tý_chksum_upd©e_32
+(
+
+137 
+ušt32_t
+ 
+num_befÜe
+,
+
+138 
+ušt32_t
+ 
+num_aá”
+,
+
+140 
+ušt16_t
+ *
+chksum
+)
+
+142 
+ušt32_t
+ 
+sum
+;
+
+144 
+sum
+ = ~
+	`¹e_bsw­16
+(*
+chksum
+) & 0xffff;
+
+145 
+num_befÜe
+ = ~num_before;
+
+146 
+sum
+ +ð(
+num_befÜe
+ >> 16) + (num_before & 0xffff);
+
+147 
+sum
+ +ð(
+num_aá”
+ >> 16) + (num_after & 0xffff);
+
+148 
+sum
+ = (sum >> 16) + (sum & 0xffff);
+
+149 
+sum
+ += (sum >> 16);
+
+150 *
+chksum
+ = 
+	`¹e_bsw­16
+(~
+sum
+ & 0xffff);
+
+151 
+	}
+}
+
+155 
+šlše
+ 
+ušt32_t
+
+
+156 
+	$¹e_¥_g‘_¿ndom_£q_numb”
+()
+
+158  
+	`¹e_g‘_tsc_cyþes
+();
+
+159 
+	}
+}
+
+162 
+št8_t
+ 
+	$¹e_ù_v”siÚ
+(*
+i_hdr
+)
+
+164 
+ušt8_t
+ *
+ihdr
+ = (ušt8_ˆ*)
+i_hdr
+;
+
+165 
+št8_t
+ 
+hdr_chk
+ = *
+ihdr
+;
+
+167 
+hdr_chk
+ = hdr_chk >> 4;
+
+168 ià(
+hdr_chk
+ =ð
+IP_VERSION_4
+ || hdr_chk =ð
+IP_VERSION_6
+)
+
+169  
+hdr_chk
+;
+
+172 
+	}
+}
+
+174 
+šlše
+ 
+
+175 
+	$¹e_syÅroxy_adju¡_pkt_Ëngth
+(
+¹e_mbuf
+ *
+pkt
+)
+
+177 
+ušt16_t
+ 
+pkt_Ëngth
+ = 0;
+
+178 
+_hdr_size_by‹s
+ = 
+	`¹e_ù_g‘_IP_hdr_size
+(
+pkt
+);
+
+179 *
+hdr
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, 
+IP_START
+);
+
+181 ià(
+_hdr_size_by‹s
+ =ð
+IP_V4_HEADER_SIZE
+) {
+
+182 
+v4_hdr
+ *
+ihdr4
+ = (v4_hd¸*)
+hdr
+;
+
+184 
+pkt_Ëngth
+ = 
+	`¹e_bsw­16
+(
+ihdr4
+->
+tÙ®_Ëngth
+è+ 
+ETH_HDR_SIZE
+;
+
+185 } ià(
+_hdr_size_by‹s
+ =ð
+IP_V6_HEADER_SIZE
+) {
+
+186 
+v6_hdr
+ *
+ihdr6
+ = (v6_hd¸*)
+hdr
+;
+
+188 
+pkt_Ëngth
+ = 
+	`¹e_bsw­16
+(
+ihdr6
+->
+·ylßd_Ën
+) +
+
+189 
+IP_V6_HEADER_SIZE
+ + 
+ETH_HDR_SIZE
+;
+
+191 
+ušt16_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_Œim
+(
+pkt
+, 
+mbuf_pkt_Ëngth
+ - 
+pkt_Ëngth
+);
+
+202 
+	`¹e_pktmbuf_­³nd
+(
+pkt
+, 
+pkt_Ëngth
+ - 
+mbuf_pkt_Ëngth
+);
+
+203 
+	}
+}
+
+206 
+	$¹e_syÅroxy_bužd_v4_h—d”
+(
+
+207 
+v4_hdr
+ *
+hdr4
+,
+
+208 
+ušt32_t
+ 
+¤c_addr
+,
+
+209 
+ušt32_t
+ 
+d¡_addr
+,
+
+210 
+ušt16_t
+ 
+tý_Ëngth
+)
+
+214 
+hdr4
+->
+v”siÚ_ihl
+ = 0x45;
+
+215 
+hdr4
+->
+ty³_of_£rviû
+ = 0;
+
+216 
+hdr4
+->
+tÙ®_Ëngth
+ = 
+	`¹e_bsw­16
+(
+tý_Ëngth
+ + 
+IP_V4_HEADER_SIZE
+);
+
+217 
+hdr4
+->
+·ck‘_id
+ = 0;
+
+219 
+hdr4
+->
+äagm’t_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_bsw­32
+(src_addr);
+
+224 
+hdr4
+->
+d¡_addr
+ = 
+	`¹e_bsw­32
+(dst_addr);
+
+225 
+	}
+}
+
+229 
+	$¹e_syÅroxy_bužd_v6_h—d”
+(
+
+230 
+v6_hdr
+ *
+hdr6
+,
+
+231 
+ušt8_t
+ *
+¤c_addr
+,
+
+232 
+ušt8_t
+ *
+d¡_addr
+,
+
+233 
+ušt16_t
+ 
+tý_Ëngth
+)
+
+237 
+ušt8_t
+ 
+‹mp_¤c
+[16];
+
+238 
+ušt8_t
+ 
+‹mp_d¡
+[16];
+
+240 
+hdr6
+->
+vtc_æow
+ = 0x60;
+
+241 
+hdr6
+->
+·ylßd_Ën
+ = 
+	`¹e_bsw­16
+(
+tý_Ëngth
+);
+
+242 
+hdr6
+->
+´Ùo
+ = 
+RTE_TCP_PROTO_ID
+;
+
+243 
+hdr6
+->
+hÝ_lim™s
+ = 
+RTE_SP_DEFAULT_TTL
+;
+
+247 
+	`¹e_mov16
+(
+‹mp_¤c
+, 
+¤c_addr
+);
+
+248 
+	`¹e_mov16
+(
+‹mp_d¡
+, 
+d¡_addr
+);
+
+249 
+	`¹e_mov16
+(
+hdr6
+->
+¤c_addr
+, 
+‹mp_¤c
+);
+
+250 
+	`¹e_mov16
+(
+hdr6
+->
+d¡_addr
+, 
+‹mp_d¡
+);
+
+251 
+	}
+}
+
+255 
+ušt16_t
+
+
+256 
+	$¹e_¥_add_tý_ÝtiÚs
+(
+tý_hdr
+ *
+thdr
+,
+
+257 cÚ¡ 
+¹e_syÅroxy_ÝtiÚs
+ *
+t_Ýts
+)
+
+259 
+ušt32_t
+ *
+ÝtiÚs_±r
+ = (ušt32_ˆ*)(
+thdr
+ + 1);
+
+260 
+ušt32_t
+ *
+§ved_±r
+ = 
+ÝtiÚs_±r
+;
+
+261 
+ušt8_t
+ 
+ÝtiÚs
+ = 
+t_Ýts
+->options;
+
+262 
+ušt32_t
+ 
+ÝtiÚ_by‹s
+;
+
+264 ià(
+ÝtiÚs
+ & 
+RTE_SP_OPTIONS_MSS
+) {
+
+265 
+ÝtiÚ_by‹s
+ = (
+RTE_CT_TCPOPT_MSS
+ << 24) |
+
+266 (
+RTE_CT_TCPOLEN_MSS
+ << 16è| 
+t_Ýts
+->
+mss
+;
+
+267 *
+ÝtiÚs_±r
+++ = 
+	`¹e_bsw­32
+(
+ÝtiÚ_by‹s
+);
+
+270 ià(
+ÝtiÚs
+ & 
+RTE_SP_OPTIONS_TIMESTAMP
+) {
+
+274 ià(
+ÝtiÚs
+ & 
+RTE_SP_OPTIONS_SACK_PERM
+)
+
+275 
+ÝtiÚ_by‹s
+ = (
+RTE_CT_TCPOPT_SACK_PERM
+ << 24) |
+
+276 (
+RTE_CT_TCPOLEN_SACK_PERM
+ << 16);
+
+278 
+ÝtiÚ_by‹s
+ = (
+RTE_CT_TCPOPT_NOP
+ << 24) |
+
+279 (
+RTE_CT_TCPOPT_NOP
+ << 16);
+
+281 
+ÝtiÚ_by‹s
+ |ð(
+RTE_CT_TCPOPT_TIMESTAMP
+ << 8) |
+
+282 
+RTE_CT_TCPOLEN_TIMESTAMP
+;
+
+283 *
+ÝtiÚs_±r
+++ = 
+	`¹e_bsw­32
+(
+ÝtiÚ_by‹s
+);
+
+284 *
+ÝtiÚs_±r
+++ = 
+	`¹e_bsw­32
+(
+t_Ýts
+->
+ts_v®
+);
+
+285 *
+ÝtiÚs_±r
+++ = 
+	`¹e_bsw­32
+(
+t_Ýts
+->
+ts_echo_Ȧy
+);
+
+286 } ià(
+ÝtiÚs
+ & 
+RTE_SP_OPTIONS_SACK_PERM
+) {
+
+287 
+ÝtiÚ_by‹s
+ = (
+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_bsw­32
+(
+ÝtiÚ_by‹s
+);
+
+294 ià(
+ÝtiÚs
+ & 
+RTE_SP_OPTIONS_WINDOW_SCALE
+) {
+
+295 
+ÝtiÚ_by‹s
+ = (
+RTE_CT_TCPOPT_NOP
+ << 24) |
+
+296 (
+RTE_CT_TCPOPT_WINDOW
+ << 16) |
+
+297 (
+RTE_CT_TCPOLEN_WINDOW
+ << 8) |
+
+298 
+t_Ýts
+->
+wšdow_sÿË
+;
+
+299 *
+ÝtiÚs_±r
+++ = 
+	`¹e_bsw­32
+(
+ÝtiÚ_by‹s
+);
+
+306 
+ušt16_t
+ 
+d©a_off£t_by‹s
+ = (ušt16_t)
+	`RTE_PTR_DIFF
+(
+ÝtiÚs_±r
+,
+
+307 
+§ved_±r
+è+ (
+tý_hdr
+);
+
+308 
+thdr
+->
+d©a_off
+ = (
+d©a_off£t_by‹s
+ >> 2) << 4;
+
+310  
+d©a_off£t_by‹s
+;
+
+311 
+	}
+}
+
+318 
+šlše
+ 
+ušt16_t
+
+
+319 
+	$¹e_syÅroxy_bužd_tý_h—d”
+(
+
+320 
+__¹e_unu£d
+ 
+¹e_mbuf
+ *
+Þd_pkt
+,
+
+321 
+tý_hdr
+ *
+t_hdr
+,
+
+322 
+ušt16_t
+ 
+¤c_pÜt
+,
+
+323 
+ušt16_t
+ 
+d¡_pÜt
+,
+
+324 
+ušt32_t
+ 
+£q
+,
+
+325 
+ušt32_t
+ 
+ack
+,
+
+326 
+ušt8_t
+ 
+æags
+,
+
+327 cÚ¡ 
+¹e_syÅroxy_ÝtiÚs
+ *
+t_Ýts
+,
+
+328 
+ušt8_t
+ 
+add_ÝtiÚs
+)
+
+330 
+t_hdr
+->
+¤c_pÜt
+ = 
+	`¹e_bsw­16
+(src_port);
+
+331 
+t_hdr
+->
+d¡_pÜt
+ = 
+	`¹e_bsw­16
+(dst_port);
+
+332 
+t_hdr
+->
+£Á_£q
+ = 
+	`¹e_bsw­32
+(
+£q
+);
+
+333 
+t_hdr
+->
+»cv_ack
+ = 
+	`¹e_bsw­32
+(
+ack
+);
+
+335 
+t_hdr
+->
+tý_æags
+ = 
+æags
+;
+
+336 
+t_hdr
+->
+rx_wš
+ = 
+t_Ýts
+->
+š™Ÿl_wšdow
+;
+
+338 
+t_hdr
+->
+tý_u½
+ = 0;
+
+342 
+ušt16_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  
+Ãw_tý_hdr_size
+;
+
+350 
+	}
+}
+
+353 
+	$¹e_syÅroxy_compu‹_checksums
+(*
+i_hdr
+, 
+tý_hdr
+ *
+t_hdr
+)
+
+364 
+št8_t
+ 
+hdr_chk
+ = 
+	`¹e_ù_v”siÚ
+(
+i_hdr
+);
+
+366 
+t_hdr
+->
+cksum
+ = 0;
+
+368 ià(
+hdr_chk
+ =ð
+IP_VERSION_4
+) {
+
+369 
+v4_hdr
+ *
+i4_hdr
+ = (v4_hd¸*)
+i_hdr
+;
+
+371 
+i4_hdr
+->
+hdr_checksum
+ = 0;
+
+372 
+t_hdr
+->
+cksum
+ = 
+	`¹e_v4_ud±ý_cksum
+(
+i4_hdr
+,_hdr);
+
+373 
+i4_hdr
+->
+hdr_checksum
+ = 
+	`¹e_v4_cksum
+(i4_hdr);
+
+374 } ià(
+hdr_chk
+ =ð
+IP_VERSION_6
+) {
+
+375 
+v6_hdr
+ *
+i6_hdr
+ = (v6_hd¸*)
+i_hdr
+;
+
+377 
+t_hdr
+->
+cksum
+ = 
+	`¹e_v6_ud±ý_cksum
+(
+i6_hdr
+,_hdr);
+
+379 
+	}
+}
+
+391 
+	$¹e_¥_cvt_to_¥ooãd_þ›Á_syÇck
+(
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+392 
+¹e_mbuf
+ *
+Þd_pkt
+)
+
+398 
+_hdr_size_by‹s
+ = 
+	`¹e_ù_g‘_IP_hdr_size
+(
+Þd_pkt
+);
+
+399 *
+hdr
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+Þd_pkt
+, 
+IP_START
+);
+
+400 
+tý_hdr
+ *
+thdr
+ = (tcp_hdr *)
+
+401 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+Þd_pkt
+, 
+IP_START
+ +
+
+402 
+_hdr_size_by‹s
+);
+
+403 
+ušt16_t
+ 
+tý_h—d”_size
+;
+
+406 
+ušt32_t
+ 
+Ãw_£q
+ = 
+	`¹e_¥_g‘_¿ndom_£q_numb”
+();
+
+408 ià(
+RTE_CT_DEBUG_SPOOFED_SEQ
+)
+
+409 
+Ãw_£q
+ = 10;
+
+411 
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+Üigš®_¥ooãd_£q
+ = 
+Ãw_£q
+;
+
+414 
+tý_h—d”_size
+ = 
+	`¹e_syÅroxy_bužd_tý_h—d”
+(
+Þd_pkt
+, 
+thdr
+,
+
+415 
+	`¹e_bsw­16
+(
+thdr
+->
+d¡_pÜt
+),
+
+416 
+	`¹e_bsw­16
+(
+thdr
+->
+¤c_pÜt
+),
+
+417 
+Ãw_£q
+, 
+	`¹e_bsw­32
+(
+thdr
+->
+£Á_£q
+) + 1,
+
+418 
+RTE_TCP_SYN_ACK
+,
+
+419 
+_hdr_size_by‹s
+ =ð
+IP_V4_HEADER_SIZE
+ ?
+
+420 &
+deçuÉ_v4_syÅroxy_ÝtiÚs
+ :
+
+421 &
+deçuÉ_v6_syÅroxy_ÝtiÚs
+, 1);
+
+424 ià(
+_hdr_size_by‹s
+ =ð
+IP_V4_HEADER_SIZE
+) {
+
+425 
+v4_hdr
+ *
+ihdr4
+ = (v4_hd¸*)
+hdr
+;
+
+427 
+	`¹e_syÅroxy_bužd_v4_h—d”
+(
+ihdr4
+,
+
+428 
+	`¹e_bsw­32
+(
+ihdr4
+->
+d¡_addr
+),
+
+429 
+	`¹e_bsw­32
+(
+ihdr4
+->
+¤c_addr
+), 
+tý_h—d”_size
+);
+
+431 } ià(
+_hdr_size_by‹s
+ =ð
+IP_V6_HEADER_SIZE
+) {
+
+432 
+v6_hdr
+ *
+ihdr6
+ = (v6_hd¸*)
+hdr
+;
+
+434 
+	`¹e_syÅroxy_bužd_v6_h—d”
+(
+ihdr6
+,
+
+435 (
+ušt8_t
+ *)
+ihdr6
+->
+d¡_addr
+,
+
+436 (
+ušt8_t
+ *)
+ihdr6
+->
+¤c_addr
+, 
+tý_h—d”_size
+);
+
+438 
+	`¹e_syÅroxy_adju¡_pkt_Ëngth
+(
+Þd_pkt
+);
+
+440 
+	`¹e_syÅroxy_compu‹_checksums
+(
+hdr
+, 
+thdr
+);
+
+442 
+	}
+}
+
+446 
+	$¹e_¥_cvt_to_¥ooãd_£rv”_syn
+(
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+447 
+¹e_mbuf
+ *
+Þd_pkt
+)
+
+453 
+_hdr_size_by‹s
+ = 
+	`¹e_ù_g‘_IP_hdr_size
+(
+Þd_pkt
+);
+
+454 *
+hdr
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+Þd_pkt
+, 
+IP_START
+);
+
+455 
+tý_hdr
+ *
+thdr
+ = (tcp_hdr *)
+
+456 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+Þd_pkt
+, 
+IP_START
+
+
+457 + 
+_hdr_size_by‹s
+);
+
+458 
+ušt16_t
+ 
+tý_h—d”_size
+;
+
+460 
+tý_h—d”_size
+ = 
+	`¹e_syÅroxy_bužd_tý_h—d”
+(
+Þd_pkt
+, 
+thdr
+,
+
+461 
+	`¹e_bsw­16
+(
+thdr
+->
+¤c_pÜt
+),
+
+462 
+	`¹e_bsw­16
+(
+thdr
+->
+d¡_pÜt
+),
+
+463 
+	`¹e_bsw­32
+(
+thdr
+->
+£Á_£q
+) - 1, 0,
+
+464 
+RTE_TCP_SYN
+,
+
+465 &
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_ÝtiÚs
+, 1);
+
+467 ià(
+_hdr_size_by‹s
+ =ð
+IP_V4_HEADER_SIZE
+) {
+
+468 
+v4_hdr
+ *
+ihdr4
+ = (v4_hd¸*)
+hdr
+;
+
+470 
+	`¹e_syÅroxy_bužd_v4_h—d”
+(
+ihdr4
+,
+
+471 
+	`¹e_bsw­32
+(
+ihdr4
+->
+¤c_addr
+),
+
+472 
+	`¹e_bsw­32
+(
+ihdr4
+->
+d¡_addr
+), 
+tý_h—d”_size
+);
+
+473 } ià(
+_hdr_size_by‹s
+ =ð
+IP_V6_HEADER_SIZE
+) {
+
+474 
+v6_hdr
+ *
+ihdr6
+ = (v6_hd¸*)
+hdr
+;
+
+476 
+	`¹e_syÅroxy_bužd_v6_h—d”
+(
+ihdr6
+,
+
+477 (
+ušt8_t
+ *)
+ihdr6
+->
+¤c_addr
+,
+
+478 (
+ušt8_t
+ *)
+ihdr6
+->
+d¡_addr
+, 
+tý_h—d”_size
+);
+
+481 
+	`¹e_syÅroxy_adju¡_pkt_Ëngth
+(
+Þd_pkt
+);
+
+483 
+	`¹e_syÅroxy_compu‹_checksums
+(
+hdr
+, 
+thdr
+);
+
+485 
+	}
+}
+
+488 
+	$¹e_¥_cvt_to_¥ooãd_£rv”_ack
+(
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+489 
+¹e_mbuf
+ *
+Þd_pkt
+)
+
+495 
+_hdr_size_by‹s
+ = 
+	`¹e_ù_g‘_IP_hdr_size
+(
+Þd_pkt
+);
+
+496 *
+hdr
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+Þd_pkt
+, 
+IP_START
+);
+
+497 
+tý_hdr
+ *
+thdr
+ = (tcp_hdr *)
+
+498 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+Þd_pkt
+, 
+IP_START
+ +
+
+499 
+_hdr_size_by‹s
+);
+
+504 
+ušt32_t
+ 
+»®_£q
+ = 
+	`¹e_bsw­32
+(
+thdr
+->
+£Á_£q
+);
+
+505 
+ušt16_t
+ 
+tý_h—d”_size
+;
+
+507 
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+£q_diff
+ =
+
+508 
+»®_£q
+ - 
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+Üigš®_¥ooãd_£q
+;
+
+511 
+tý_h—d”_size
+ = 
+	`¹e_syÅroxy_bužd_tý_h—d”
+(
+Þd_pkt
+, 
+thdr
+,
+
+512 
+	`¹e_bsw­16
+(
+thdr
+->
+d¡_pÜt
+),
+
+513 
+	`¹e_bsw­16
+(
+thdr
+->
+¤c_pÜt
+),
+
+514 
+	`¹e_bsw­32
+(
+thdr
+->
+»cv_ack
+),
+
+515 
+	`¹e_bsw­32
+(
+thdr
+->
+£Á_£q
+è+ 1, 
+RTE_TCP_ACK
+,
+
+516 &
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_ÝtiÚs
+, 0);
+
+519 ià(
+_hdr_size_by‹s
+ =ð
+IP_V4_HEADER_SIZE
+) {
+
+520 
+v4_hdr
+ *
+ihdr4
+ = (v4_hd¸*)
+hdr
+;
+
+522 
+	`¹e_syÅroxy_bužd_v4_h—d”
+(
+ihdr4
+,
+
+523 
+	`¹e_bsw­32
+(
+ihdr4
+->
+d¡_addr
+),
+
+524 
+	`¹e_bsw­32
+(
+ihdr4
+->
+¤c_addr
+), 
+tý_h—d”_size
+);
+
+526 } ià(
+_hdr_size_by‹s
+ =ð
+IP_V6_HEADER_SIZE
+) {
+
+527 
+v6_hdr
+ *
+ihdr6
+ = (v6_hd¸*)
+hdr
+;
+
+529 
+	`¹e_syÅroxy_bužd_v6_h—d”
+(
+ihdr6
+,
+
+530 (
+ušt8_t
+ *)
+ihdr6
+->
+d¡_addr
+,
+
+531 (
+ušt8_t
+ *)
+ihdr6
+->
+¤c_addr
+, 
+tý_h—d”_size
+);
+
+533 
+	`¹e_syÅroxy_adju¡_pkt_Ëngth
+(
+Þd_pkt
+);
+
+535 
+	`¹e_syÅroxy_compu‹_checksums
+(
+hdr
+, 
+thdr
+);
+
+536 
+	}
+}
+
+551 
+	$¹e_¥_adju¡_£rv”_£q_aá”_wšdow_check
+(
+
+552 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+553 
+__¹e_unu£d
+ *
+i_hdr
+,
+
+554 
+tý_hdr
+ *
+thdr
+,
+
+555 
+¹e_ù_pkt_dœeùiÚ
+ 
+dœ
+)
+
+557 
+ušt32_t
+ 
+num_befÜe
+, 
+num_aá”
+;
+
+559 ià(!
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_e¡ablished
+)
+
+562 ià(
+dœ
+ =ð
+RTE_CT_DIR_ORIGINAL
+)
+
+567 
+num_befÜe
+ = 
+	`¹e_bsw­32
+(
+thdr
+->
+£Á_£q
+);
+
+568 
+num_aá”
+ = 
+num_befÜe
+ - 
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+£q_diff
+;
+
+569 
+thdr
+->
+£Á_£q
+ = 
+	`¹e_bsw­32
+(
+num_aá”
+);
+
+571 
+	`¹e_¥_šüem’l_tý_chksum_upd©e_32
+(
+num_befÜe
+, 
+num_aá”
+,
+
+572 &
+thdr
+->
+cksum
+);
+
+573 
+	}
+}
+
+577 
+	$¹e_¥_adju¡_þ›Á_§ck_’Œ›s
+(
+
+578 
+tý_hdr
+ *
+thdr
+,
+
+579 
+ušt32_t
+ 
+diff
+)
+
+581 
+ušt32_t
+ 
+num_befÜe
+, 
+num_aá”
+;
+
+582 
+ušt32_t
+ *
+§ck_±r
+;
+
+583 
+ušt8_t
+ 
+§ck_blk_size
+;
+
+584 
+ušt16_t
+ 
+d©aoff_š_by‹s
+ = (
+thdr
+->
+d©a_off
+ & 0xf0) >> 2;
+
+585 
+ušt16_t
+ 
+Ëngth
+ = 
+d©aoff_š_by‹s
+ - (
+tý_hdr
+);
+
+587 ià(!
+Ëngth
+)
+
+590 
+ušt8_t
+ *
+ÝtiÚs_±r
+ = (ušt8_ˆ*)(
+thdr
+ + 1);
+
+592 
+Ëngth
+ > 0) {
+
+593 
+ušt8_t
+ 
+Ýcode
+ = *
+ÝtiÚs_±r
+;
+
+594 
+ušt8_t
+ 
+Ýsize
+ = 
+ÝtiÚs_±r
+[1];
+
+595 
+i
+;
+
+597 
+Ýcode
+) {
+
+599 
+RTE_CT_TCPOPT_EOL
+:
+
+602 
+RTE_CT_TCPOPT_NOP
+:
+
+603 
+Ëngth
+--;
+
+604 
+ÝtiÚs_±r
+++;
+
+607 
+RTE_CT_TCPOPT_SACK
+:
+
+616 
+§ck_blk_size
+ = 
+Ýsize
+ - 2;
+
+618 
+§ck_±r
+ = (
+ušt32_t
+ *)(
+ÝtiÚs_±r
+ + 2);
+
+620 
+num_acks
+ = 
+§ck_blk_size
+ >> 2;
+
+622 ià(
+	`uÆik–y
+(
+§ck_blk_size
+ > 32 ||
+
+623 ((
+§ck_blk_size
+ & 0x3) != 0))) {
+
+624 
+	`´štf
+("Sack block…arsing failure\n");
+
+628 
+i
+ = 0; i < 
+num_acks
+; i++) {
+
+629 
+num_befÜe
+ = 
+	`¹e_bsw­32
+(*
+§ck_±r
+);
+
+630 
+num_aá”
+ = 
+num_befÜe
+ + 
+diff
+;
+
+631 *
+§ck_±r
+ = 
+	`¹e_bsw­32
+(
+num_aá”
+);
+
+632 
+§ck_±r
+++;
+
+633 
+	`¹e_¥_šüem’l_tý_chksum_upd©e_32
+(
+
+634 
+num_befÜe
+,
+
+635 
+num_aá”
+,
+
+636 &
+thdr
+->
+cksum
+);
+
+643 ià((
+Ýsize
+ < 2è|| (Ýsiz> 
+Ëngth
+)) {
+
+644 
+	`´štf
+("ERROR!, opsize %i,†ength %i\n",
+
+645 
+Ýsize
+, 
+Ëngth
+);
+
+649 
+ÝtiÚs_±r
+ +ð
+Ýsize
+;
+
+650 
+Ëngth
+ -ð
+Ýsize
+;
+
+652 
+	}
+}
+
+655 
+	$¹e_¥_adju¡_þ›Á_ack_befÜe_wšdow_check
+(
+
+656 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+657 
+__¹e_unu£d
+ *
+i_hdr
+,
+
+658 
+tý_hdr
+ *
+thdr
+,
+
+659 
+¹e_ù_pkt_dœeùiÚ
+ 
+dœ
+)
+
+661 
+ušt32_t
+ 
+num_befÜe
+, 
+num_aá”
+;
+
+663 ià(!
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_e¡ablished
+)
+
+666 ià(
+dœ
+ !ð
+RTE_CT_DIR_ORIGINAL
+)
+
+671 
+num_befÜe
+ = 
+	`¹e_bsw­32
+(
+thdr
+->
+»cv_ack
+);
+
+672 
+num_aá”
+ = 
+num_befÜe
+ + 
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+£q_diff
+;
+
+673 
+thdr
+->
+»cv_ack
+ = 
+	`¹e_bsw­32
+(
+num_aá”
+);
+
+674 
+	`¹e_¥_šüem’l_tý_chksum_upd©e_32
+(
+num_befÜe
+,
+
+675 
+num_aá”
+, &
+thdr
+->
+cksum
+);
+
+680 
+	`¹e_¥_adju¡_þ›Á_§ck_’Œ›s
+(
+thdr
+,
+
+681 
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+£q_diff
+);
+
+686 
+	}
+}
+
+693 
+	$¹e_¥_·r£_tý_ÝtiÚs
+(
+
+694 
+ušt8_t
+ *
+ÝtiÚs_±r
+,
+
+695 
+ušt16_t
+ 
+Ëngth
+,
+
+696 
+¹e_syÅroxy_ÝtiÚs
+ *
+t_Ýts
+)
+
+698 
+Ýsize
+;
+
+700 
+t_Ýts
+->
+ÝtiÚs
+ = 0;
+
+702 
+Ëngth
+ > 0) {
+
+703 
+ušt8_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–y
+(
+Ýsize
+ < 2 || opsiz> 
+Ëngth
+)) {
+
+717 
+	`´štf
+("parsingƒrror, opsize: %i,†ength: %i\n",
+
+718 
+Ýsize
+, 
+Ëngth
+);
+
+722 
+Ýcode
+) {
+
+724 
+RTE_CT_TCPOPT_MSS
+:
+
+725 ià(
+Ýsize
+ =ð
+RTE_CT_TCPOLEN_MSS
+) {
+
+726 
+ušt16_t
+ *
+mss_±r
+ = (ušt16_ˆ*)
+ÝtiÚs_±r
+;
+
+728 
+t_Ýts
+->
+mss
+ = 
+	`¹e_bsw­16
+(*
+mss_±r
+);
+
+729 
+t_Ýts
+->
+ÝtiÚs
+ |ð
+RTE_SP_OPTIONS_MSS
+;
+
+733 
+RTE_CT_TCPOPT_WINDOW
+:
+
+734 ià(
+Ýsize
+ =ð
+RTE_CT_TCPOLEN_WINDOW
+) {
+
+735 
+t_Ýts
+->
+wšdow_sÿË
+ = 
+	`RTE_MIN
+(*
+ÝtiÚs_±r
+,
+
+736 
+RTE_CT_MAX_TCP_WINDOW_SCALE
+);
+
+737 
+t_Ýts
+->
+ÝtiÚs
+ |ð
+RTE_SP_OPTIONS_WINDOW_SCALE
+;
+
+741 
+RTE_CT_TCPOPT_TIMESTAMP
+:
+
+742 ià(
+Ýsize
+ =ð
+RTE_CT_TCPOLEN_TIMESTAMP
+) {
+
+743 
+ušt32_t
+ *
+ts_v®_±r
+ = (ušt32_ˆ*)
+ÝtiÚs_±r
+;
+
+744 
+ušt32_t
+ *
+ts_eü_±r
+ =
+
+745 (
+ušt32_t
+ *)(
+ÝtiÚs_±r
+ + 4);
+
+746 
+t_Ýts
+->
+ts_v®
+ = 
+	`¹e_bsw­32
+(*
+ts_v®_±r
+);
+
+747 
+t_Ýts
+->
+ts_echo_Ȧy
+ =
+
+748 
+	`¹e_bsw­32
+(*
+ts_eü_±r
+);
+
+749 
+t_Ýts
+->
+ÝtiÚs
+ |ð
+RTE_SP_OPTIONS_TIMESTAMP
+;
+
+753 
+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
+(
+¹e_mbuf
+ *
+pkt
+, 
+¹e_ù_úxn_d©a
+ *
+cd
+)
+
+775 
+_hdr_Ëngth
+ = 
+	`¹e_ù_g‘_IP_hdr_size
+(
+pkt
+);
+
+776 
+tý_hdr
+ *
+thdr
+ = (tcp_hdr *)
+
+777 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, 
+IP_START
+ + 
+_hdr_Ëngth
+);
+
+778 
+ušt8_t
+ *
+Ýt_±r
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+
+779 (
+IP_START
+ + 
+_hdr_Ëngth
+ + (
+tý_hdr
+)));
+
+781 
+¹e_syÅroxy_ÝtiÚs
+ *
+t_Ýts
+ =
+
+782 &
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_ÝtiÚs
+;
+
+783 
+Ëngth_š_by‹s
+ =
+
+784 ((
+thdr
+->
+d©a_off
+ & 0xf0è>> 2è- (
+tý_hdr
+);
+
+786 
+	`¹e_¥_·r£_tý_ÝtiÚs
+(
+Ýt_±r
+, 
+Ëngth_š_by‹s
+, 
+t_Ýts
+);
+
+787 
+t_Ýts
+->
+š™Ÿl_wšdow
+ = 
+thdr
+->
+rx_wš
+;
+
+788 
+	}
+}
+
+793 
+¹e_mbuf
+ *
+
+794 
+	$¹e_ù_g‘_bufã»d_syÅroxy_·ck‘s
+(
+
+795 
+¹e_ù_úxn_Œack”
+ *
+ù
+)
+
+797 
+¹e_mbuf
+ *
+Œkr_li¡
+ = 
+ù
+->
+bufã»d_pkt_li¡
+;
+
+799 
+ù
+->
+bufã»d_pkt_li¡
+ = 
+NULL
+;
+
+800  
+Œkr_li¡
+;
+
+801 
+	}
+}
+
+805 
+	$¹e_ù_’abË_syÅroxy
+(
+¹e_ù_úxn_Œack”
+ *
+ù
+)
+
+807 
+ù
+->
+misc_ÝtiÚs
+.
+syÅroxy_’abËd
+ = 1;
+
+808 
+	`´štf
+("rte_ct_enable_synproxy = %d\n",
+
+809 
+ù
+->
+misc_ÝtiÚs
+.
+syÅroxy_’abËd
+);
+
+810 
+	}
+}
+
+812 
+	$¹e_ù_di§bË_syÅroxy
+(
+¹e_ù_úxn_Œack”
+ *
+ù
+)
+
+814 
+ù
+->
+misc_ÝtiÚs
+.
+syÅroxy_’abËd
+ = 0;
+
+817 
+	}
+}
+
+820 
+	$¹e_ù_bufãr_·ck‘
+(
+
+821 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+822 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+823 
+¹e_mbuf
+ *
+pkt
+)
+
+831 
+¹e_mbuf
+ **
+Ãxt
+ = (rte_mbuf **)
+
+832 
+	`RTE_MBUF_METADATA_UINT64_PTR
+(
+pkt
+,
+
+833 
+ù
+->
+poš‹r_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‘s
+(
+
+840 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+841 
+¹e_ù_úxn_d©a
+ *
+cd
+)
+
+843 
+¹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 
+¹e_mbuf
+ *
+Œkr_li¡
+ = 
+ù
+->
+bufã»d_pkt_li¡
+;
+
+853 ià(
+Œkr_li¡
+ =ð
+NULL
+)
+
+860 
+úxn_li¡
+ !ð
+NULL
+) {
+
+861 
+¹e_mbuf
+ *
+Þd_Ãxt
+;
+
+863 
+¹e_mbuf
+ **
+Ãxt
+ = (rte_mbuf **)
+
+864 
+	`RTE_MBUF_METADATA_UINT64_PTR
+(
+úxn_li¡
+,
+
+865 
+ù
+->
+poš‹r_off£t
+);
+
+867 
+Þd_Ãxt
+ = *
+Ãxt
+;
+
+868 *
+Ãxt
+ = 
+Œkr_li¡
+;
+
+869 
+Œkr_li¡
+ = 
+úxn_li¡
+;
+
+870 
+úxn_li¡
+ = 
+Þd_Ãxt
+;
+
+872 
+ù
+->
+bufã»d_pkt_li¡
+ = 
+Œkr_li¡
+;
+
+873 
+	}
+}
+
+	@VIL/conntrack/rte_ct_tcp.c
+
+17 
+	~<¡dlib.h
+>
+
+18 
+	~<¡ršg.h
+>
+
+19 
+	~<immšŒš.h
+>
+
+20 
+	~<š‰y³s.h
+>
+
+21 
+	~"¹e_ù_tý.h
+"
+
+22 
+	~"¹e_úxn_Œackšg.h
+"
+
+25 
+	#CT_DEBUG
+ 0
+
+	)
+
+26 
+	#STATE_TRACKING
+ 0
+
+	)
+
+27 
+	#RTE_CT_ASSERT
+ 0
+
+	)
+
+30 
+	#META_DATA_OFFSET
+ 128
+
+	)
+
+31 
+	#RTE_PKTMBUF_HEADROOM
+ 128
+
+	)
+
+32 
+	#ETHERNET_START
+ (
+META_DATA_OFFSET
+ + 
+RTE_PKTMBUF_HEADROOM
+)
+
+	)
+
+33 
+	#ETH_HDR_SIZE
+ 14
+
+	)
+
+34 
+	#IP_START
+ (
+ETHERNET_START
+ + 
+ETH_HDR_SIZE
+)
+
+	)
+
+36 
+	#IPv4_HEADER_SIZE
+ 20
+
+	)
+
+37 
+	#IPv6_HEADER_SIZE
+ 40
+
+	)
+
+39 
+	#IP_VERSION_4
+ 4
+
+	)
+
+40 
+	#IP_VERSION_6
+ 6
+
+	)
+
+42 
+	#¹e_aá”
+(
+£q2
+, 
+£q1
+è
+	`¹e_befÜe
+(£q1, seq2)
+
+	)
+
+43 
+šlše
+ 
+ušt8_t
+ 
+	$¹e_befÜe
+(
+ušt32_t
+ 
+£q1
+, ušt32_ˆ
+£q2
+)
+
+45  (
+št32_t
+è(
+£q1
+ - 
+£q2
+) < 0;
+
+46 
+	}
+}
+
+50 
+	#ùNO
+ 
+RTE_CT_TCP_NONE
+
+
+	)
+
+51 
+	#ùSS
+ 
+RTE_CT_TCP_SYN_SENT
+
+
+	)
+
+52 
+	#ùSR
+ 
+RTE_CT_TCP_SYN_RECV
+
+
+	)
+
+53 
+	#ùES
+ 
+RTE_CT_TCP_ESTABLISHED
+
+
+	)
+
+54 
+	#ùFW
+ 
+RTE_CT_TCP_FIN_WAIT
+
+
+	)
+
+55 
+	#ùCW
+ 
+RTE_CT_TCP_CLOSE_WAIT
+
+
+	)
+
+56 
+	#ùLA
+ 
+RTE_CT_TCP_LAST_ACK
+
+
+	)
+
+57 
+	#ùTW
+ 
+RTE_CT_TCP_TIME_WAIT
+
+
+	)
+
+58 
+	#ùCL
+ 
+RTE_CT_TCP_CLOSE
+
+
+	)
+
+59 
+	#ùS2
+ 
+RTE_CT_TCP_SYN_SENT_2
+
+
+	)
+
+60 
+	#ùIV
+ 
+RTE_CT_TCP_MAX
+
+
+	)
+
+61 
+	#ùIG
+ 
+RTE_CT_TCP_IGNORE
+
+
+	)
+
+63 cÚ¡ 
+ušt8_t
+ 
+	g¹e_ù_tý_¡©e_bË
+[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 
+	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 
+ušt8_t
+ 
+	g¹e_ù_tý_æags_to_¡©e_bË_šdex
+[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 
+šlše
+ 
+ušt8_t
+
+
+142 
+	$¹e_ù_g‘_šdex
+(
+ušt8_t
+ 
+tý_æags
+)
+
+144 
+ušt8_t
+ 
+imp܏Á_æags
+;
+
+146 
+tý_æags
+ &= 0x3f;
+
+147 
+imp܏Á_æags
+ = ((
+tý_æags
+ & 0x10) >> 1) | (tcp_flags & 7);
+
+150 ià(
+	`uÆik–y
+((
+tý_æags
+ == 0) || (tcp_flags == 0x3f)))
+
+152  
+RTE_CT_TCP_ILL_FLAG
+;
+
+154  
+¹e_ù_tý_æags_to_¡©e_bË_šdex
+[
+imp܏Á_æags
+];
+
+156 
+	}
+}
+
+158 
+šlše
+ 
+
+159 
+	$¹e_ù_e™h”_dœeùiÚ_has_æags
+(
+¹e_ù_úxn_d©a
+ *
+cd
+, 
+ušt8_t
+ 
+æags
+)
+
+161  ((
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+£’
+[0].
+æags
+ | cd->
+
+162 
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+£’
+[1].
+æags
+) & flags) != 0;
+
+163 
+	}
+}
+
+165 
+šlše
+ 
+ušt32_t
+ 
+	$¹e_ù_£q_¶us_Ëngth
+(
+¹e_mbuf
+ *
+pkt
+,
+
+166 
+ušt8_t
+ 
+_hdr_size
+)
+
+168 
+ušt16_t
+ 
+pkt_Ëngth
+ = 0;
+
+169 
+tý_hdr
+ *
+týh—d”
+ =
+
+170 (
+tý_hdr
+ *)
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+171 (
+IP_START
+ +
+
+172 
+_hdr_size
+));
+
+173 
+ušt32_t
+ 
+tý_hdr_size
+ = (
+týh—d”
+->
+d©a_off
+ & 0xf0) >> 2;
+
+175 *
+_hdr
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, 
+IP_START
+);
+
+177 ià(
+_hdr_size
+ =ð
+IPv4_HEADER_SIZE
+) {
+
+178 
+v4_hdr
+ *
+ihdr
+ = (v4_hd¸*)
+_hdr
+;
+
+180 
+pkt_Ëngth
+ = 
+	`¹e_bsw­16
+(
+ihdr
+->
+tÙ®_Ëngth
+);
+
+182 ià(
+_hdr_size
+ =ð
+IPv6_HEADER_SIZE
+) {
+
+183 
+v6_hdr
+ *
+ihdr
+ = (v6_hd¸*)
+_hdr
+;
+
+185 
+pkt_Ëngth
+ = 
+	`¹e_bsw­16
+(
+ihdr
+->
+·ylßd_Ën
+è+ 
+IPv6_HEADER_SIZE
+;
+
+195  
+	`¹e_bsw­32
+(
+týh—d”
+->
+£Á_£q
+) +
+
+196 
+pkt_Ëngth
+ - 
+_hdr_size
+ - 
+tý_hdr_size
+ +
+
+197 ((
+týh—d”
+->
+tý_æags
+ & (
+RTE_CT_TCPHDR_SYN
+ | 
+RTE_CT_TCPHDR_FIN
+)) !=
+
+200 
+	}
+}
+
+203 
+	$¹e_ù_check_fÜ_sÿlšg_ªd_§ck_³rm
+(
+
+204 
+¹e_mbuf
+ *
+pkt
+,
+
+205 
+¹e_ù_tý_¡©e
+ *
+¡©e
+,
+
+206 
+ušt8_t
+ 
+_hdr_size
+)
+
+209 
+tý_hdr
+ *
+týh—d”
+ =
+
+210 (
+tý_hdr
+ *)
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+211 (
+IP_START
+ +
+
+212 
+_hdr_size
+));
+
+213 
+ušt32_t
+ 
+d©aoff_š_by‹s
+ = (
+týh—d”
+->
+d©a_off
+ & 0xf0) >> 2;
+
+214 
+ušt32_t
+ 
+Ëngth
+ = 
+d©aoff_š_by‹s
+ - (
+tý_hdr
+);
+
+216 
+¡©e
+->
+sÿË
+ = 0;
+
+217 
+¡©e
+->
+æags
+ = 0;
+
+219 ià(
+Ëngth
+ == 0)
+
+222 
+ušt8_t
+ *
+ÝtiÚs_±r
+ =
+
+223 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+
+224 (
+IP_START
+ + 
+_hdr_size
+ +
+
+225 (
+tý_hdr
+)));
+
+227 
+Ëngth
+ > 0) {
+
+228 
+ušt8_t
+ 
+ÝtiÚ
+ = *
+ÝtiÚs_±r
+;
+
+229 
+ušt8_t
+ 
+Ýsize
+ = 
+ÝtiÚs_±r
+[1];
+
+232 
+ÝtiÚ
+) {
+
+234 
+RTE_CT_TCPOPT_EOL
+:
+
+238 
+RTE_CT_TCPOPT_NOP
+:
+
+239 
+ÝtiÚs_±r
+++;
+
+240 
+Ëngth
+--;
+
+243 
+RTE_CT_TCPOPT_SACK_PERM
+:
+
+244 ià(
+Ýsize
+ =ð
+RTE_CT_TCPOLEN_SACK_PERM
+)
+
+245 
+¡©e
+->
+æags
+ |ð
+RTE_CT_TCP_FLAG_SACK_PERM
+;
+
+248 
+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> 
+Ëngth
+)) {
+
+264 
+	`´štf
+("scaling_and_sack_perm:something wrong\n");
+
+267 
+ÝtiÚs_±r
+ +ð
+Ýsize
+;
+
+268 
+Ëngth
+ -ð
+Ýsize
+;
+
+271 
+	}
+}
+
+274 
+	$¹e_ù_týdi¥Ïy_hdr
+(
+tý_hdr
+ *
+týh—d”
+)
+
+276 
+	`´štf
+("Tý h—d”: src_pÜt=%d", 
+	`¹e_bsw­16
+(
+týh—d”
+->
+¤c_pÜt
+));
+
+277 
+	`´štf
+(", d¡_pÜt=%d", 
+	`¹e_bsw­16
+(
+týh—d”
+->
+d¡_pÜt
+));
+
+278 
+	`´štf
+(", s’t_£q=%u", 
+	`¹e_bsw­32
+(
+týh—d”
+->
+£Á_£q
+));
+
+279 
+	`´štf
+(",„ecv_ack=%u", 
+	`¹e_bsw­32
+(
+týh—d”
+->
+»cv_ack
+));
+
+280 
+	`´štf
+(",d©a_off=%d", 
+týh—d”
+->
+d©a_off
+ / 16);
+
+281 
+	`´štf
+(",tý_æags=%02x", 
+týh—d”
+->
+tý_æags
+);
+
+282 
+	`´štf
+(",„x_wš=%d\n", 
+	`¹e_bsw­16
+(
+týh—d”
+->
+rx_wš
+));
+
+284 
+	}
+}
+
+286 
+šlše
+ 
+
+287 
+	$¹e_ù_þ—r_úxn_d©a
+(
+__¹e_unu£d
+ 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+288 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+289 
+__¹e_unu£d
+ 
+¹e_mbuf
+ *
+pkt
+)
+
+293 
+	`mem£t
+(&
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+, 0,
+
+294 (
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+));
+
+295 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_šdex
+ = 
+RTE_CT_TCP_ILL_FLAG
+;
+
+297 
+	}
+}
+
+299 
+¹e_ù_·ck‘_aùiÚ
+
+
+300 
+	$¹e_ù_tý_Ãw_cÚÃùiÚ
+(
+
+301 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+302 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+303 
+¹e_mbuf
+ *
+pkt
+,
+
+304 
+u£_syÅroxy
+,
+
+305 
+ušt8_t
+ 
+_hdr_size
+)
+
+307 
+tý_hdr
+ *
+týh—d”
+ =
+
+308 (
+tý_hdr
+ *)
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+309 (
+IP_START
+ + 
+_hdr_size
+));
+
+311 
+¹e_ù_tý_¡©es
+ 
+Ãw_¡©e
+;
+
+312 
+ušt8_t
+ 
+šdex
+;
+
+313 
+¹e_ù_tý_¡©e
+ *
+£nd”
+ =
+
+314 &
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+£’
+[
+RTE_CT_DIR_ORIGINAL
+];
+
+315 
+¹e_ù_tý_¡©e
+ *
+»ûiv”
+ =
+
+316 &
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+£’
+[
+RTE_CT_DIR_REPLY
+];
+
+317 
+ušt16_t
+ 
+wš
+;
+
+319 ià(
+CT_DEBUG
+)
+
+320 
+	`¹e_ù_týdi¥Ïy_hdr
+(
+týh—d”
+);
+
+322 
+šdex
+ = 
+	`¹e_ù_g‘_šdex
+(
+týh—d”
+->
+tý_æags
+);
+
+323 
+Ãw_¡©e
+ = 
+¹e_ù_tý_¡©e_bË
+[0][
+šdex
+][
+RTE_CT_TCP_NONE
+];
+
+325 ià(
+	`uÆik–y
+(
+Ãw_¡©e
+ >ð
+RTE_CT_TCP_MAX
+)) {
+
+326 ià(
+CT_DEBUG
+)
+
+327 
+	`´štf
+("invalid‚ew state with flags %02x\n",
+
+328 
+týh—d”
+->
+tý_æags
+);
+
+329  
+RTE_CT_DROP_PACKET
+;
+
+337 ià(
+	`uÆik–y
+((
+Ãw_¡©e
+ !ð
+RTE_CT_TCP_SYN_SENT
+
+
+338 && 
+ù
+->
+misc_ÝtiÚs
+.
+tý_loo£
+ == 0))) {
+
+341  
+RTE_CT_DROP_PACKET
+;
+
+344 ià(
+CT_DEBUG
+)
+
+345 
+	`´štf
+("‚ew connection with state %s\n",
+
+346 
+¹e_ù_tý_Çmes
+[
+Ãw_¡©e
+]);
+
+349 
+	`¹e_ù_þ—r_úxn_d©a
+(
+ù
+, 
+cd
+, 
+pkt
+);
+
+350 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+ = 
+Ãw_¡©e
+;
+
+352 
+£nd”
+->
+’d
+ = s’d”->
+max’d
+ = 
+	`¹e_ù_£q_¶us_Ëngth
+(
+pkt
+, 
+_hdr_size
+);
+
+353 
+wš
+ = 
+	`¹e_bsw­16
+(
+týh—d”
+->
+rx_wš
+);
+
+354 
+£nd”
+->
+maxwš
+ = 
+	`RTE_MAX
+(
+wš
+, (
+ušt32_t
+)1);
+
+356 ià(
+	`lik–y
+(
+Ãw_¡©e
+ =ð
+RTE_CT_TCP_SYN_SENT
+)) {
+
+358 
+	`¹e_ù_check_fÜ_sÿlšg_ªd_§ck_³rm
+(
+pkt
+, 
+£nd”
+,
+
+359 
+_hdr_size
+);
+
+361 
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox›d
+ = 
+u£_syÅroxy
+;
+
+363 ià(
+u£_syÅroxy
+) {
+
+370 ià(
+CT_DEBUG
+ > 2)
+
+371 
+	`´štf
+("synproxy sending SYN-ACKo client\n");
+
+373  
+RTE_CT_SEND_CLIENT_SYNACK
+;
+
+382 
+£nd”
+->
+max’d
+ +ð£nd”->
+maxwš
+;
+
+383 
+£nd”
+->
+æags
+ = 
+»ûiv”
+->flags =
+
+384 (
+RTE_CT_TCP_FLAG_SACK_PERM
+ | 
+RTE_CT_TCP_FLAG_BE_LIBERAL
+);
+
+387 ià(
+CT_DEBUG
+ > 0) {
+
+388 
+	`´štf
+("tcp_new: senderƒnd=%u maxend=%u maxwin=%u scale=%i",
+
+389 
+£nd”
+->
+’d
+, s’d”->
+max’d
+, s’d”->
+maxwš
+,
+
+390 
+£nd”
+->
+sÿË
+);
+
+391 
+	`´štf
+("„eceiverƒnd=%u maxend=%u maxwin=%u scale=%i\n",
+
+392 
+»ûiv”
+->
+’d
+,„eûiv”->
+max’d
+,
+
+393 
+»ûiv”
+->
+maxwš
+,
+
+394 
+»ûiv”
+->
+sÿË
+);
+
+397  
+RTE_CT_OPEN_CONNECTION
+;
+
+398 
+	}
+}
+
+400 
+ušt32_t
+
+
+401 
+	$¹e_ù_tý_§ck
+(
+¹e_mbuf
+ *
+pkt
+, 
+ušt8_t
+ 
+_hdr_size
+)
+
+403 
+tý_hdr
+ *
+týh—d”
+ =
+
+404 (
+tý_hdr
+ *)
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+405 (
+IP_START
+ +
+
+406 
+_hdr_size
+));
+
+407 
+ušt16_t
+ 
+d©aoff_š_by‹s
+ = (
+týh—d”
+->
+d©a_off
+ & 0xf0) >> 2;
+
+408 
+ušt16_t
+ 
+Ëngth
+ = 
+d©aoff_š_by‹s
+ - (
+tý_hdr
+);
+
+409 
+ušt32_t
+ 
+§ck
+ = 
+	`¹e_bsw­32
+(
+týh—d”
+->
+»cv_ack
+);
+
+411 ià(
+	`uÆik–y
+(!
+Ëngth
+))
+
+412  
+§ck
+;
+
+414 
+ušt8_t
+ *
+ÝtiÚs_±r
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+
+415 (
+IP_START
+ + 
+_hdr_size
+ + (
+tý_hdr
+)));
+
+417 
+Ëngth
+ > 0) {
+
+418 
+ušt8_t
+ 
+Ýcode
+ = *
+ÝtiÚs_±r
+;
+
+419 
+ušt8_t
+ 
+Ýsize
+ = 
+ÝtiÚs_±r
+[1];
+
+420 
+i
+;
+
+421 
+ušt32_t
+ *
+§ck_±r
+;
+
+423 
+Ýcode
+) {
+
+424 
+RTE_CT_TCPOPT_TIMESTAMP
+:
+
+428 
+RTE_CT_TCPOPT_EOL
+:
+
+429  
+§ck
+;
+
+431 
+RTE_CT_TCPOPT_NOP
+:
+
+432 
+Ëngth
+--;
+
+433 
+ÝtiÚs_±r
+++;
+
+436 
+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 
+i
+ = 0; i < (
+Ýsize
+ - 2); i +=
+
+453 
+RTE_CT_TCPOLEN_PER_SACK_ENTRY
+) {
+
+454 
+§ck_±r
+ =
+
+455 (
+ušt32_t
+ *è&
+ÝtiÚs_±r
+[
+i
+];
+
+456 
+ušt32_t
+ 
+ack
+ = 
+	`¹e_bsw­32
+(*
+§ck_±r
+);
+
+458 ià(
+	`¹e_aá”
+(
+ack
+, 
+§ck
+))
+
+459 
+§ck
+ = 
+ack
+;
+
+461  
+§ck
+;
+
+467 ià((
+Ýsize
+ < 2è|| (Ýsiz> 
+Ëngth
+)) {
+
+468 
+	`´štf
+("rte_ct_tcp_sack: something wrong, opsize %i,",
+
+469 
+Ýsize
+);
+
+470 
+	`´štf
+("†’gth %i\n", 
+Ëngth
+);
+
+471  
+§ck
+;
+
+473 
+ÝtiÚs_±r
+ +ð
+Ýsize
+;
+
+474 
+Ëngth
+ -ð
+Ýsize
+;
+
+476  
+§ck
+;
+
+477 
+	}
+}
+
+483 
+šlše
+ 
+
+484 
+	$¹e_ù_check_fÜ_»ŒªsmissiÚs
+(
+
+485 
+¹e_ù_tý
+ *
+¡©e
+,
+
+486 
+ušt8_t
+ 
+dœ
+,
+
+487 
+ušt32_t
+ 
+£q
+,
+
+488 
+ušt32_t
+ 
+ack
+,
+
+489 
+ušt32_t
+ 
+’d
+,
+
+490 
+ušt16_t
+ 
+wš
+)
+
+492 ià(
+¡©e
+->
+Ï¡_dœ
+ =ð
+dœ
+
+
+493 && 
+¡©e
+->
+Ï¡_£q
+ =ð
+£q
+
+
+494 && 
+¡©e
+->
+Ï¡_ack
+ =ð
+ack
+
+
+495 && 
+¡©e
+->
+Ï¡_’d
+ =ð
+’d
+ && s‹->
+Ï¡_wš
+ =ð
+wš
+)
+
+496 
+¡©e
+->
+»Œªs
+++;
+
+498 
+¡©e
+->
+Ï¡_dœ
+ = 
+dœ
+;
+
+499 
+¡©e
+->
+Ï¡_£q
+ = 
+£q
+;
+
+500 
+¡©e
+->
+Ï¡_ack
+ = 
+ack
+;
+
+501 
+¡©e
+->
+Ï¡_’d
+ = 
+’d
+;
+
+502 
+¡©e
+->
+Ï¡_wš
+ = 
+wš
+;
+
+503 
+¡©e
+->
+»Œªs
+ = 0;
+
+505 
+	}
+}
+
+511 
+ušt8_t
+
+
+512 
+	$¹e_ù_tý_š_wšdow
+(
+
+513 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+514 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+515 
+¹e_ù_tý
+ *
+¡©e
+,
+
+516 
+¹e_ù_pkt_dœeùiÚ
+ 
+dœ
+,
+
+517 
+ušt8_t
+ 
+šdex
+,
+
+518 
+¹e_mbuf
+ *
+pkt
+,
+
+519 
+ušt8_t
+ 
+_hdr_size
+)
+
+521 
+¹e_ù_tý_¡©e
+ *
+£nd”
+ = &
+¡©e
+->
+£’
+[
+dœ
+];
+
+522 
+¹e_ù_tý_¡©e
+ *
+»ûiv”
+ = &
+¡©e
+->
+£’
+[!
+dœ
+];
+
+523 
+ušt32_t
+ 
+£q
+, 
+ack
+, 
+§ck
+, 
+’d
+, 
+wš
+, 
+swš
+;
+
+524 
+ušt8_t
+ 
+š_»cv_wš
+, 
+tý_æags
+;
+
+525 
+¹e_ù_·ck‘_aùiÚ
+ 
+»s
+;
+
+527 *
+hdr
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, 
+IP_START
+);
+
+528 
+tý_hdr
+ *
+týh—d”
+ =
+
+529 (
+tý_hdr
+ *)
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+530 (
+IP_START
+ + 
+_hdr_size
+));
+
+532 ià(
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox›d
+)
+
+533 
+	`¹e_¥_adju¡_þ›Á_ack_befÜe_wšdow_check
+(
+cd
+, 
+hdr
+,
+
+534 
+týh—d”
+, 
+dœ
+);
+
+537 
+£q
+ = 
+	`¹e_bsw­32
+(
+týh—d”
+->
+£Á_£q
+);
+
+538 
+ack
+ = 
+§ck
+ = 
+	`¹e_bsw­32
+(
+týh—d”
+->
+»cv_ack
+);
+
+539 
+wš
+ = 
+	`¹e_bsw­16
+(
+týh—d”
+->
+rx_wš
+);
+
+540 
+’d
+ = 
+	`¹e_ù_£q_¶us_Ëngth
+(
+pkt
+, 
+_hdr_size
+);
+
+541 
+tý_æags
+ = 
+týh—d”
+->tcp_flags;
+
+543 ià(
+»ûiv”
+->
+æags
+ & 
+RTE_CT_TCP_FLAG_SACK_PERM
+)
+
+544 
+§ck
+ = 
+	`¹e_ù_tý_§ck
+(
+pkt
+, 
+_hdr_size
+);
+
+546 ià(
+	`uÆik–y
+(
+£nd”
+->
+maxwš
+ == 0)) {
+
+548 ià(
+tý_æags
+ & 
+RTE_CT_TCPHDR_SYN
+) {
+
+553 
+£nd”
+->
+’d
+ = s’d”->
+max’d
+ =ƒnd;
+
+554 
+£nd”
+->
+maxwš
+ = 
+	`RTE_MAX
+(
+wš
+, (
+ušt32_t
+)1);
+
+556 
+	`¹e_ù_check_fÜ_sÿlšg_ªd_§ck_³rm
+(
+pkt
+, 
+£nd”
+,
+
+557 
+_hdr_size
+);
+
+563 ià((
+£nd”
+->
+
+564 
+æags
+ & 
+»ûiv”
+->flags &
+
+565 
+RTE_CT_TCP_FLAG_WINDOW_SCALE
+) == 0)
+
+566 
+£nd”
+->
+sÿË
+ = 
+»ûiv”
+->scale = 0;
+
+568 ià(!(
+tý_æags
+ & 
+RTE_CT_TCPHDR_ACK
+))
+
+576 
+£nd”
+->
+’d
+ =ƒnd;
+
+577 
+swš
+ = 
+wš
+ << 
+£nd”
+->
+sÿË
+;
+
+578 
+£nd”
+->
+maxwš
+ = (
+swš
+ == 0 ? 1 : swin);
+
+579 
+£nd”
+->
+max’d
+ = 
+’d
+ + s’d”->
+maxwš
+;
+
+585 ià(
+»ûiv”
+->
+maxwš
+ == 0)
+
+586 
+»ûiv”
+->
+’d
+ =„eûiv”->
+max’d
+ = 
+§ck
+;
+
+590 ià(((
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+ =ð
+RTE_CT_TCP_SYN_SENT
+ &&
+
+591 
+dœ
+ =ð
+RTE_CT_DIR_ORIGINAL
+) ||
+
+592 (
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+ =ð
+RTE_CT_TCP_SYN_RECV
+ &&
+
+593 
+dœ
+ =ð
+RTE_CT_DIR_REPLY
+)è&& 
+	`¹e_aá”
+(
+’d
+, 
+£nd”
+->end)) {
+
+599 
+£nd”
+->
+’d
+ = s’d”->
+max’d
+ =ƒnd;
+
+600 
+£nd”
+->
+maxwš
+ = 
+	`RTE_MAX
+(
+wš
+, (
+ušt32_t
+)1);
+
+602 
+	`¹e_ù_check_fÜ_sÿlšg_ªd_§ck_³rm
+(
+pkt
+, 
+£nd”
+,
+
+603 
+_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”
+->
+’d
+;
+
+613 ià((
+tý_æags
+ & 
+RTE_CT_TCPHDR_RST
+è&& 
+£q
+ == 0 &&
+
+614 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+ =ð
+RTE_CT_TCP_SYN_SENT
+)
+
+616 
+£q
+ = 
+’d
+ = 
+£nd”
+->end;
+
+619 
+š_»cv_wš
+ = !
+»ûiv”
+->
+maxwš
+ ||
+
+620 
+	`¹e_aá”
+(
+’d
+, 
+£nd”
+->’d - 
+»ûiv”
+->
+maxwš
+ - 1);
+
+622 ià(
+	`¹e_befÜe
+(
+£q
+, 
+£nd”
+->
+max’d
+ + 1è&& 
+š_»cv_wš
+ &&
+
+623 
+	`¹e_befÜe
+(
+§ck
+, 
+»ûiv”
+->
+’d
+ + 1) &&
+
+624 
+	`¹e_aá”
+(
+§ck
+,
+
+625 
+»ûiv”
+->
+’d
+ - 
+	`RTE_MAX
+(
+£nd”
+->
+maxwš
+,
+
+626 (
+ušt32_t
+)
+RTE_MAX_ACKWIN_CONST
+) - 1)) {
+
+633 ià(!(
+tý_æags
+ & 
+RTE_CT_TCPHDR_SYN
+))
+
+634 
+wš
+ <<ð
+£nd”
+->
+sÿË
+;
+
+637 
+swš
+ = 
+wš
+ + (
+§ck
+ - 
+ack
+);
+
+638 
+£nd”
+->
+maxwš
+ = 
+	`RTE_MAX
+(£nd”->maxwš, 
+swš
+);
+
+640 ià(
+	`¹e_aá”
+(
+’d
+, 
+£nd”
+->end)) {
+
+641 
+£nd”
+->
+’d
+ =ƒnd;
+
+642 
+£nd”
+->
+æags
+ |ð
+RTE_CT_TCP_FLAG_DATA_UNACKNOWLEDGED
+;
+
+645 ià(
+tý_æags
+ & 
+RTE_CT_TCPHDR_ACK
+) {
+
+646 ià(!(
+£nd”
+->
+æags
+ & 
+RTE_CT_TCP_FLAG_MAXACK_SET
+)) {
+
+647 
+£nd”
+->
+maxack
+ = 
+ack
+;
+
+648 
+£nd”
+->
+æags
+ |ð
+RTE_CT_TCP_FLAG_MAXACK_SET
+;
+
+649 } ià(
+	`¹e_aá”
+(
+ack
+, 
+£nd”
+->
+maxack
+))
+
+650 
+£nd”
+->
+maxack
+ = 
+ack
+;
+
+654 ià(
+»ûiv”
+->
+maxwš
+ !ð0 && 
+	`¹e_aá”
+(
+’d
+, 
+£nd”
+->
+max’d
+))
+
+655 
+»ûiv”
+->
+maxwš
+ +ð
+’d
+ - 
+£nd”
+->
+max’d
+;
+
+657 ià(
+	`¹e_aá”
+(
+§ck
+ + 
+wš
+, 
+»ûiv”
+->
+max’d
+ - 1))
+
+658 
+»ûiv”
+->
+max’d
+ = 
+§ck
+ + 
+	`RTE_MAX
+(
+wš
+, (
+ušt32_t
+)1);
+
+660 ià(
+ack
+ =ð
+»ûiv”
+->
+’d
+)
+
+661 
+»ûiv”
+->
+æags
+ &ð~
+RTE_CT_TCP_FLAG_DATA_UNACKNOWLEDGED
+;
+
+664 ià(
+šdex
+ =ð
+RTE_CT_TCP_ACK_FLAG
+)
+
+665 
+	`¹e_ù_check_fÜ_»ŒªsmissiÚs
+(
+¡©e
+, 
+dœ
+, 
+£q
+, 
+ack
+,
+
+666 
+’d
+, 
+wš
+);
+
+667 
+»s
+ = 1;
+
+669 
+»s
+ = (
+£nd”
+->
+æags
+ & 
+RTE_CT_TCP_FLAG_BE_LIBERAL
+ ||
+
+670 
+ù
+->
+misc_ÝtiÚs
+.
+tý_be_lib”®
+);
+
+673 ià(
+CT_DEBUG
+) {
+
+674 ià(!
+»s
+) {
+
+676 
+	`´štf
+("tý_š_wšdow FAILED fÜ %p\n", 
+cd
+);
+
+677 
+	`´štf
+("rte_before(%u, %u + 1) is %d\n",
+
+678 
+£q
+, 
+£nd”
+->
+max’d
+ + 1,
+
+679 
+	`¹e_befÜe
+(
+£q
+, 
+£nd”
+->
+max’d
+ + 1));
+
+680 
+	`´štf
+("!%u ||„te_after(%u, %u - %u - 1) is %d\n",
+
+681 
+»ûiv”
+->
+maxwš
+, 
+’d
+, 
+£nd”
+->end,
+
+682 
+»ûiv”
+->
+maxwš
+, 
+š_»cv_wš
+);
+
+683 
+	`´štf
+("¹e_befÜe(%u, %u + 1èi %d\n", 
+§ck
+,
+
+684 
+»ûiv”
+->
+’d
+, 
+	`¹e_befÜe
+(
+§ck
+,
+
+685 
+»ûiv”
+->
+’d
+ + 1));
+
+686 
+´štf
+
+
+688 
+§ck
+, 
+»ûiv”
+->
+’d
+, 
+£nd”
+->
+maxwš
+,
+
+689 
+RTE_MAX_ACKWIN_CONST
+, 
+	`¹e_aá”
+(
+§ck
+,
+
+690 
+»ûiv”
+->
+’d
+ - 
+	`RTE_MAX
+(
+£nd”
+->
+maxwš
+,
+
+691 (
+ušt32_t
+)
+RTE_MAX_ACKWIN_CONST
+)
+
+696 ià(
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox›d
+)
+
+697 
+	`¹e_¥_adju¡_£rv”_£q_aá”_wšdow_check
+(
+cd
+, 
+hdr
+,
+
+698 
+týh—d”
+, 
+dœ
+);
+
+699  
+»s
+;
+
+700 
+	}
+}
+
+703 
+šlše
+ 
+ušt8_t
+
+
+704 
+	$¹e_ù_choo£_mš_timeout_¡©e
+(
+
+705 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+706 
+ušt8_t
+ 
+¡©e1
+,
+
+707 
+ušt8_t
+ 
+¡©e2
+)
+
+709 ià(
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+¡©e1
+] <
+
+710 
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+¡©e2
+])
+
+711  
+¡©e1
+;
+
+713  
+¡©e2
+;
+
+714 
+	}
+}
+
+718 
+¹e_ù_·ck‘_aùiÚ
+
+
+719 
+	$¹e_ù_v”ify_tý_·ck‘
+(
+
+720 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+721 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+722 
+¹e_mbuf
+ *
+pkt
+,
+
+723 
+ušt8_t
+ 
+key_was_杳d
+,
+
+724 
+ušt8_t
+ 
+_hdr_size
+)
+
+726 
+tý_hdr
+ *
+týh—d”
+ = (tcp_hdr *)
+
+727 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, (
+IP_START
+ + 
+_hdr_size
+));
+
+729 
+¹e_ù_tý_¡©es
+ 
+Ãw_¡©e
+, 
+Þd_¡©e
+;
+
+730 
+¹e_ù_pkt_dœeùiÚ
+ 
+dœ
+;
+
+731 
+ušt8_t
+ 
+šdex
+;
+
+735 
+ušt8_t
+ 
+timeout_¡©e
+;
+
+737 
+dœ
+ = (
+cd
+->
+key_is_þ›Á_Üd”
+ =ð!
+key_was_杳d
+);
+
+739 ià(
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox›d
+ &&
+
+740 
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+h®f_e¡ablished
+ &&
+
+741 !
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_e¡ablished
+ &&
+
+742 
+dœ
+ =ð
+RTE_CT_DIR_ORIGINAL
+) {
+
+748 
+	`¹e_ù_bufãr_·ck‘
+(
+ù
+, 
+cd
+, 
+pkt
+);
+
+749  
+RTE_CT_HIJACK
+;
+
+752 
+ušt32_t
+ 
+»cv_ack
+ = 
+	`¹e_bsw­32
+(
+týh—d”
+->recv_ack);
+
+753 
+ušt32_t
+ 
+£Á_£q
+ = 
+	`¹e_bsw­32
+(
+týh—d”
+->sent_seq);
+
+755 
+check_wšdow
+ = 1;
+
+756 
+¹e_ù_·ck‘_aùiÚ
+ 
+»tuº_aùiÚ
+ = 
+RTE_CT_FORWARD_PACKET
+;
+
+760 
+Þd_¡©e
+ = 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+;
+
+761 
+šdex
+ = 
+	`¹e_ù_g‘_šdex
+(
+týh—d”
+->
+tý_æags
+);
+
+762 
+Ãw_¡©e
+ = 
+¹e_ù_tý_¡©e_bË
+[
+dœ
+][
+šdex
+][
+Þd_¡©e
+];
+
+764 ià(
+Ãw_¡©e
+ =ð
+RTE_CT_TCP_MAX
+) {
+
+765 ià(
+CT_DEBUG
+) {
+
+766 
+	`´štf
+("!!!!invalid stateransition from %s ",
+
+767 
+¹e_ù_tý_Çmes
+[
+Þd_¡©e
+]);
+
+768 
+	`´štf
+("with flags 0x%02x\n",
+
+769 
+týh—d”
+->
+tý_æags
+);
+
+772 
+ù
+->
+couÁ”s
+->
+pkts_drÝ_šv®id_¡©e
+++;
+
+773  
+RTE_CT_DROP_PACKET
+;
+
+776 ià(
+STATE_TRACKING
+ && 
+Ãw_¡©e
+ !ð
+Þd_¡©e
+)
+
+777 
+	`´štf
+("‚ew s‹ %s\n", 
+¹e_ù_tý_Çmes
+[
+Ãw_¡©e
+]);
+
+779 
+Ãw_¡©e
+) {
+
+781 
+RTE_CT_TCP_ESTABLISHED
+:
+
+783 ià(
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox›d
+ &&
+
+784 !
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+h®f_e¡ablished
+ &&
+
+785 (
+Þd_¡©e
+ =ð
+RTE_CT_TCP_SYN_RECV
+)) {
+
+793 ià(
+STATE_TRACKING
+) {
+
+794 
+	`´štf
+(" synproxy first half-cnxn complete,");
+
+795 
+	`´štf
+("‚ew state %s\n",
+
+796 
+¹e_ù_tý_Çmes
+[
+RTE_CT_TCP_SYN_SENT
+]);
+
+798 
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+h®f_e¡ablished
+ = 
+Œue
+;
+
+800 
+	`¹e_¥_cvt_to_¥ooãd_£rv”_syn
+(
+cd
+, 
+pkt
+);
+
+801 
+	`¹e_ù_þ—r_úxn_d©a
+(
+ù
+, 
+cd
+, 
+pkt
+);
+
+802 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+ = 
+RTE_CT_TCP_SYN_SENT
+;
+
+804 
+¹e_ù_tý_¡©e
+ *
+£nd”
+ =
+
+805 &
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+
+806 
+£’
+[
+RTE_CT_DIR_ORIGINAL
+];
+
+807 
+ušt16_t
+ 
+wš
+ = 
+	`¹e_bsw­16
+(
+týh—d”
+->
+rx_wš
+);
+
+809 
+£nd”
+->
+’d
+ = s’d”->
+max’d
+ =
+
+810 
+	`¹e_ù_£q_¶us_Ëngth
+(
+pkt
+, 
+_hdr_size
+);
+
+811 
+£nd”
+->
+maxwš
+ = 
+	`RTE_MAX
+(
+wš
+, (
+ušt32_t
+)1);
+
+812 
+	`¹e_ù_check_fÜ_sÿlšg_ªd_§ck_³rm
+(
+pkt
+, 
+£nd”
+,
+
+813 
+_hdr_size
+);
+
+815 
+	`¹e_ù_£t_úxn_tim”_fÜ_tý
+(
+ù
+, 
+cd
+,
+
+816 
+RTE_CT_TCP_SYN_SENT
+);
+
+817  
+RTE_CT_SEND_SERVER_SYN
+;
+
+821 
+RTE_CT_TCP_SYN_RECV
+:
+
+823 ià(
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox›d
+ &&
+
+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ý_š_wšdow
+(
+cd
+, 
+ù
+,
+
+834 &
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+,
+
+835 
+dœ
+, 
+šdex
+, 
+pkt
+, 
+_hdr_size
+)) {
+
+836 
+ù
+->
+couÁ”s
+->
+pkts_drÝ_outof_wšdow
+++;
+
+837  
+RTE_CT_DROP_PACKET
+;
+
+840 ià(
+STATE_TRACKING
+) {
+
+841 
+	`´štf
+("synproxy full cnxn complete,");
+
+842 
+	`´štf
+("‚ew s‹ %s\n", 
+¹e_ù_tý_Çmes
+
+
+843 [
+RTE_CT_TCP_ESTABLISHED
+]);
+
+852 
+	`¹e_¥_cvt_to_¥ooãd_£rv”_ack
+(
+cd
+, 
+pkt
+);
+
+854 
+šdex
+ = 
+	`¹e_ù_g‘_šdex
+(
+týh—d”
+->
+tý_æags
+);
+
+856 ià(!
+	`¹e_ù_tý_š_wšdow
+(
+cd
+, 
+ù
+,
+
+857 &
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+,
+
+858 !
+dœ
+, 
+šdex
+, 
+pkt
+, 
+_hdr_size
+)) {
+
+859 
+ù
+->
+couÁ”s
+->
+pkts_drÝ_outof_wšdow
+++;
+
+860  
+RTE_CT_DROP_PACKET
+;
+
+865 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+ =
+
+866 
+RTE_CT_TCP_ESTABLISHED
+;
+
+867 
+ù
+->
+couÁ”s
+->
+£ssiÚs_e¡ablished
+++;
+
+868 
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_e¡ablished
+ = 
+Œue
+;
+
+869 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_šdex
+ = 
+šdex
+;
+
+870 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_dœ
+ = !
+dœ
+;
+
+872 
+	`¹e_ù_£t_úxn_tim”_fÜ_tý
+(
+ù
+, 
+cd
+,
+
+873 
+RTE_CT_TCP_ESTABLISHED
+);
+
+874 
+	`¹e_ù_»Ëa£_bufã»d_·ck‘s
+(
+ù
+, 
+cd
+);
+
+876  
+RTE_CT_SEND_SERVER_ACK
+;
+
+879 
+RTE_CT_TCP_SYN_SENT
+:
+
+886 ià(
+Þd_¡©e
+ < 
+RTE_CT_TCP_TIME_WAIT
+)
+
+894  
+RTE_CT_REOPEN_CNXN_AND_FORWARD_PACKET
+;
+
+896 
+RTE_CT_TCP_IGNORE
+:
+
+912 ià(
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox›d
+ &&
+
+913 !
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_e¡ablished
+)
+
+914  
+RTE_CT_DROP_PACKET
+;
+
+916 ià(
+šdex
+ =ð
+RTE_CT_TCP_SAK_FLAG
+ &&
+
+917 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_šdex
+ ==
+
+918 
+RTE_CT_TCP_SYN_FLAG
+
+
+919 && 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_dœ
+ !ð
+dœ
+
+
+920 && 
+»cv_ack
+ =ð
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_’d
+) {
+
+928 
+¹e_ù_tý_¡©e
+ *
+Ï¡_£’
+ =
+
+929 &
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+£’
+[cd->ct_protocol.
+
+930 
+tý_ù_d©a
+.
+
+931 
+Ï¡_dœ
+];
+
+935 
+Þd_¡©e
+ = 
+RTE_CT_TCP_SYN_SENT
+;
+
+936 
+Ãw_¡©e
+ = 
+RTE_CT_TCP_SYN_RECV
+;
+
+938 
+Ï¡_£’
+->
+’d
+ = 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_’d
+;
+
+939 
+Ï¡_£’
+->
+max’d
+ =
+
+940 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_’d
+;
+
+941 
+Ï¡_£’
+->
+maxwš
+ =
+
+942 
+	`RTE_MAX
+(
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_wš
+,
+
+943 (
+ušt32_t
+)1);
+
+944 
+Ï¡_£’
+->
+sÿË
+ =
+
+945 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_wsÿË
+;
+
+946 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_æags
+ &=
+
+947 ~
+RTE_CT_EXP_CHALLENGE_ACK
+;
+
+948 
+Ï¡_£’
+->
+æags
+ =
+
+949 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_æags
+;
+
+950 
+	`mem£t
+(&
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+£’
+[
+dœ
+], 0,
+
+951 (
+¹e_ù_tý_¡©e
+));
+
+955 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_šdex
+ = 
+šdex
+;
+
+956 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_dœ
+ = 
+dœ
+;
+
+957 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_£q
+ = 
+£Á_£q
+;
+
+958 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_’d
+ =
+
+959 
+	`¹e_ù_£q_¶us_Ëngth
+(
+pkt
+, 
+_hdr_size
+);
+
+960 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_wš
+ =
+
+961 
+	`¹e_bsw­16
+(
+týh—d”
+->
+rx_wš
+);
+
+971 ià(
+šdex
+ =ð
+RTE_CT_TCP_SYN_FLAG
+ &&
+
+972 
+dœ
+ =ð
+RTE_CT_DIR_ORIGINAL
+) {
+
+973 
+¹e_ù_tý_¡©e
+ 
+£’
+;
+
+976 
+	`¹e_ù_check_fÜ_sÿlšg_ªd_§ck_³rm
+(
+pkt
+, &
+£’
+,
+
+977 
+_hdr_size
+);
+
+980 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_æags
+ = 
+£’
+.
+æags
+;
+
+981 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_wsÿË
+ =
+
+982 (
+£’
+.
+æags
+ & 
+RTE_CT_TCP_FLAG_WINDOW_SCALE
+) == 0 ?
+
+983 0 : 
+£’
+.
+sÿË
+;
+
+990 ià(
+Þd_¡©e
+ =ð
+RTE_CT_TCP_LAST_ACK
+)
+
+991 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_æags
+ |=
+
+992 
+RTE_CT_EXP_CHALLENGE_ACK
+;
+
+994  
+RTE_CT_FORWARD_PACKET
+;
+
+996 
+RTE_CT_TCP_TIME_WAIT
+:
+
+1002 ià(
+Þd_¡©e
+ =ð
+RTE_CT_TCP_LAST_ACK
+ &&
+
+1003 
+šdex
+ =ð
+RTE_CT_TCP_ACK_FLAG
+ &&
+
+1004 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_dœ
+ !ð
+dœ
+ &&
+
+1005 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_šdex
+ ==
+
+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  
+RTE_CT_FORWARD_PACKET
+;
+
+1016 
+RTE_CT_TCP_CLOSE
+:
+
+1018 ià(
+šdex
+ =ð
+RTE_CT_TCP_RST_FLAG
+) {
+
+1025 ià((
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+£’
+[!
+dœ
+].
+æags
+ &
+
+1026 
+RTE_CT_TCP_FLAG_MAXACK_SET
+) &&
+
+1027 
+	`¹e_befÜe
+(
+£Á_£q
+, 
+cd
+->
+ù_´ÙocÞ
+.
+
+1028 
+tý_ù_d©a
+.
+£’
+[!
+dœ
+].
+maxack
+)) {
+
+1030 
+ù
+->
+couÁ”s
+->
+pkts_drÝ_šv®id_r¡
+++;
+
+1032  
+RTE_CT_DROP_PACKET
+;
+
+1035 ià(((
+cd
+->
+cÚn¡©us
+ =ð
+RTE_SEEN_REPLY_CONN
+ &&
+
+1036 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_šdex
+ ==
+
+1037 
+RTE_CT_TCP_SYN_FLAG
+) ||
+
+1038 (
+cd
+->
+cÚn¡©us
+ !ð
+RTE_ASSURED_CONN
+ &&
+
+1039 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_šdex
+ ==
+
+1040 
+RTE_CT_TCP_ACK_FLAG
+)) &&
+
+1041 
+»cv_ack
+ ==
+
+1042 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_’d
+) {
+
+1045 
+check_wšdow
+ = 0;
+
+1054 ià(
+	`lik–y
+(
+check_wšdow
+)) {
+
+1055 ià(
+	`uÆik–y
+(!
+	`¹e_ù_tý_š_wšdow
+(
+cd
+, 
+ù
+,
+
+1056 &
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+,
+
+1057 
+dœ
+, 
+šdex
+,
+
+1058 
+pkt
+, 
+_hdr_size
+))) {
+
+1059 
+ù
+->
+couÁ”s
+->
+pkts_drÝ_outof_wšdow
+++;
+
+1060  
+RTE_CT_DROP_PACKET
+;
+
+1064 ià(
+Ãw_¡©e
+ =ð
+RTE_CT_TCP_ESTABLISHED
+ &&
+
+1065 
+Þd_¡©e
+ !ð
+RTE_CT_TCP_ESTABLISHED
+)
+
+1068 
+ù
+->
+couÁ”s
+->
+£ssiÚs_e¡ablished
+++;
+
+1070 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_šdex
+ = 
+šdex
+;
+
+1071 
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_dœ
+ = 
+dœ
+;
+
+1073 ià(
+šdex
+ =ð
+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
+.
+»Œªs
+ >=
+
+1079 
+ù
+->
+misc_ÝtiÚs
+.
+tý_max_»Œªs
+)
+
+1080 
+timeout_¡©e
+ =
+
+1081 
+	`¹e_ù_choo£_mš_timeout_¡©e
+(
+ù
+, 
+timeout_¡©e
+,
+
+1082 
+RTE_CT_TCP_RETRANS
+);
+
+1083 ià(
+	`¹e_ù_e™h”_dœeùiÚ_has_æags
+(
+cd
+,
+
+1084 
+RTE_CT_TCP_FLAG_DATA_UNACKNOWLEDGED
+))
+
+1085 
+timeout_¡©e
+ =
+
+1086 
+	`¹e_ù_choo£_mš_timeout_¡©e
+(
+ù
+, 
+timeout_¡©e
+,
+
+1087 
+RTE_CT_TCP_UNACK
+);
+
+1089 ià(
+cd
+->
+cÚn¡©us
+ !ð
+RTE_SEEN_REPLY_CONN
+) {
+
+1090 ià(
+týh—d”
+->
+tý_æags
+ & 
+RTE_CT_TCPHDR_RST
+) {
+
+1097  
+RTE_CT_DESTROY_CNXN_AND_FORWARD_PACKET
+;
+
+1101 ià(
+Ãw_¡©e
+ =ð
+RTE_CT_TCP_ESTABLISHED
+)
+
+1102 
+timeout_¡©e
+ = 
+	`¹e_ù_choo£_mš_timeout_¡©e
+(
+ù
+,
+
+1103 
+timeout_¡©e
+,
+
+1104 
+RTE_CT_TCP_UNACK
+);
+
+1106 } ià(
+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”_fÜ_tý
+(
+ù
+, 
+cd
+, 
+timeout_¡©e
+);
+
+1115  
+»tuº_aùiÚ
+;
+
+1116 
+	}
+}
+
+	@VIL/conntrack/rte_ct_tcp.h
+
+17 #iâdeà
+__INCLUDE_RTE_CT_TCP_H__
+
+
+18 
+	#__INCLUDE_RTE_CT_TCP_H__
+
+
+	)
+
+19 
+	~<¡dlib.h
+>
+
+20 
+	~<¡ršg.h
+>
+
+21 
+	~<š‰y³s.h
+>
+
+23 
+	~<¹e_tý.h
+>
+
+24 
+	~<¹e_pÜt.h
+>
+
+25 
+	~<¹e_tim”.h
+>
+
+26 
+	~<¹e_.h
+>
+
+27 
+	~<¹e_tý.h
+>
+
+28 
+	~<¹e_udp.h
+>
+
+29 
+	~<¹e_pÜt.h
+>
+
+30 
+	~<¹e_by‹Üd”.h
+>
+
+31 
+	~"¹e_úxn_Œackšg.h
+"
+
+37 
+	#RTE_CT_TCPOPT_EOL
+ 0
+
+	)
+
+38 
+	#RTE_CT_TCPOPT_NOP
+ 1
+
+	)
+
+39 
+	#RTE_CT_TCPOPT_MSS
+ 2
+
+	)
+
+40 
+	#RTE_CT_TCPOPT_WINDOW
+ 3
+
+	)
+
+41 
+	#RTE_CT_TCPOPT_SACK_PERM
+ 4
+
+	)
+
+42 
+	#RTE_CT_TCPOPT_SACK
+ 5
+
+	)
+
+43 
+	#RTE_CT_TCPOPT_TIMESTAMP
+ 8
+
+	)
+
+45 
+	#RTE_CT_TCPOLEN_MSS
+ 4
+
+	)
+
+46 
+	#RTE_CT_TCPOLEN_WINDOW
+ 3
+
+	)
+
+47 
+	#RTE_CT_TCPOLEN_SACK_PERM
+ 2
+
+	)
+
+48 
+	#RTE_CT_TCPOLEN_TIMESTAMP
+ 10
+
+	)
+
+49 
+	#RTE_CT_TCPOLEN_PER_SACK_ENTRY
+ 8
+
+	)
+
+51 
+	#RTE_CT_TCPOLEN_MSS_ALIGNED
+ 4
+
+	)
+
+52 
+	#RTE_CT_TCPOLEN_WINDOW_ALIGNED
+ 4
+
+	)
+
+53 
+	#RTE_CT_TCPOLEN_SACK_PERM_ALIGNED
+ 4
+
+	)
+
+54 
+	#RTE_CT_TCPOLEN_TIMESTAMP_ALIGNED
+ 12
+
+	)
+
+56 
+	#RTE_CT_MAX_TCP_WINDOW_SCALE
+ 14
+
+	)
+
+58 
+	#RTE_SP_OPTIONS_MSS
+ 1
+
+	)
+
+59 
+	#RTE_SP_OPTIONS_WINDOW_SCALE
+ 2
+
+	)
+
+60 
+	#RTE_SP_OPTIONS_TIMESTAMP
+ 4
+
+	)
+
+61 
+	#RTE_SP_OPTIONS_SACK_PERM
+ 8
+
+	)
+
+64 
+	e¹e_ù_·ck‘_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 
+	e¹e_ù_cÚn¡©us
+ {
+
+77 
+	mRTE_INIT_CONN
+,
+
+78 
+	mRTE_SEEN_REPLY_CONN
+,
+
+79 
+	mRTE_ASSURED_CONN
+
+
+84 cÚ¡ *cÚ¡ 
+	g¹e_ù_tý_Çmes
+[] = {
+
+100 cÚ¡ *cÚ¡ 
+	g¹e_ù_udp_Çmes
+[] = {
+
+107 
+	#RTE_MAX_ACKWIN_CONST
+ 66000
+
+	)
+
+110 
+	#RTE_CT_TCP_FLAG_WINDOW_SCALE
+ 0x01
+
+	)
+
+113 
+	#RTE_CT_TCP_FLAG_SACK_PERM
+ 0x02
+
+	)
+
+116 
+	#RTE_CT_TCP_FLAG_CLOSE_INIT
+ 0x04
+
+	)
+
+119 
+	#RTE_CT_TCP_FLAG_BE_LIBERAL
+ 0x08
+
+	)
+
+122 
+	#RTE_CT_TCP_FLAG_DATA_UNACKNOWLEDGED
+ 0x10
+
+	)
+
+125 
+	#RTE_CT_TCP_FLAG_MAXACK_SET
+ 0x20
+
+	)
+
+127 
+	#RTE_CT_EXP_CHALLENGE_ACK
+ 0x40
+
+	)
+
+132 
+	#RTE_CT_TCPHDR_FIN
+ 0x01
+
+	)
+
+133 
+	#RTE_CT_TCPHDR_SYN
+ 0x02
+
+	)
+
+134 
+	#RTE_CT_TCPHDR_RST
+ 0x04
+
+	)
+
+135 
+	#RTE_CT_TCPHDR_ACK
+ 0x10
+
+	)
+
+137 
+	#RTE_CT_TCPHDR_RST_ACK
+ (
+RTE_CT_TCPHDR_RST
+ | 
+RTE_CT_TCPHDR_ACK
+)
+
+	)
+
+142 
+	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 
+	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 
+	#RTE_CT_TCP_MAX
+ 
+RTE_CT_TCP_UNACK
+
+
+	)
+
+169 
+	e¹e_ù_pkt_dœeùiÚ
+ {
+
+170 
+	mRTE_CT_DIR_ORIGINAL
+,
+
+171 
+	mRTE_CT_DIR_REPLY
+
+
+174 
+	s¹e_ù_tý_¡©e
+ {
+
+175 
+ušt32_t
+ 
+	m’d
+;
+
+176 
+ušt32_t
+ 
+	mmax’d
+;
+
+177 
+ušt32_t
+ 
+	mmaxwš
+;
+
+178 
+ušt32_t
+ 
+	mmaxack
+;
+
+179 
+ušt8_t
+ 
+	msÿË
+;
+
+180 
+ušt8_t
+ 
+	mæags
+;
+
+183 
+	s¹e_syÅroxy_ÝtiÚs
+ {
+
+184 
+ušt8_t
+ 
+	mÝtiÚs
+;
+
+185 
+ušt8_t
+ 
+	mwšdow_sÿË
+;
+
+186 
+ušt16_t
+ 
+	mmss
+;
+
+187 
+ušt32_t
+ 
+	mts_v®
+;
+
+188 
+ušt32_t
+ 
+	mts_echo_Ȧy
+;
+
+189 
+ušt16_t
+ 
+	mš™Ÿl_wšdow
+;
+
+192 
+	sù_¥_úxn_d©a
+ {
+
+196 
+¹e_mbuf
+ *
+	mbufã»d_pkt_li¡
+;
+
+197 
+ušt32_t
+ 
+	mÜigš®_¥ooãd_£q
+;
+
+199 
+ušt32_t
+ 
+	m£q_diff
+;
+
+200 
+¹e_syÅroxy_ÝtiÚs
+ 
+	múxn_ÝtiÚs
+;
+
+202 
+ušt8_t
+ 
+	msyÅrox›d
+;
+
+203 
+boÞ
+ 
+	mh®f_e¡ablished
+;
+
+205 
+boÞ
+ 
+	múxn_e¡ablished
+;
+
+208 
+	s¹e_ù_tý
+ {
+
+209 
+¹e_ù_tý_¡©e
+ 
+	m£’
+[2];
+
+210 
+ušt8_t
+ 
+	m¡©e
+;
+
+211 
+ušt8_t
+ 
+	mÏ¡_dœ
+;
+
+214 
+ušt8_t
+ 
+	m»Œªs
+;
+
+215 
+ušt8_t
+ 
+	mÏ¡_šdex
+;
+
+216 
+ušt32_t
+ 
+	mÏ¡_£q
+;
+
+217 
+ušt32_t
+ 
+	mϡ_ack
+;
+
+218 
+ušt32_t
+ 
+	mÏ¡_’d
+;
+
+219 
+ušt16_t
+ 
+	mÏ¡_wš
+;
+
+221 
+ušt8_t
+ 
+	mÏ¡_wsÿË
+;
+
+222 
+ušt8_t
+ 
+	mÏ¡_æags
+;
+
+230 
+	s¹e_ù_úxn_couÁ”s
+ {
+
+231 
+ušt64_t
+ 
+	m·ck‘s_»ûived
+;
+
+232 
+ušt64_t
+ 
+	m·ck‘s_fÜw¬ded
+;
+
+233 
+ušt64_t
+ 
+	m·ck‘s_drݳd
+;
+
+236 
+	s¹e_ù_´Ùo
+ {
+
+237 
+¹e_ù_tý
+ 
+	mtý_ù_d©a
+;
+
+238 
+ù_¥_úxn_d©a
+ 
+	msyÅroxy_d©a
+;
+
+248 
+	s¹e_ù_úxn_d©a
+ {
+
+252 
+¹e_tim”
+ 
+	mtim”
+;
+
+254 
+¹e_ù_úxn_couÁ”s
+ 
+	mcouÁ”s
+;
+
+258 
+ušt32_t
+ 
+	mkey
+[10];
+
+260 
+¹e_ù_´Ùo
+ 
+	mù_´ÙocÞ
+;
+
+263 
+ušt64_t
+ 
+	mex³ùed_timeout
+;
+
+266 
+ušt8_t
+ 
+	m¡©e_u£d_fÜ_tim”
+;
+
+269 
+ušt8_t
+ 
+	mkey_is_þ›Á_Üd”
+;
+
+270 
+ušt8_t
+ 
+	mcÚn¡©us
+;
+
+271 
+ušt8_t
+ 
+	m´ÙocÞ
+;
+
+273 
+ušt8_t
+ 
+	mty³
+;
+
+276 
+ušt8_t
+ 
+	m®g_by·ss_æag
+;
+
+278 
+ušt8_t
+ 
+	m£rv”_dœeùiÚ
+;
+
+279 
+št16_t
+ 
+	mtýSeqdiff
+;
+
+281 
+ušt8_t
+ 
+	máp_£ssiÚ_ty³
+;
+
+282 
+ušt32_t
+ 
+	mtý_·ylßd_size
+;
+
+283 
+št16_t
+ 
+	m£q_þ›Á
+;
+
+284 
+št16_t
+ 
+	mack_þ›Á
+;
+
+285 
+št16_t
+ 
+	m£q_£rv”
+;
+
+286 
+št16_t
+ 
+	mack_£rv”
+;
+
+288 } 
+	g__¹e_ÿche_®igÃd
+;
+
+291 
+	#RTE_CT_TCP_MAX_RETRANS
+ 3
+
+	)
+
+293 
+	s¹e_ù_týtimeout
+ {
+
+295 
+ušt64_t
+ 
+	mtý_timeouts
+[
+RTE_CT_TCP_MAX
+ + 1];
+
+299 
+	s¹e_ù_misc_ÝtiÚs
+ {
+
+300 
+ušt8_t
+ 
+	msyÅroxy_’abËd
+;
+
+301 
+ušt32_t
+ 
+	mtý_loo£
+;
+
+302 
+ušt32_t
+ 
+	mtý_be_lib”®
+;
+
+303 
+ušt32_t
+ 
+	mtý_max_»Œªs
+;
+
+306 
+	s¹e_ù_ud±imeout
+ {
+
+307 
+ušt64_t
+ 
+	mudp_timeouts
+[
+RTE_CT_UDP_MAX
+ + 1];
+
+310 
+	s¹e_ù_timeout
+ {
+
+311 
+¹e_ù_týtimeout
+ 
+	mtýtimeout
+;
+
+312 
+¹e_ù_ud±imeout
+ 
+	mud±imeout
+;
+
+315 
+	s¹e_ù_úxn_Œack”
+ {
+
+316 
+¹e_hash
+ *
+	mrhash
+;
+
+322 
+ušt32_t
+ 
+	mhash_keys
+[
+RTE_HASH_LOOKUP_BULK_MAX
+][10];
+
+325 *
+	mhash_key_±rs
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+326 #ifdeà
+CT_CGNAT
+
+
+327 
+ušt32_t
+ 
+	mpos™iÚs
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+330 
+ušt32_t
+ 
+	mnum_úxn_’Œ›s
+;
+
+336 
+¹e_ù_úxn_d©a
+ *
+	mhash_bË_’Œ›s
+;
+
+337 
+¹e_CT_couÁ”_block
+ *
+	mcouÁ”s
+;
+
+339 
+ušt64_t
+ 
+	mh”tz
+;
+
+340 
+ušt64_t
+ 
+	mtimšg_cyþes_³r_timšg_¡•
+;
+
+341 
+ušt64_t
+ 
+	mtimšg_100ms_¡•s
+;
+
+342 
+ušt64_t
+ 
+	mtimšg_100ms_¡•s_´evious
+;
+
+343 
+ušt64_t
+ 
+	mtimšg_Ï¡_time
+;
+
+344 
+¹e_ù_timeout
+ 
+	mù_timeout
+;
+
+345 
+¹e_ù_misc_ÝtiÚs
+ 
+	mmisc_ÝtiÚs
+;
+
+347 
+	mÇme
+[16];
+
+348 
+¹e_ù_úxn_d©a
+ *
+	mÃw_cÚÃùiÚs
+[64];
+
+349 
+¹e_mbuf
+ *
+	mbufã»d_pkt_li¡
+;
+
+350 
+	mϋ¡_cÚÃùiÚ
+;
+
+352 
+ušt16_t
+ 
+	mpoš‹r_off£t
+;
+
+353 } 
+	g__¹e_ÿche_®igÃd
+;
+
+360 
+¹e_ù_·ck‘_aùiÚ
+
+
+361 
+¹e_ù_tý_Ãw_cÚÃùiÚ
+(
+
+362 
+¹e_ù_úxn_Œack”
+ *
+š¡
+,
+
+363 
+¹e_ù_úxn_d©a
+ *
+úxn
+,
+
+364 
+¹e_mbuf
+ *
+pkt
+,
+
+365 
+u£_syÅroxy
+,
+
+366 
+ušt8_t
+ 
+_hdr_size
+);
+
+373 
+¹e_ù_·ck‘_aùiÚ
+
+
+374 
+¹e_ù_v”ify_tý_·ck‘
+(
+
+375 
+¹e_ù_úxn_Œack”
+ *
+š¡
+,
+
+376 
+¹e_ù_úxn_d©a
+ *
+úxn
+,
+
+377 
+¹e_mbuf
+ *
+pkt
+,
+
+378 
+ušt8_t
+ 
+key_was_杳d
+,
+
+379 
+ušt8_t
+ 
+_hdr_size
+);
+
+386 
+ušt8_t
+
+
+387 
+¹e_ù_udp_Ãw_cÚÃùiÚ
+(
+
+388 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+389 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+390 
+¹e_mbuf
+ *
+pkt
+);
+
+397 
+¹e_ù_·ck‘_aùiÚ
+
+
+398 
+¹e_ù_udp_·ck‘
+(
+
+399 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+400 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+401 
+¹e_mbuf
+ *
+pkt
+,
+
+402 
+ušt8_t
+ 
+key_was_杳d
+);
+
+411 
+¹e_ù_£t_úxn_tim”_fÜ_tý
+(
+
+412 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+413 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+414 
+ušt8_t
+ 
+tý_¡©e
+);
+
+417 
+¹e_ù_£t_úxn_tim”_fÜ_udp
+(
+
+418 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+419 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+420 
+ušt8_t
+ 
+tý_¡©e
+);
+
+423 
+¹e_ù_ÿnûl_úxn_tim”
+(
+¹e_ù_úxn_d©a
+ *
+cd
+);
+
+435 
+¹e_¥_cvt_to_¥ooãd_þ›Á_syÇck
+(
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+436 
+¹e_mbuf
+ *
+Þd_pkt
+);
+
+439 
+¹e_¥_cvt_to_¥ooãd_£rv”_syn
+(
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+440 
+¹e_mbuf
+ *
+Þd_pkt
+);
+
+443 
+¹e_¥_cvt_to_¥ooãd_£rv”_ack
+(
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+444 
+¹e_mbuf
+ *
+Þd_pkt
+);
+
+451 
+¹e_¥_adju¡_þ›Á_ack_befÜe_wšdow_check
+(
+
+452 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+453 *
+i_hdr
+,
+
+454 
+tý_hdr
+ *
+thdr
+,
+
+455 
+¹e_ù_pkt_dœeùiÚ
+ 
+dœ
+);
+
+458 
+¹e_¥_adju¡_£rv”_£q_aá”_wšdow_check
+(
+
+459 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+460 *
+i_hdr
+,
+
+461 
+tý_hdr
+ *
+thdr
+,
+
+462 
+¹e_ù_pkt_dœeùiÚ
+ 
+dœ
+);
+
+468 
+¹e_¥_·r£_ÝtiÚs
+(
+¹e_mbuf
+ *
+pkt
+, 
+¹e_ù_úxn_d©a
+ *
+cd
+);
+
+474 
+¹e_ù_bufãr_·ck‘
+(
+
+475 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+476 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+477 
+¹e_mbuf
+ *
+pkt
+);
+
+480 
+¹e_ù_»Ëa£_bufã»d_·ck‘s
+(
+
+481 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+482 
+¹e_ù_úxn_d©a
+ *
+cd
+);
+
+	@VIL/conntrack/rte_ct_udp.c
+
+17 
+	~<¡dlib.h
+>
+
+18 
+	~<¡ršg.h
+>
+
+19 
+	~"¹e_ù_tý.h
+"
+
+20 
+	~"¹e_úxn_Œackšg.h
+"
+
+22 
+ušt8_t
+ 
+	$¹e_ù_udp_Ãw_cÚÃùiÚ
+(
+__¹e_unu£d
+ 
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+23 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+24 
+__¹e_unu£d
+ 
+¹e_mbuf
+ *
+pkt
+)
+
+27 
+cd
+->
+cÚn¡©us
+ = 
+RTE_INIT_CONN
+;
+
+29 
+	}
+}
+
+30 
+¹e_ù_·ck‘_aùiÚ
+ 
+	$¹e_ù_udp_·ck‘
+(
+¹e_ù_úxn_Œack”
+ *
+ù
+,
+
+31 
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+32 
+__¹e_unu£d
+ 
+¹e_mbuf
+ *
+pkt
+,
+
+33 
+ušt8_t
+ 
+key_was_杳d
+)
+
+35 
+¹e_ù_pkt_dœeùiÚ
+ 
+dœ
+;
+
+37 
+dœ
+ = (
+cd
+->
+key_is_þ›Á_Üd”
+ =ð!
+key_was_杳d
+);
+
+39 ià(
+dœ
+ =ð
+RTE_CT_DIR_REPLY
+ &&
+
+40 
+cd
+->
+cÚn¡©us
+ =ð
+RTE_INIT_CONN
+) {
+
+41 
+	`¹e_ù_£t_úxn_tim”_fÜ_udp
+(
+ù
+, 
+cd
+, 
+RTE_CT_UDP_REPLIED
+);
+
+42 
+cd
+->
+cÚn¡©us
+ = 
+RTE_ASSURED_CONN
+;
+
+43 } ià(
+dœ
+ =ð
+RTE_CT_DIR_REPLY
+ &&
+
+44 
+cd
+->
+cÚn¡©us
+ =ð
+RTE_ASSURED_CONN
+)
+
+45 
+	`¹e_ù_£t_úxn_tim”_fÜ_udp
+(
+ù
+, 
+cd
+, 
+RTE_CT_UDP_REPLIED
+);
+
+47 
+	`¹e_ù_£t_úxn_tim”_fÜ_udp
+(
+ù
+, 
+cd
+, 
+RTE_CT_UDP_UNREPLIED
+);
+
+48  
+RTE_CT_FORWARD_PACKET
+;
+
+49 
+	}
+}
+
+	@VIL/l2l3_stack/bond.c
+
+17 
+	~<š‹rçû.h
+>
+
+18 
+	~"tsx.h
+"
+
+19 
+š‹rçû_maš_t
+ 
+ifm
+;
+
+20 
+ušt8_t
+ 
+ifm_debug
+;
+
+21 

+USE_RTM_LOCKS
+;
+
+22 
+¹e_rwlock_t
+ 
+rwlock
+;
+
+24 
+	$ifm_bÚd_pÜt_ü—‹
+(cÚ¡ *
+Çme
+, 
+mode
+, 
+pÜt_cÚfig_t
+ * 
+pÜtcÚf
+)
+
+26 
+pÜt_id
+;
+
+27 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+28 ià(
+ifm_debug
+ && 
+IFM_DEBUG_CONFIG
+)
+
+29 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: i/°Çm%p, mod%d\n\r", 
+__FUNCTION__
+,
+
+30 
+Çme
+, 
+mode
+);
+
+31 ià(
+Çme
+ =ð
+NULL
+) {
+
+32 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Param‚ame cannot be NULL\n\r",
+
+33 
+__FUNCTION__
+);
+
+34  
+IFM_FAILURE
+;
+
+36 ià(
+mode
+ < 0 || mode > 6) {
+
+37 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Param mode should be withing 0o 6\n\r",
+
+38 
+__FUNCTION__
+);
+
+39  
+IFM_FAILURE
+;
+
+41 ià(
+pÜtcÚf
+ =ð
+NULL
+) {
+
+42 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Param…ortconf cannot be NULL\n\r",
+
+43 
+__FUNCTION__
+);
+
+44  
+IFM_FAILURE
+;
+
+46 
+bÚd_pÜt
+ = 
+	`ifm_g‘_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_‘h_bÚd_ü—‹
+(
+Çme
+, 
+mode
+, 0);
+
+51 ià(
+pÜt_id
+ < 0) {
+
+52 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+,
+
+54 
+__FUNCTION__
+, 
+Çme
+, 
+mode
+);
+
+55  
+IFM_FAILURE
+;
+
+57 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+,
+
+59 "mod%u.\n\r", 
+__FUNCTION__
+, 
+Çme
+, 
+pÜt_id
+,
+
+60 
+	`¹e_‘h_dev_sock‘_id
+(
+pÜt_id
+), 
+mode
+);
+
+62 
+bÚd_pÜt
+ = (
+l2_phy_š‹rçû_t
+ *è
+	`¹e_zm®loc
+(
+NULL
+,
+
+64 (
+l2_phy_š‹rçû_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 (
+pÜt_cÚfig_t
+));
+
+70 
+bÚd_pÜt
+->
+æags
+ |ð
+IFM_MASTER
+;
+
+71 
+bÚd_pÜt
+ *
+bÚd_šfo
+;
+
+72 
+bÚd_šfo
+ = (
+bÚd_pÜt
+ *)
+	`¹e_zm®loc
+(
+NULL
+,
+
+74 
+bÚd_pÜt
+),
+
+75 
+RTE_CACHE_LINE_SIZE
+);
+
+76 
+bÚd_šfo
+->
+sock‘_id
+ = 
+	`¹e_‘h_dev_sock‘_id
+(
+pÜt_id
+);
+
+77 
+bÚd_šfo
+->
+mode
+ = mode;
+
+78 
+bÚd_šfo
+->
+bÚd_pÜtid
+ = 
+pÜt_id
+;
+
+79 
+bÚd_pÜt
+->
+bÚd_cÚfig
+ = 
+bÚd_šfo
+;
+
+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‡lreadyƒxists inhe"
+
+92 "…܈li¡\n\r", 
+__FUNCTION__
+, 
+Çme
+);
+
+93 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+94 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring†ock @ %d\n\r",
+
+95 
+__FUNCTION__
+, 
+__LINE__
+);
+
+96 ià(
+USE_RTM_LOCKS
+)
+
+97 
+	`¹m_lock
+();
+
+99 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+101 ià(!(
+bÚd_pÜt
+->
+æags
+ & 
+IFM_MASTER
+)) {
+
+102 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Previously…ort %s was‚ot "
+
+103 "cÚfigu»d‡ BÚd…Ü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™e_uÆock
+(&
+rwlock
+);
+
+113  
+IFM_FAILURE
+;
+
+115 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+mode
+ != mode) {
+
+116 ià(
+	`¹e_‘h_bÚd_mode_£t
+(
+bÚd_pÜt
+->
+pmdid
+, 
+mode
+) < 0) {
+
+117 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s:„te_eth_bond_mode_set "
+
+118 "çžed\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™e_uÆock
+(&
+rwlock
+);
+
+127  
+IFM_FAILURE
+;
+
+130 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+mode
+ =
+
+131 
+	`¹e_‘h_bÚd_mode_g‘
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+133 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+xm™_pÞicy
+ =
+
+134 
+	`¹e_‘h_bÚd_xm™_pÞicy_g‘
+(
+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™_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†ock @ %d\n\r",
+
+145 
+__FUNCTION__
+, 
+__LINE__
+);
+
+146 ià(
+USE_RTM_LOCKS
+)
+
+147 
+	`¹m_uÆock
+();
+
+149 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+151  
+pÜt_id
+;
+
+152 
+	}
+}
+
+154 
+	$ifm_bÚd_pÜt_d–‘e
+(cÚ¡ *
+Çme
+)
+
+156 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+157 ià(
+Çme
+ =ð
+NULL
+) {
+
+158 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Param‚ame cannot be NULL\n\r",
+
+159 
+__FUNCTION__
+);
+
+160  
+IFM_FAILURE
+;
+
+162 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt_by_Çme
+(
+Çme
+);
+
+163 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+164 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock @ %d\n\r",
+
+165 
+__FUNCTION__
+, 
+__LINE__
+);
+
+166 ià(
+USE_RTM_LOCKS
+)
+
+167 
+	`¹m_lock
+();
+
+169 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+170 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+171 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given bond…ort with‚ame %s‚ot"
+
+172 " found iÀthli¡\n\r", 
+__FUNCTION__
+, 
+Çme
+);
+
+173  
+IFM_FAILURE
+;
+
+175 ià(!(
+bÚd_pÜt
+->
+æags
+ & 
+IFM_MASTER
+)) {
+
+176 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given bond…ort %s is‚ot "
+
+177 "cÚfigu»d i nÙ bÚd…Üt\n\r", 
+__FUNCTION__
+, 
+Çme
+);
+
+178 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+179 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+180 
+__FUNCTION__
+, 
+__LINE__
+);
+
+181 ià(
+USE_RTM_LOCKS
+) {
+
+182 
+	`¹m_uÆock
+();
+
+184 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+186  
+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‡ll slave "
+
+190 "pÜt äomhbÚd…܈%s\n\r", 
+__FUNCTION__
+, 
+Çme
+);
+
+191 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+192 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+193 
+__FUNCTION__
+, 
+__LINE__
+);
+
+194 ià(
+USE_RTM_LOCKS
+) {
+
+195 
+	`¹m_uÆock
+();
+
+197 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+199  
+IFM_FAILURE
+;
+
+201 
+»t
+;
+
+202 
+»t
+ = 
+	`¹e_‘h_bÚd_ä“
+(
+Çme
+);
+
+203 ià(
+»t
+ < 0) {
+
+204 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Failedo delete "
+
+205 "bÚd…܈%s\n\r", 
+__FUNCTION__
+, 
+Çme
+);
+
+206 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+207 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+208 
+__FUNCTION__
+, 
+__LINE__
+);
+
+209 ià(
+USE_RTM_LOCKS
+) {
+
+210 
+	`¹m_uÆock
+();
+
+212 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+214  
+IFM_FAILURE
+;
+
+216 ià(
+ifm_debug
+ & 
+IFM_DEBUG_CONFIG
+)
+
+217 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Bond…ort %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_ä“
+(
+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†ock @ %d\n\r",
+
+226 
+__FUNCTION__
+, 
+__LINE__
+);
+
+227 ià(
+USE_RTM_LOCKS
+)
+
+228 
+	`¹m_uÆock
+();
+
+230 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+231 
+	`ifm_»move_pÜt_d‘ažs
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+233  
+IFM_SUCCESS
+;
+
+234 
+	}
+}
+
+236 
+	$ifm_add_¦ave_pÜt
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, ušt8_ˆ
+¦ave_pÜt_id
+)
+
+238 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+, *
+¦ave_pÜt
+;
+
+239 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+241 
+¦ave_pÜt
+ = 
+	`ifm_g‘_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†ock @ %d\n\r",
+
+248 
+__FUNCTION__
+, 
+__LINE__
+);
+
+249 ià(
+USE_RTM_LOCKS
+) {
+
+250 
+	`¹m_lock
+();
+
+252 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+254 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+255 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given bond…ort %u is‚ot‡vailable in"
+
+256 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+257 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+258 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+259 
+__FUNCTION__
+, 
+__LINE__
+);
+
+260 ià(
+USE_RTM_LOCKS
+) {
+
+261 
+	`¹m_uÆock
+();
+
+263 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+265  
+IFM_FAILURE
+;
+
+267 ià(
+¦ave_pÜt
+ =ð
+NULL
+) {
+
+268 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given slave…ort %u is‚ot‡vailable in "
+
+269 "p܈li¡.\n\r", 
+__FUNCTION__
+, 
+¦ave_pÜt_id
+);
+
+270 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+271 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+272 
+__FUNCTION__
+, 
+__LINE__
+);
+
+273 ià(
+USE_RTM_LOCKS
+) {
+
+274 
+	`¹m_uÆock
+();
+
+276 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+278  
+IFM_FAILURE
+;
+
+280 ià(
+bÚd_pÜt
+ && !(bÚd_pÜt->
+æags
+ & 
+IFM_MASTER
+)) {
+
+281 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given bond…ort %u is‚ot configured "
+
+282 "a Ma¡”…Ü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†ock @ %d\n\r",
+
+286 
+__FUNCTION__
+, 
+__LINE__
+);
+
+287 ià(
+USE_RTM_LOCKS
+) {
+
+288 
+	`¹m_uÆock
+();
+
+290 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+292  
+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†ock @ %d\n\r",
+
+301 
+__FUNCTION__
+, 
+__LINE__
+);
+
+302 ià(
+USE_RTM_LOCKS
+) {
+
+303 
+	`¹m_uÆock
+();
+
+305 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+307  
+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™e_uÆock
+(&
+rwlock
+);
+
+328  
+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™e_uÆock
+(&
+rwlock
+);
+
+344  
+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šk_¥“d
+ !ð
+¦ave_pÜt
+->link_speed
+
+350 && 
+bÚd_pÜt
+->
+lšk_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†ock @ %d\n\r",
+
+356 
+__FUNCTION__
+, 
+__LINE__
+);
+
+357 ià(
+USE_RTM_LOCKS
+) {
+
+358 
+	`¹m_uÆock
+();
+
+360 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+362  
+IFM_FAILURE
+;
+
+364 ià(
+ifm_debug
+ & 
+IFM_DEBUG
+)
+
+365 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Slave…ort %u Master…ort %u\n\r",
+
+366 
+__FUNCTION__
+, 
+¦ave_pÜt_id
+, 
+bÚded_pÜt_id
+);
+
+367 
+»t
+;
+
+368 
+»t
+ = 
+	`¹e_‘h_bÚd_¦ave_add
+(
+bÚd_pÜt
+->
+pmdid
+, 
+¦ave_pÜt
+->pmdid);
+
+369 ià(
+»t
+ < 0) {
+
+370 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Failedo‡dd slave…ort %uo 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†ock @ %d\n\r",
+
+375 
+__FUNCTION__
+, 
+__LINE__
+);
+
+376 ià(
+USE_RTM_LOCKS
+) {
+
+377 
+	`¹m_uÆock
+();
+
+379 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+381  
+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™_pÞicy
+ =
+
+387 
+	`¹e_‘h_bÚd_xm™_pÞicy_g‘
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+388 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+š‹º®_ms
+ =
+
+389 
+	`¹e_‘h_bÚd_lšk_mڙܚg_g‘
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+390 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+lšk_up_d–ay_ms
+ =
+
+391 
+	`¹e_‘h_bÚd_lšk_up_´Ý_d–ay_g‘
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+392 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+lšk_down_d–ay_ms
+ =
+
+393 
+	`¹e_‘h_bÚd_lšk_down_´Ý_d–ay_g‘
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+394 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+´im¬y
+ =
+
+395 
+	`¹e_‘h_bÚd_´im¬y_g‘
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+396 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+¦ave_couÁ
+ =
+
+397 
+	`¹e_‘h_bÚd_¦aves_g‘
+(
+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_‘h_bÚd_aùive_¦aves_g‘
+(
+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™e_uÆock
+(&
+rwlock
+);
+
+427  
+IFM_FAILURE
+;
+
+430 ià(
+ifm_debug
+ & 
+IFM_DEBUG
+)
+
+431 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Skipping"
+
+432 "…܈£tup\n\r", 
+__FUNCTION__
+);
+
+435 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+436 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+437 
+__FUNCTION__
+, 
+__LINE__
+);
+
+438 ià(
+USE_RTM_LOCKS
+) {
+
+439 
+	`¹m_uÆock
+();
+
+441 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+443  
+IFM_SUCCESS
+;
+
+444 
+	}
+}
+
+446 
+	$ifm_»move_¦ave_pÜt
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, ušt8_ˆ
+¦ave_pÜt_id
+)
+
+448 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+, *
+¦ave_pÜt
+;
+
+450 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+452 
+¦ave_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+¦ave_pÜt_id
+);
+
+455 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+456 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock @ %d\n\r",
+
+457 
+__FUNCTION__
+, 
+__LINE__
+);
+
+458 ià(
+USE_RTM_LOCKS
+) {
+
+459 
+	`¹m_lock
+();
+
+461 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+463 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+464 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given bond…ort %u is‚ot‡vailable "
+
+465 "š…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+466 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+467 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+468 
+__FUNCTION__
+, 
+__LINE__
+);
+
+469 ià(
+USE_RTM_LOCKS
+)
+
+470 
+	`¹m_uÆock
+();
+
+472 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+473  
+IFM_FAILURE
+;
+
+475 ià(
+¦ave_pÜt
+ =ð
+NULL
+) {
+
+476 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given slave…ort %u is‚ot‡vailable "
+
+477 "š…܈li¡.\n\r", 
+__FUNCTION__
+, 
+¦ave_pÜt_id
+);
+
+478 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+479 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+480 
+__FUNCTION__
+, 
+__LINE__
+);
+
+481 ià(
+USE_RTM_LOCKS
+)
+
+482 
+	`¹m_uÆock
+();
+
+484 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+485  
+IFM_FAILURE
+;
+
+487 ià(
+bÚd_pÜt
+ && !(bÚd_pÜt->
+æags
+ & 
+IFM_MASTER
+)) {
+
+488 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given bond…ort %u is‚ot configured "
+
+489 "a Ma¡”…Üt.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+490 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+491 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+492 
+__FUNCTION__
+, 
+__LINE__
+);
+
+493 ià(
+USE_RTM_LOCKS
+)
+
+494 
+	`¹m_uÆock
+();
+
+496 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+497  
+IFM_FAILURE
+;
+
+499 ià(
+¦ave_pÜt
+ && !(¦ave_pÜt->
+æags
+ & 
+IFM_SLAVE
+)) {
+
+500 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given slave…ort %u is‚ot configured"
+
+501 "‡ ¦avpÜt.\n\r", 
+__FUNCTION__
+, 
+¦ave_pÜt_id
+);
+
+502 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+503 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+504 
+__FUNCTION__
+, 
+__LINE__
+);
+
+505 ià(
+USE_RTM_LOCKS
+)
+
+506 
+	`¹m_uÆock
+();
+
+508 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+509  
+IFM_FAILURE
+;
+
+511 
+i
+;
+
+512 
+found
+ = 0;
+
+513 
+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…ort %u is‚ot binded "
+
+521 "w™h bÚd…܈%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†ock @ %d\n\r",
+
+525 
+__FUNCTION__
+, 
+__LINE__
+);
+
+526 ià(
+USE_RTM_LOCKS
+)
+
+527 
+	`¹m_uÆock
+();
+
+529 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+530  
+IFM_FAILURE
+;
+
+532 ià(
+	`¹e_‘h_bÚd_¦ave_»move
+(
+bÚded_pÜt_id
+, 
+¦ave_pÜt_id
+) < 0) {
+
+533 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Failedo unbind slave…ort %u"
+
+534 " from bÚd…܈%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†ock @ %d\n\r",
+
+538 
+__FUNCTION__
+, 
+__LINE__
+);
+
+539 ià(
+USE_RTM_LOCKS
+)
+
+540 
+	`¹m_uÆock
+();
+
+542 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+543  
+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_‘h_bÚd_´im¬y_g‘
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+549 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+¦ave_couÁ
+ =
+
+550 
+	`¹e_‘h_bÚd_¦aves_g‘
+(
+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_‘h_bÚd_aùive_¦aves_g‘
+(
+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…ort %u fromhe bond "
+
+560 "p܈%u %d\n\r", 
+__FUNCTION__
+, 
+¦ave_pÜt_id
+,
+
+561 
+bÚded_pÜt_id
+,
+
+562 
+	`¹e_‘h_bÚd_´im¬y_g‘
+(
+bÚd_pÜt
+->
+pmdid
+));
+
+563 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+564 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+565 
+__FUNCTION__
+, 
+__LINE__
+);
+
+566 ià(
+USE_RTM_LOCKS
+)
+
+567 
+	`¹m_uÆock
+();
+
+569 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+570  
+IFM_SUCCESS
+;
+
+571 
+	}
+}
+
+573 
+	$£t_bÚd_mode
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, ušt8_ˆ
+mode
+)
+
+575 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+576 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+579 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+580 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock @ %d\n\r",
+
+581 
+__FUNCTION__
+, 
+__LINE__
+);
+
+582 ià(
+USE_RTM_LOCKS
+)
+
+583 
+	`¹m_lock
+();
+
+585 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+586 if(
+bÚd_pÜt
+)
+
+587 
+	`ifm_»move_pÜt_d‘ažs
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+588 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+589 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given bond…ort %u is‚ot‡vailable in"
+
+590 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+591  
+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%u\n\r.", 
+__FUNCTION__
+, 
+mode
+);
+
+598 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+599 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+600 
+__FUNCTION__
+, 
+__LINE__
+);
+
+601 ià(
+USE_RTM_LOCKS
+)
+
+602 
+	`¹m_uÆock
+();
+
+604 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+605 
+	`ifm_»move_pÜt_d‘ažs
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+606  
+IFM_SUCCESS
+;
+
+609 ià(
+	`¹e_‘h_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†ock @ %d\n\r",
+
+615 
+__FUNCTION__
+, 
+__LINE__
+);
+
+616 ià(
+USE_RTM_LOCKS
+)
+
+617 
+	`¹m_uÆock
+();
+
+619 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+620 
+	`ifm_»move_pÜt_d‘ažs
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+621  
+IFM_FAILURE
+;
+
+624 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+mode
+ = 
+	`¹e_‘h_bÚd_mode_g‘
+(bÚd_pÜt->
+pmdid
+);
+
+626 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+xm™_pÞicy
+ =
+
+627 
+	`¹e_‘h_bÚd_xm™_pÞicy_g‘
+(
+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™_pÞicy
+);
+
+634 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+635 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+636 
+__FUNCTION__
+, 
+__LINE__
+);
+
+637 ià(
+USE_RTM_LOCKS
+)
+
+638 
+	`¹m_uÆock
+();
+
+640 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+641 
+	`ifm_»move_pÜt_d‘ažs
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+642  
+IFM_SUCCESS
+;
+
+643 
+	}
+}
+
+645 
+	$g‘_bÚd_mode
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+)
+
+647 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+648 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+651 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+652 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring RD†ock @ %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…ort %u is‚ot‡vailable in"
+
+661 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+662 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+663 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing RD†ock @ %d\n\r",
+
+664 
+__FUNCTION__
+, 
+__LINE__
+);
+
+665 ià(
+USE_RTM_LOCKS
+) {
+
+666 
+	`¹m_uÆock
+();
+
+668 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+670  
+IFM_FAILURE
+;
+
+672 
+ušt8_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†ock @ %d\n\r",
+
+675 
+__FUNCTION__
+, 
+__LINE__
+);
+
+676 ià(
+USE_RTM_LOCKS
+) {
+
+677 
+	`¹m_uÆock
+();
+
+679 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+681  
+mode
+;
+
+682 
+	}
+}
+
+684 
+	$£t_bÚd_´im¬y
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, ušt8_ˆ
+¦ave_pÜt_id
+)
+
+686 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+687 
+l2_phy_š‹rçû_t
+ *
+¦ave_pÜt
+;
+
+688 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+690 
+¦ave_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+¦ave_pÜt_id
+);
+
+693 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+694 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock @ %d\n\r",
+
+695 
+__FUNCTION__
+, 
+__LINE__
+);
+
+696 ià(
+USE_RTM_LOCKS
+)
+
+697 
+	`¹m_lock
+();
+
+699 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+700 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+701 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given bond…ort %u is‚ot‡vailable in"
+
+702 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+703 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+704 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+705 
+__FUNCTION__
+, 
+__LINE__
+);
+
+706 ià(
+USE_RTM_LOCKS
+)
+
+707 
+	`¹m_uÆock
+();
+
+709 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+710  
+IFM_FAILURE
+;
+
+712 ià(
+¦ave_pÜt
+ =ð
+NULL
+) {
+
+713 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given slave…ort %u is‚ot‡vailable in"
+
+714 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+715 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+716 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+717 
+__FUNCTION__
+, 
+__LINE__
+);
+
+718 ià(
+USE_RTM_LOCKS
+)
+
+719 
+	`¹m_uÆock
+();
+
+721 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+722  
+IFM_FAILURE
+;
+
+724 
+i
+;
+
+725 
+found
+ = 0;
+
+726 
+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…ort %u is‚ot 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†ock @ %d\n\r",
+
+738 
+__FUNCTION__
+, 
+__LINE__
+);
+
+739 ià(
+USE_RTM_LOCKS
+)
+
+740 
+	`¹m_uÆock
+();
+
+742 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+743  
+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†ock @ %d\n\r",
+
+754 
+__FUNCTION__
+, 
+__LINE__
+);
+
+755 ià(
+USE_RTM_LOCKS
+)
+
+756 
+	`¹m_uÆock
+();
+
+758 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+759  
+IFM_SUCCESS
+;
+
+762 ià(
+	`¹e_‘h_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†ock @ %d\n\r",
+
+768 
+__FUNCTION__
+, 
+__LINE__
+);
+
+769 ià(
+USE_RTM_LOCKS
+)
+
+770 
+	`¹m_uÆock
+();
+
+772 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+773  
+IFM_FAILURE
+;
+
+776 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+´im¬y
+ =
+
+777 
+	`¹e_‘h_bÚd_´im¬y_g‘
+(
+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†ock @ %d\n\r",
+
+785 
+__FUNCTION__
+, 
+__LINE__
+);
+
+786 ià(
+USE_RTM_LOCKS
+)
+
+787 
+	`¹m_uÆock
+();
+
+789 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+790  
+IFM_SUCCESS
+;
+
+791 
+	}
+}
+
+793 
+	$g‘_bÚd_´im¬y_pÜt
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+)
+
+795 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+796 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+799 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+800 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring RD†ock @ %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…ort %u is‚ot‡vailable in"
+
+809 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+810 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+811 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing RD†ock @ %d\n\r",
+
+812 
+__FUNCTION__
+, 
+__LINE__
+);
+
+813 ià(
+USE_RTM_LOCKS
+) {
+
+814 
+	`¹m_uÆock
+();
+
+816 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+818  
+IFM_FAILURE
+;
+
+820 
+ušt8_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†ock @ %d\n\r",
+
+823 
+__FUNCTION__
+, 
+__LINE__
+);
+
+824 ià(
+USE_RTM_LOCKS
+) {
+
+825 
+	`¹m_uÆock
+();
+
+827 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+829  
+´im¬y
+;
+
+830 
+	}
+}
+
+832 
+	$g‘_bÚd_¦ave_couÁ
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+)
+
+834 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+835 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+838 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+839 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring RD†ock @ %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…ort %u is‚ot‡vailable in"
+
+848 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+849 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+850 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing RD†ock @ %d\n\r",
+
+851 
+__FUNCTION__
+, 
+__LINE__
+);
+
+852 ià(
+USE_RTM_LOCKS
+) {
+
+853 
+	`¹m_uÆock
+();
+
+855 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+857  
+IFM_FAILURE
+;
+
+859 
+ušt32_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†ock @ %d\n\r",
+
+862 
+__FUNCTION__
+, 
+__LINE__
+);
+
+863 ià(
+USE_RTM_LOCKS
+) {
+
+864 
+	`¹m_uÆock
+();
+
+866 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+868  
+¦ave_couÁ
+;
+
+869 
+	}
+}
+
+871 
+	$g‘_bÚd_aùive_¦ave_couÁ
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+)
+
+873 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+874 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+877 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+878 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring RD†ock @ %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…ort %u is‚ot‡vailable in"
+
+887 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+888 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+889 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing RD†ock @ %d\n\r",
+
+890 
+__FUNCTION__
+, 
+__LINE__
+);
+
+891 ià(
+USE_RTM_LOCKS
+) {
+
+892 
+	`¹m_uÆock
+();
+
+894 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+896  
+IFM_FAILURE
+;
+
+898 
+ušt32_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†ock @ %d\n\r",
+
+901 
+__FUNCTION__
+, 
+__LINE__
+);
+
+902 ià(
+USE_RTM_LOCKS
+) {
+
+903 
+	`¹m_uÆock
+();
+
+905 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+907  
+¦ave_couÁ
+;
+
+908 
+	}
+}
+
+910 
+	$g‘_bÚd_¦aves
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, ušt8_ˆ
+¦aves
+[
+RTE_MAX_ETHPORTS
+])
+
+912 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+913 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+916 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+917 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring RD†ock @ %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…ort %u is‚ot‡vailable in"
+
+926 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+927  
+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†ock @ %d\n\r",
+
+933 
+__FUNCTION__
+, 
+__LINE__
+);
+
+934 ià(
+USE_RTM_LOCKS
+) {
+
+935 
+	`¹m_uÆock
+();
+
+937 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+939  
+IFM_SUCCESS
+;
+
+940 
+	}
+}
+
+942 
+	$g‘_bÚd_aùive_¦aves
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+,
+
+943 
+ušt8_t
+ 
+aùive_¦aves
+[
+RTE_MAX_ETHPORTS
+])
+
+945 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+946 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+949 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+950 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring RD†ock @ %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…ort %u is‚ot‡vailable in"
+
+959 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+960  
+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†ock @ %d\n\r",
+
+966 
+__FUNCTION__
+, 
+__LINE__
+);
+
+967 ià(
+USE_RTM_LOCKS
+) {
+
+968 
+	`¹m_uÆock
+();
+
+970 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+972  
+IFM_SUCCESS
+;
+
+973 
+	}
+}
+
+975 
+	$£t_bÚd_mac_add»ss
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, 
+‘h”_addr
+ *
+mac_addr
+)
+
+977 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+978 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+981 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+982 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock @ %d\n\r",
+
+983 
+__FUNCTION__
+, 
+__LINE__
+);
+
+984 ià(
+USE_RTM_LOCKS
+) {
+
+985 
+	`¹m_lock
+();
+
+987 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+989 ià(
+mac_addr
+ =ð
+NULL
+) {
+
+990 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: MAC‡ddress cannot be NULL.\n\r",
+
+991 
+__FUNCTION__
+);
+
+992 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+993 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+994 
+__FUNCTION__
+, 
+__LINE__
+);
+
+995 ià(
+USE_RTM_LOCKS
+) {
+
+996 
+	`¹m_uÆock
+();
+
+998 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1000  
+IFM_FAILURE
+;
+
+1003 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1004 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given bond…ort %u is‚ot‡vailable in"
+
+1005 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+1006 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1007 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+1008 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1009 ià(
+USE_RTM_LOCKS
+) {
+
+1010 
+	`¹m_uÆock
+();
+
+1012 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1014  
+IFM_FAILURE
+;
+
+1016 ià(
+	`¹e_‘h_bÚd_mac_add»ss_£t
+(
+bÚd_pÜt
+->
+pmdid
+, 
+mac_addr
+) < 0) {
+
+1017 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Failedo set MAC‡ddr for…ort %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†ock @ %d\n\r",
+
+1021 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1022 ià(
+USE_RTM_LOCKS
+) {
+
+1023 
+	`¹m_uÆock
+();
+
+1025 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1027  
+IFM_FAILURE
+;
+
+1029 
+	`¹e_‘h_maÿddr_g‘
+(
+bÚd_pÜt
+->
+pmdid
+,
+
+1030 (
+‘h”_addr
+ *)
+bÚd_pÜt
+->
+maÿddr
+);
+
+1031 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1032 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+1033 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1034 ià(
+USE_RTM_LOCKS
+) {
+
+1035 
+	`¹m_uÆock
+();
+
+1037 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1039  
+IFM_SUCCESS
+;
+
+1040 
+	}
+}
+
+1042 
+	$»£t_bÚd_mac_addr
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+)
+
+1044 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+1045 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+1048 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1049 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock @ %d\n\r",
+
+1050 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1051 ià(
+USE_RTM_LOCKS
+) {
+
+1052 
+	`¹m_lock
+();
+
+1054 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+1056 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1057 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given bond…ort %u is‚ot‡vailable in"
+
+1058 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+1059 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1060 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+1061 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1062 ià(
+USE_RTM_LOCKS
+) {
+
+1063 
+	`¹m_uÆock
+();
+
+1065 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1067  
+IFM_FAILURE
+;
+
+1069 ià(
+	`¹e_‘h_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†ock @ %d\n\r",
+
+1075 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1076 ià(
+USE_RTM_LOCKS
+) {
+
+1077 
+	`¹m_uÆock
+();
+
+1079 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1081  
+IFM_FAILURE
+;
+
+1083 
+	`¹e_‘h_maÿddr_g‘
+(
+bÚd_pÜt
+->
+pmdid
+,
+
+1084 (
+‘h”_addr
+ *)
+bÚd_pÜt
+->
+maÿddr
+);
+
+1085 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1086 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+1087 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1088 ià(
+USE_RTM_LOCKS
+) {
+
+1089 
+	`¹m_uÆock
+();
+
+1091 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1093  
+IFM_FAILURE
+;
+
+1094 
+	}
+}
+
+1096 
+	$£t_bÚd_xm™pÞicy
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, ušt8_ˆ
+pÞicy
+)
+
+1099 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+1100 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+1102 
+»t
+ = 0;
+
+1104 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1105 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock @ %d\n\r",
+
+1106 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1107 ià(
+USE_RTM_LOCKS
+) {
+
+1108 
+	`¹m_lock
+();
+
+1110 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+1112 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1113 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given bond…ort %u is‚ot‡vailable in"
+
+1114 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+1115 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1116 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+1117 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1118 ià(
+USE_RTM_LOCKS
+) {
+
+1119 
+	`¹m_uÆock
+();
+
+1121 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1123  
+IFM_FAILURE
+;
+
+1125 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+xm™_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†ock @ %d\n\r",
+
+1132 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1133 ià(
+USE_RTM_LOCKS
+) {
+
+1134 
+	`¹m_uÆock
+();
+
+1136 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1138  
+IFM_SUCCESS
+;
+
+1140 ià(
+	`¹e_‘h_bÚd_xm™_pÞicy_£t
+(
+bÚd_pÜt
+->
+pmdid
+, 
+pÞicy
+) < 0) {
+
+1141 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Failedo set…olicy for…ort %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†ock @ %d\n\r",
+
+1145 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1146 ià(
+USE_RTM_LOCKS
+) {
+
+1147 
+	`¹m_uÆock
+();
+
+1149 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1151  
+IFM_FAILURE
+;
+
+1153 
+»t
+ = 
+	`¹e_‘h_bÚd_xm™_pÞicy_g‘
+(
+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†ock @ %d\n\r",
+
+1161 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1162 ià(
+USE_RTM_LOCKS
+) {
+
+1163 
+	`¹m_uÆock
+();
+
+1165 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1167  
+IFM_FAILURE
+;
+
+1169 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+xm™_pÞicy
+ = 
+pÞicy
+;
+
+1170 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1171 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+1172 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1173 ià(
+USE_RTM_LOCKS
+) {
+
+1174 
+	`¹m_uÆock
+();
+
+1176 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1178  
+IFM_SUCCESS
+;
+
+1179 
+	}
+}
+
+1181 
+	$g‘_bÚd_xm™pÞicy
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+)
+
+1183 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+1185 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+1187 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1188 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: RD Acquiring†ock @ %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…ort %u is‚ot‡vailable in"
+
+1197 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+1198 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1199 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s:Releasing RD†ock @ %d\n\r",
+
+1200 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1201 ià(
+USE_RTM_LOCKS
+) {
+
+1202 
+	`¹m_uÆock
+();
+
+1204 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1206  
+IFM_FAILURE
+;
+
+1208 
+ušt8_t
+ 
+pÞicy
+ = 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+xm™_pÞicy
+;
+
+1209 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1210 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s:Releasing RD†ock @ %d\n\r",
+
+1211 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1212 ià(
+USE_RTM_LOCKS
+) {
+
+1213 
+	`¹m_uÆock
+();
+
+1215 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1217  
+pÞicy
+;
+
+1218 
+	}
+}
+
+1220 
+	$£t_bÚd_lšk_mÚt™Ü_äequ’cy
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+,
+
+1221 
+ušt32_t
+ 
+š‹º®_ms
+)
+
+1223 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+1224 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1225 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock @ %d\n\r",
+
+1226 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1227 ià(
+USE_RTM_LOCKS
+) {
+
+1228 
+	`¹m_lock
+();
+
+1230 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+1233 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+1234 
+»t
+ = 0;
+
+1236 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1237 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given bond…ort %u is‚ot‡vailable in"
+
+1238 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+1239 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1240 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+1241 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1242 ià(
+USE_RTM_LOCKS
+) {
+
+1243 
+	`¹m_uÆock
+();
+
+1245 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1247  
+IFM_FAILURE
+;
+
+1249 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+š‹º®_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†ock @ %d\n\r",
+
+1256 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1257 ià(
+USE_RTM_LOCKS
+) {
+
+1258 
+	`¹m_uÆock
+();
+
+1260 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1262  
+IFM_SUCCESS
+;
+
+1264 ià(
+	`¹e_‘h_bÚd_lšk_mڙܚg_£t
+(
+bÚd_pÜt
+->
+pmdid
+, 
+š‹º®_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†ock @ %d\n\r",
+
+1270 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1271 ià(
+USE_RTM_LOCKS
+) {
+
+1272 
+	`¹m_uÆock
+();
+
+1274 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1276  
+IFM_FAILURE
+;
+
+1278 
+»t
+ = 
+	`¹e_‘h_bÚd_lšk_mڙܚg_g‘
+(
+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†ock @ %d\n\r",
+
+1286 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1287 ià(
+USE_RTM_LOCKS
+) {
+
+1288 
+	`¹m_uÆock
+();
+
+1290 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1292  
+IFM_FAILURE
+;
+
+1294 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+š‹º®_ms
+ = internal_ms;
+
+1295 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1296 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+1297 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1298 ià(
+USE_RTM_LOCKS
+) {
+
+1299 
+	`¹m_uÆock
+();
+
+1301 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1303  
+IFM_SUCCESS
+;
+
+1304 
+	}
+}
+
+1306 
+	$g‘_bÚd_lšk_mڙÜ_äequ’cy
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+)
+
+1308 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+1310 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+1312 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1313 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring RD†ock @ %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…ort %u is‚ot‡vailable in"
+
+1322 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+1323 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1324 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing RD†ock @ %d\n\r",
+
+1325 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1326 ià(
+USE_RTM_LOCKS
+) {
+
+1327 
+	`¹m_uÆock
+();
+
+1329 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1331  
+IFM_FAILURE
+;
+
+1333 
+ušt32_t
+ 
+š‹º®_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†ock @ %d\n\r",
+
+1336 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1337 ià(
+USE_RTM_LOCKS
+) {
+
+1338 
+	`¹m_uÆock
+();
+
+1340 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1342  
+š‹º®_ms
+;
+
+1343 
+	}
+}
+
+1345 
+	$£t_bÚd_lškdown_d–ay
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, 
+ušt32_t
+ 
+d–ay_ms
+)
+
+1347 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+1348 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1349 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock @ %d\n\r",
+
+1350 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1352 ià(
+USE_RTM_LOCKS
+) {
+
+1353 
+	`¹m_lock
+();
+
+1355 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+1358 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+1359 
+d–ay
+ = 0;
+
+1361 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1362 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given bond…ort %u is‚ot‡vailable in"
+
+1363 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+1364 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1365 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+1366 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1368 ià(
+USE_RTM_LOCKS
+) {
+
+1369 
+	`¹m_uÆock
+();
+
+1371 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1373  
+IFM_FAILURE
+;
+
+1375 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+lšk_down_d–ay_ms
+ =ð
+d–ay_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†ock @ %d\n\r",
+
+1382 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1384 ià(
+USE_RTM_LOCKS
+) {
+
+1385 
+	`¹m_uÆock
+();
+
+1387 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1389  
+IFM_SUCCESS
+;
+
+1391 ià(
+	`¹e_‘h_bÚd_lšk_down_´Ý_d–ay_£t
+(
+bÚd_pÜt
+->
+pmdid
+, 
+d–ay_ms
+) <
+
+1393 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Failedo set delay for…ort %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†ock @ %d\n\r",
+
+1397 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1399 ià(
+USE_RTM_LOCKS
+) {
+
+1400 
+	`¹m_uÆock
+();
+
+1402 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1404  
+IFM_FAILURE
+;
+
+1406 
+d–ay
+ = 
+	`¹e_‘h_bÚd_lšk_down_´Ý_d–ay_g‘
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+1407 ià(
+d–ay
+ < 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†ock @ %d\n\r",
+
+1414 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1416 ià(
+USE_RTM_LOCKS
+) {
+
+1417 
+	`¹m_uÆock
+();
+
+1419 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1421  
+IFM_FAILURE
+;
+
+1423 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+lšk_down_d–ay_ms
+ = 
+d–ay
+;
+
+1424 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1425 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+1426 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1428 ià(
+USE_RTM_LOCKS
+) {
+
+1429 
+	`¹m_uÆock
+();
+
+1431 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1433  
+IFM_SUCCESS
+;
+
+1434 
+	}
+}
+
+1436 
+	$g‘_bÚd_lšk_down_d–ay
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+)
+
+1438 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+1440 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+1441 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1442 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring RD†ock @ %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…ort %u is‚ot‡vailable in"
+
+1451 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+1452 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1453 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing RD†ock @ %d\n\r",
+
+1454 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1455 ià(
+USE_RTM_LOCKS
+) {
+
+1456 
+	`¹m_uÆock
+();
+
+1458 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1460  
+IFM_FAILURE
+;
+
+1462 
+ušt32_t
+ 
+d–ay_ms
+ = 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+lšk_down_d–ay_ms
+;
+
+1463 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1464 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing RD†ock @ %d\n\r",
+
+1465 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1466 ià(
+USE_RTM_LOCKS
+) {
+
+1467 
+	`¹m_uÆock
+();
+
+1469 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1471  
+d–ay_ms
+;
+
+1473 
+	}
+}
+
+1475 
+	$£t_bÚd_lškup_d–ay
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, 
+ušt32_t
+ 
+d–ay_ms
+)
+
+1477 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+1478 
+d–ay
+ = 0;
+
+1479 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+1481 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1482 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock @ %d\n\r",
+
+1483 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1484 ià(
+USE_RTM_LOCKS
+)
+
+1485 
+	`¹m_uÆock
+();
+
+1487 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1489 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1490 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Given bond…ort %u is‚ot‡vailable in"
+
+1491 "…܈li¡.\n\r", 
+__FUNCTION__
+, 
+bÚded_pÜt_id
+);
+
+1492 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1493 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+1494 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1495 ià(
+USE_RTM_LOCKS
+)
+
+1496 
+	`¹m_uÆock
+();
+
+1498 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1499  
+IFM_FAILURE
+;
+
+1501 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+lšk_up_d–ay_ms
+ =ð
+d–ay_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†ock @ %d\n\r",
+
+1508 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1509 ià(
+USE_RTM_LOCKS
+)
+
+1510 
+	`¹m_uÆock
+();
+
+1512 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1513  
+IFM_SUCCESS
+;
+
+1515 ià(
+	`¹e_‘h_bÚd_lšk_up_´Ý_d–ay_£t
+(
+bÚd_pÜt
+->
+pmdid
+, 
+d–ay_ms
+) < 0) {
+
+1516 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Failedo set delay for…ort %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†ock @ %d\n\r",
+
+1520 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1522 ià(
+USE_RTM_LOCKS
+)
+
+1523 
+	`¹m_uÆock
+();
+
+1525 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1526  
+IFM_FAILURE
+;
+
+1528 
+d–ay
+ = 
+	`¹e_‘h_bÚd_lšk_up_´Ý_d–ay_g‘
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+1529 ià(
+d–ay
+ < 0) {
+
+1530 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+,
+
+1532 
+__FUNCTION__
+);
+
+1533 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1534 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+1535 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1537 ià(
+USE_RTM_LOCKS
+)
+
+1538 
+	`¹m_uÆock
+();
+
+1540 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1541  
+IFM_FAILURE
+;
+
+1543 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+lšk_up_d–ay_ms
+ = 
+d–ay
+;
+
+1544 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1545 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+1546 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1548 ià(
+USE_RTM_LOCKS
+)
+
+1549 
+	`¹m_uÆock
+();
+
+1551 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1552  
+IFM_SUCCESS
+;
+
+1553 
+	}
+}
+
+1555 
+	$g‘_bÚd_lšk_up_d–ay
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+)
+
+1557 
+l2_phy_š‹rçû_t
+ *
+bÚd_pÜt
+;
+
+1558 
+ušt32_t
+ 
+d–ay_ms
+;
+
+1560 
+bÚd_pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+bÚded_pÜt_id
+);
+
+1562 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1563 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring RD†ock @ %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 "…܈li¡.\n\r", 
+__FUNCTION__
+,
+
+1574 
+bÚded_pÜt_id
+);
+
+1576 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1577 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing RD†ock @ %d\n\r",
+
+1578 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1579 ià(
+USE_RTM_LOCKS
+)
+
+1580 
+	`¹m_uÆock
+();
+
+1582 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1583  
+IFM_FAILURE
+;
+
+1585 
+d–ay_ms
+ = 
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+lšk_up_d–ay_ms
+;
+
+1587 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1588 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing RD†ock @ %d\n\r",
+
+1589 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1590 ià(
+USE_RTM_LOCKS
+)
+
+1591 
+	`¹m_uÆock
+();
+
+1593 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1594  
+d–ay_ms
+;
+
+1595 
+	}
+}
+
+	@VIL/l2l3_stack/hle.c
+
+16 
+	~"tsx.h
+"
+
+18 
+	~<xmmšŒš.h
+>
+
+20 
+	$hË_š™
+()
+
+22 
+mu‹x_v®
+ = 0;
+
+23 
+	}
+}
+
+25 
+	$hË_lock
+()
+
+27 
+__©omic_exchªge_n
+
+
+28 (&
+mu‹x_v®
+, 1, 
+__ATOMIC_ACQUIRE
+ | 
+__ATOMIC_HLE_ACQUIRE
+))
+
+29 
+	`_mm_·u£
+();
+
+30  
+TRUE
+;
+
+31 
+	}
+}
+
+33 
+	$hË_»Ëa£
+()
+
+35 
+	`__©omic_¡Üe_n
+(&
+mu‹x_v®
+, 0,
+
+36 
+__ATOMIC_RELEASE
+ | 
+__ATOMIC_HLE_RELEASE
+);
+
+37  
+TRUE
+;
+
+38 
+	}
+}
+
+40 
+	$is_hË_locked
+()
+
+42  (
+mu‹x_v®
+ =ð0è? 
+FALSE
+ : 
+TRUE
+;
+
+43 
+	}
+}
+
+	@VIL/l2l3_stack/hle.h
+
+17 
+	#HLE_TRUE
+ 1
+
+	)
+
+18 
+	#HLE_FALSE
+ 0
+
+	)
+
+20 vÞ©ž
+	gmu‹x_v®
+;
+
+25 
+hË_mu‹x
+();
+
+30 
+hË_lock
+();
+
+35 
+hË_»Ëa£
+();
+
+40 
+is_locked
+();
+
+	@VIL/l2l3_stack/interface.c
+
+16 
+	~<š‹rçû.h
+>
+
+17 
+	~<¹e_by‹Üd”.h
+>
+
+18 
+	~<lib_¬p.h
+>
+
+19 
+	~<tsx.h
+>
+
+21 
+š‹rçû_maš_t
+ 
+	gifm
+;
+
+22 
+	gUSE_RTM_LOCKS
+ = 0;
+
+23 
+¹e_rwlock_t
+ 
+	grwlock
+;
+
+24 
+ušt8_t
+ 
+	gifm_debug
+;
+
+25 
+	g´ev_¡©e
+;
+
+27 
+	$cÚfig_ifm_debug
+(
+dbg
+, 
+æag
+)
+
+29 
+dbg
+) {
+
+30 
+IFM_DEBUG_CONFIG
+:
+
+31 ià(
+æag
+) {
+
+32 
+ifm_debug
+ |ð
+IFM_DEBUG_CONFIG
+;
+
+34 
+ifm_debug
+ &ð~
+IFM_DEBUG_CONFIG
+;
+
+37 
+IFM_DEBUG_RXTX
+:
+
+38 ià(
+æag
+) {
+
+39 
+ifm_debug
+ |ð
+IFM_DEBUG_RXTX
+;
+
+41 
+ifm_debug
+ &ð~
+IFM_DEBUG_RXTX
+;
+
+44 
+IFM_DEBUG_LOCKS
+:
+
+45 ià(
+æag
+) {
+
+46 
+ifm_debug
+ |ð
+IFM_DEBUG_LOCKS
+;
+
+48 
+ifm_debug
+ &ð~
+IFM_DEBUG_LOCKS
+;
+
+51 
+IFM_DEBUG
+:
+
+52 ià(
+æag
+) {
+
+53 
+ifm_debug
+ |ð
+IFM_DEBUG
+;
+
+55 
+ifm_debug
+ &ð~
+IFM_DEBUG
+;
+
+59 
+	}
+}
+
+61 
+	$ifm_š™
+()
+
+63 
+i
+ = 0;
+
+64 
+	`cÚfig_ifm_debug
+(
+IFM_DEBUG_CONFIG
+, 1);
+
+65 ià(
+	`ÿn_u£_š‹l_cÜe_4th_g’_ã©u»s
+()) {
+
+66 ià(
+ifm_debug
+ & 
+IFM_DEBUG_CONFIG
+)
+
+67 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "TSX‚ot currently supported...\n\r");
+
+68 
+USE_RTM_LOCKS
+ = 0;
+
+70 ià(
+ifm_debug
+ & 
+IFM_DEBUG_CONFIG
+)
+
+71 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "TSX‚ot supported\n\r");
+
+72 
+USE_RTM_LOCKS
+ = 0;
+
+74 ià(
+USE_RTM_LOCKS
+)
+
+75 
+	`¹m_š™
+();
+
+77 
+	`¹e_rwlock_š™
+(&
+rwlock
+);
+
+79 
+i
+ = 0; i < 
+IFM_MAX_PORTARR_SZ
+; i++) {
+
+80 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+81 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock @ %d\n\r",
+
+82 
+__FUNCTION__
+, 
+__LINE__
+);
+
+83 ià(
+USE_RTM_LOCKS
+)
+
+84 
+	`¹m_lock
+();
+
+86 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+88 
+ifm
+.
+pÜt_li¡
+[
+i
+] = 
+NULL
+;
+
+89 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+90 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock @ %d\n\r",
+
+91 
+__FUNCTION__
+, 
+__LINE__
+);
+
+92 ià(
+USE_RTM_LOCKS
+)
+
+93 
+	`¹m_uÆock
+();
+
+95 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+97 
+ifm
+.
+ÅÜt_štŸlized
+ = 
+	`¹e_‘h_dev_couÁ
+();
+
+98 
+ifm
+.
+ÅÜt_cÚfigu»d
+ = 0;
+
+99 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "IFM_INIT: Number of…orts initialized during "
+
+100 "PCI…robšg %u.\n\r", 
+ifm
+.
+ÅÜt_štŸlized
+);
+
+101 
+	}
+}
+
+103 
+	$ifm_»move_pÜt_d‘ažs
+(
+ušt8_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†ock %d\n\r",
+
+108 
+__FUNCTION__
+, 
+__LINE__
+);
+
+109 ià(
+USE_RTM_LOCKS
+)
+
+110 
+	`¹m_lock
+();
+
+112 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+113 
+l2_phy_š‹rçû_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…ort %u\n\r",
+
+117 
+__FUNCTION__
+, 
+pÜtid
+);
+
+118 
+	`¹e_ä“
+(
+pÜt
+);
+
+119 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+120 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing†ock @ %d\n\r",
+
+121 
+__FUNCTION__
+, 
+__LINE__
+);
+
+123 ià(
+USE_RTM_LOCKS
+)
+
+124 
+	`¹m_uÆock
+();
+
+126 
+	`¹e_rwlock_wr™e_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_š‹rçû_t
+ *
+	$ifm_g‘_pÜt
+(
+ušt8_t
+ 
+pÜt_id
+)
+
+137 
+l2_phy_š‹rçû_t
+ *
+pÜt
+ = 
+NULL
+;
+
+138 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+139 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquœšg†ock @ %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†ock @ %d\n\r",
+
+155 
+__FUNCTION__
+, 
+__LINE__
+);
+
+156 ià(
+USE_RTM_LOCKS
+)
+
+157 
+	`¹m_uÆock
+();
+
+159 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+160  
+NULL
+;
+
+162 ià(
+pÜt
+->
+pmdid
+ =ð
+pÜt_id
+) {
+
+165 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+166 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing†ock @ %d\n\r",
+
+167 
+__FUNCTION__
+, 
+__LINE__
+);
+
+169 ià(
+USE_RTM_LOCKS
+)
+
+170 
+	`¹m_uÆock
+();
+
+172 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+173  
+pÜt
+;
+
+180 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+181 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: R–—sšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+182 
+__LINE__
+);
+
+183 ià(
+USE_RTM_LOCKS
+)
+
+184 
+	`¹m_uÆock
+();
+
+186 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+187  
+NULL
+;
+
+188 
+	}
+}
+
+190 
+l2_phy_š‹rçû_t
+ *
+	$ifm_g‘_fœ¡_pÜt
+()
+
+192 
+l2_phy_š‹rçû_t
+ *
+pÜt
+ = 
+NULL
+;
+
+193 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+194 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquœšg†ock @ %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†ock @ %d\n\r",
+
+207 
+__FUNCTION__
+, 
+__LINE__
+);
+
+208 ià(
+USE_RTM_LOCKS
+)
+
+209 
+	`¹m_uÆock
+();
+
+211 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+212  
+NULL
+;
+
+216 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+217 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: R–—sšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+218 
+__LINE__
+);
+
+219 ià(
+USE_RTM_LOCKS
+)
+
+220 
+	`¹m_uÆock
+();
+
+222 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+223  
+pÜt
+;
+
+224 
+	}
+}
+
+226 
+l2_phy_š‹rçû_t
+ *
+	$ifm_g‘_Ãxt_pÜt
+(
+ušt8_t
+ 
+pÜt_id
+)
+
+228 
+l2_phy_š‹rçû_t
+ *
+pÜt
+ = 
+NULL
+;
+
+229 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+230 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquœšg†ock @ %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†ock @ %d\n\r",
+
+240 
+__FUNCTION__
+, 
+__LINE__
+);
+
+241 ià(
+USE_RTM_LOCKS
+)
+
+242 
+	`¹m_uÆock
+();
+
+244 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+245  
+NULL
+;
+
+249 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+250 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: R–—sšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+251 
+__LINE__
+);
+
+253 ià(
+USE_RTM_LOCKS
+)
+
+254 
+	`¹m_uÆock
+();
+
+256 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+257  
+pÜt
+;
+
+258 
+	}
+}
+
+260 
+l2_phy_š‹rçû_t
+ *
+	$ifm_g‘_pÜt_by_Çme
+(cÚ¡ *
+Çme
+)
+
+262 
+l2_phy_š‹rçû_t
+ *
+pÜt
+ = 
+NULL
+;
+
+263 
+i
+;
+
+264 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+265 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquœšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+266 
+__LINE__
+);
+
+268 ià(
+USE_RTM_LOCKS
+)
+
+269 
+	`¹m_lock
+();
+
+271 
+	`¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+272 
+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!…ort %u %s\n\r",
+
+277 
+pÜt
+->
+pmdid
+,…Ü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  
+pÜt
+;
+
+289 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+290 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: R–—sšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+291 
+__LINE__
+);
+
+292 ià(
+USE_RTM_LOCKS
+)
+
+293 
+	`¹m_uÆock
+();
+
+295 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+296  
+NULL
+;
+
+297 
+	}
+}
+
+299 
+	$lsi_ev’t_ÿÎback
+(
+ušt8_t
+ 
+pÜt_id
+, 
+¹e_‘h_ev’t_ty³
+ 
+ty³
+,
+
+300 *
+·¿m
+)
+
+302 
+¹e_‘h_lšk
+ 
+lšk
+;
+
+303 
+l2_phy_š‹rçû_t
+ *
+pÜt
+;
+
+304 
+nþ›Ás
+ = 
+ifm
+.
+nþ›Á
+;
+
+305 
+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†ock @ %d\n\r",
+
+312 
+__FUNCTION__
+, 
+__LINE__
+);
+
+313 ià(
+USE_RTM_LOCKS
+) {
+
+314 
+	`¹m_lock
+();
+
+316 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+318 
+	`¹e_‘h_lšk_g‘
+(
+pÜt_id
+, &
+lšk
+);
+
+319 
+i
+ = 0; i < 
+nþ›Ás
+; i++)
+
+320 
+ifm
+.
+if_þ›Á
+[
+i
+].
+	`cb_lškupd©e
+(
+pÜt_id
+, 
+lšk
+.
+lšk_¡©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
+ &&…Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+328 ià(
+lšk
+.
+lšk_¡©us
+) {
+
+329 
+pÜt
+->
+lšk_¡©us
+ = 
+IFM_ETH_LINK_UP
+;
+
+330 
+pÜt
+->
+lšk_¥“d
+ = 
+lšk
+.link_speed;
+
+331 
+pÜt
+->
+lšk_du¶ex
+ = 
+lšk
+.link_duplex;
+
+332 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+,
+
+334 
+pÜt_id
+, ()
+lšk
+.
+lšk_¥“d
+,
+
+335 (
+lšk
+.
+lšk_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_‘h_bÚd_aùive_¦aves_g‘
+(
+pÜt
+->
+pmdid
+,
+
+342 
+pÜt
+->
+
+343 
+bÚd_cÚfig
+->
+
+344 
+aùive_¦aves
+,
+
+345 
+RTE_MAX_ETHPORTS
+);
+
+346 
+‘h”_addr
+ 
+Ãw_mac
+;
+
+347 
+	`¹e_‘h_maÿddr_g‘
+(
+pÜt
+->
+pmdid
+,
+
+348 (
+‘h”_addr
+ *)
+
+349 &
+Ãw_mac
+);
+
+350 ià(
+memcmp
+
+
+351 (&
+Ãw_mac
+, 
+pÜt
+->
+maÿddr
+,
+
+352 (
+‘h”_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št8_t
+ 
+ma¡”_pÜtid
+ =
+
+364 
+pÜt
+->
+bÚd_cÚfig
+->
+bÚd_pÜtid
+;
+
+365 
+¹e_‘h_lšk
+ 
+lšk¡©us
+;
+
+366 
+	`¹e_‘h_lšk_g‘
+(
+ma¡”_pÜtid
+, &
+lšk¡©us
+);
+
+367 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "P܈%u ' Ma¡”(%uè¡©u i %u\n\r", 
+pÜt_id
+,
+
+368 
+ma¡”_pÜtid
+, 
+lšk¡©us
+.
+lšk_¡©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™e_uÆock
+(&
+rwlock
+);
+
+380 ià(
+pÜt
+->
+v4_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™ous_¬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šk_¡©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 
+¹e_‘h_lšk
+ 
+lšk¡©us
+;
+
+408 
+ušt8_t
+ 
+ma¡”_pÜtid
+ =
+
+409 
+pÜt
+->
+bÚd_cÚfig
+->
+bÚd_pÜtid
+;
+
+410 
+	`¹e_‘h_lšk_g‘_nowa™
+(
+ma¡”_pÜtid
+,
+
+411 &
+lšk¡©us
+);
+
+412 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+,
+
+414 
+pÜt_id
+, 
+ma¡”_pÜtid
+,
+
+415 
+lšk¡©us
+.
+lšk_¡©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™e_uÆock
+(&
+rwlock
+);
+
+426 
+´ev_¡©e
+ = 0;
+
+430 
+	}
+}
+
+432 
+	$ifm_upd©e_lšk¡©us
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt16_t
+ 
+lšk¡©us
+)
+
+434 
+¹e_‘h_lšk
+ 
+lšk
+;
+
+435 
+l2_phy_š‹rçû_t
+ *
+pÜt
+;
+
+436 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+437 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquœšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+438 
+__LINE__
+);
+
+440 ià(
+USE_RTM_LOCKS
+) {
+
+441 
+	`¹m_lock
+();
+
+443 
+	`¹e_rwlock_wr™e_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
+ &&…Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+453 
+	`¹e_‘h_lšk_g‘
+(
+pÜt_id
+, &
+lšk
+);
+
+454 ià(
+lšk¡©us
+ =ð
+IFM_ETH_LINK_UP
+) {
+
+455 
+pÜt
+->
+admš_¡©us
+ = 
+IFM_ETH_LINK_UP
+;
+
+456 if(!
+lšk
+.
+lšk_¡©us
+) {
+
+457 ià(
+	`¹e_‘h_dev_£t_lšk_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™e_uÆock
+(&
+rwlock
+);
+
+472 ià(
+ifm_debug
+ & 
+IFM_DEBUG_CONFIG
+)
+
+473 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+,
+
+475 
+__FUNCTION__
+, 
+pÜt
+->
+pmdid
+);
+
+476 
+	`£nd_g¿tu™ous_¬p
+(
+pÜt
+);
+
+480 } ià(
+lšk¡©us
+ =ð
+IFM_ETH_LINK_DOWN
+)
+
+482 
+¡©us
+;
+
+483 
+pÜt
+->
+admš_¡©us
+ = 
+IFM_ETH_LINK_DOWN
+;
+
+485 if(
+lšk
+.
+lšk_¡©us
+) {
+
+486 
+¡©us
+ = 
+	`¹e_‘h_dev_£t_lšk_down
+(
+pÜt_id
+);
+
+487 ià(
+¡©us
+ < 0)
+
+489 
+	`´štf
+("(%" 
+PRIu32
+ "): PMD set†ink down... continuing...%"
+
+490 
+PRId32
+ "\n", 
+pÜt_id
+, 
+¡©us
+);
+
+495 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+496 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: R–—sšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+497 
+__LINE__
+);
+
+499 ià(
+USE_RTM_LOCKS
+) {
+
+500 
+	`¹m_uÆock
+();
+
+502 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+504 
+	}
+}
+
+506 
+	$ifm_£t_l2_š‹rçû_mtu
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt16_t
+ 
+mtu
+)
+
+508 
+»t
+;
+
+509 
+l2_phy_š‹rçû_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
+ &&…Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+518 
+»t
+ = 
+	`¹e_‘h_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™e_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™e_uÆock
+(&
+rwlock
+);
+
+548 
+	}
+}
+
+550 
+	$ifm_£t_pÜt_´omisc
+(
+ušt8_t
+ 
+pÜt_id
+, ušt8_ˆ
+’abË
+)
+
+552 
+l2_phy_š‹rçû_t
+ *
+pÜt
+;
+
+553 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+554 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock @ %d\n\r",
+
+555 
+__FUNCTION__
+, 
+__LINE__
+);
+
+556 ià(
+USE_RTM_LOCKS
+) {
+
+557 
+	`¹m_lock
+();
+
+559 
+	`¹e_rwlock_wr™e_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
+ &&…Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+568 ià(
+’abË
+ == 1) {
+
+569 
+	`¹e_‘h_´omiscuous_’abË
+(
+pÜt_id
+);
+
+570 
+pÜt
+->
+´omisc
+ = 1;
+
+572 
+	`¹e_‘h_´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†ock @ %d\n\r",
+
+578 
+__FUNCTION__
+, 
+__LINE__
+);
+
+579 ià(
+USE_RTM_LOCKS
+) {
+
+580 
+	`¹m_uÆock
+();
+
+582 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+584 
+	}
+}
+
+586 
+št32_t
+ 
+	$ifm_g‘_Çùive_pÜts
+()
+
+588  
+ifm
+.
+ÅÜt_cÚfigu»d
+;
+
+589 
+	}
+}
+
+591 
+št32_t
+ 
+	$ifm_g‘_ÅÜts_š™Ÿlized
+()
+
+593  
+ifm
+.
+ÅÜt_štŸlized
+;
+
+594 
+	}
+}
+
+596 
+ušt16_t
+ 
+	$ifm_»ûive_bulk_pkts
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt16_t
+ 
+qid
+,
+
+597 
+¹e_mbuf
+ **
+rx_pkts
+)
+
+599 
+ušt64_t
+ 
+no_of_rcvd_pkt
+;
+
+600 
+no_of_rcvd_pkt
+ =
+
+601 
+	`¹e_‘h_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  
+no_of_rcvd_pkt
+;
+
+607 
+	}
+}
+
+609 
+ušt16_t
+ 
+	$ifm_Œªsm™_bulk_pkts
+(
+l2_phy_š‹rçû_t
+ *
+pÜt
+,
+
+610 
+¹e_mbuf
+ **
+tx_pkts
+, 
+ušt64_t
+ 
+Åkts
+)
+
+612 
+ušt32_t
+ 
+bur¡_tx_d–ay_time
+ = 
+IFM_BURST_TX_WAIT_US
+;
+
+613 
+ušt32_t
+ 
+bur¡_tx_»Œy_num
+ = 
+IFM_BURST_TX_RETRIES
+;
+
+614 
+ušt32_t
+ 
+»Œy
+;
+
+615 
+ušt32_t
+ 
+no_of_tx_pkt
+;
+
+616 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+617 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring RD†ock @ %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_‘h_tx_bur¡
+(
+pÜt
+->
+pmdid
+, 
+IFM_TX_DEFAULT_Q
+, 
+tx_pkts
+,
+
+625 
+Åkts
+);
+
+626 ià(
+	`uÆik–y
+(
+no_of_tx_pkt
+ < 
+Åkts
+)) {
+
+627 
+»Œy
+ = 0;
+
+628 
+no_of_tx_pkt
+ < 
+IFM_BURST_SIZE
+
+
+629 && 
+»Œy
+++ < 
+bur¡_tx_»Œy_num
+) {
+
+630 
+	`¹e_d–ay_us
+(
+bur¡_tx_d–ay_time
+);
+
+631 
+no_of_tx_pkt
+ =
+
+632 
+	`¹e_‘h_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†ock @ %d\n\r",
+
+643 
+__FUNCTION__
+, 
+__LINE__
+);
+
+644 ià(
+USE_RTM_LOCKS
+) {
+
+645 
+	`¹m_uÆock
+();
+
+647 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+649  
+no_of_tx_pkt
+;
+
+650 
+	}
+}
+
+652 
+	$ifm_Œªsm™_sšgË_pkt
+(
+l2_phy_š‹rçû_t
+ *
+pÜt
+, 
+¹e_mbuf
+ *
+tx_pkts
+)
+
+654 
+ušt64_t
+ 
+tx_Åkts
+ = 0;
+
+655 ià(
+tx_pkts
+ =ð
+NULL
+ || 
+pÜt
+ == NULL) {
+
+656 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+,
+
+658  
+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†ock @ %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_‘h_tx_bufãr
+(
+pÜt
+->
+pmdid
+, 
+IFM_TX_DEFAULT_Q
+,…Ü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†ock @ %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†ock @ %d\n\r",
+
+691 
+__FUNCTION__
+, 
+__LINE__
+);
+
+693 ià(
+USE_RTM_LOCKS
+) {
+
+694 
+	`¹m_lock
+();
+
+696 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+698 
+pÜt
+->
+n_txpkts
+ +=
+
+699 
+	`¹e_‘h_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†ock @ %d\n\r",
+
+703 
+__FUNCTION__
+, 
+__LINE__
+);
+
+705 ià(
+USE_RTM_LOCKS
+) {
+
+706 
+	`¹m_uÆock
+();
+
+708 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+710 ià(
+ifm_debug
+ & 
+IFM_DEBUG_RXTX
+)
+
+711 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+,
+
+713 
+pÜt
+->
+n_txpkts
+);
+
+714  
+tx_Åkts
+;
+
+715 
+	}
+}
+
+717 
+št16_t
+ 
+	$ifm_add_v4_pÜt
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt32_t
+ 
+addr
+, ušt32_ˆ
+add¾’
+)
+
+719 
+l2_phy_š‹rçû_t
+ *
+pÜt
+;
+
+720 
+v4li¡_t
+ *
+cÚf
+;
+
+721 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+722 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquœšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+723 
+__LINE__
+);
+
+725 ià(
+USE_RTM_LOCKS
+) {
+
+726 
+	`¹m_lock
+();
+
+728 
+	`¹e_rwlock_wr™e_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
+ &&…Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+737 
+cÚf
+ = (
+v4li¡_t
+ *è
+	`¹e_zm®loc
+(
+NULL
+, (ipv4list_t),
+
+738 
+RTE_CACHE_LINE_SIZE
+);
+
+739 ià(
+cÚf
+ !ð
+NULL
+) {
+
+740 
+cÚf
+->
+Ãxt
+ = 
+NULL
+;
+
+742 
+cÚf
+->
+addr
+ = ipaddr;
+
+743 
+cÚf
+->
+pÜt
+ =…ort;
+
+744 
+cÚf
+->
+add¾’
+ =‡ddrlen;
+
+745 ià(
+pÜt
+->
+v4_li¡
+ =ð
+NULL
+)
+
+746 
+pÜt
+->
+æags
+ |ð
+IFM_IPV4_ENABLED
+;
+
+747 
+cÚf
+->
+Ãxt
+ = (
+v4li¡_t
+ *è
+pÜt
+->
+v4_li¡
+;
+
+748 
+pÜt
+->
+v4_li¡
+ = (
+v4li¡_t
+ *è
+cÚ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™e_uÆock
+(&
+rwlock
+);
+
+762 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+763 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: R–—sšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+764 
+__LINE__
+);
+
+766 ià(
+USE_RTM_LOCKS
+) {
+
+767 
+	`¹m_uÆock
+();
+
+769 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+772 
+	}
+}
+
+774 
+št16_t
+ 
+	$ifm_»move_v4_pÜt
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt32_t
+ 
+addr
+,
+
+775 
+ušt32_t
+ 
+add¾’
+)
+
+777 
+l2_phy_š‹rçû_t
+ *
+pÜt
+;
+
+778 
+v4li¡_t
+ *
+li¡
+, *
+´evli¡
+ = 
+NULL
+;
+
+779 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+780 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquœšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+781 
+__LINE__
+);
+
+783 ià(
+USE_RTM_LOCKS
+) {
+
+784 
+	`¹m_lock
+();
+
+786 
+	`¹e_rwlock_wr™e_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
+ &&…Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+795 ià(
+pÜt
+->
+v4_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™e_uÆock
+(&
+rwlock
+);
+
+808 
+li¡
+ = (
+v4li¡_t
+ *è
+pÜt
+->
+v4_li¡
+;
+
+809 
+li¡
+ !ð
+NULL
+) {
+
+810 ià(
+add¾’
+ =ð
+li¡
+->addrlen &&
+
+811 
+	`memýy
+(&
+li¡
+->
+addr
+, &addr, 
+add¾’
+)) {
+
+812 ià(
+li¡
+ =ð
+pÜt
+->
+v4_li¡
+) {
+
+813 
+pÜt
+->
+v4_li¡
+ = 
+li¡
+->
+Ãxt
+;
+
+815 ià(
+´evli¡
+ !ð
+NULL
+)
+
+816 
+´evli¡
+->
+Ãxt
+ = 
+li¡
+->next;
+
+818 
+pÜt
+->
+æags
+ &ð~
+IFM_IPV4_ENABLED
+;
+
+819 
+	`¹e_ä“
+(
+li¡
+);
+
+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™e_uÆock
+(&
+rwlock
+);
+
+832 
+´evli¡
+ = 
+li¡
+;
+
+833 
+li¡
+ = i¶i¡->
+Ãxt
+;
+
+837 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+838 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: R–—sšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+839 
+__LINE__
+);
+
+841 ià(
+USE_RTM_LOCKS
+) {
+
+842 
+	`¹m_uÆock
+();
+
+844 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+847 
+	}
+}
+
+849 
+št8_t
+ 
+	$ifm_add_v6_pÜt
+(
+ušt8_t
+ 
+pÜt_id
+, ušt8_ˆ
+6addr
+[], 
+ušt32_t
+ 
+add¾’
+)
+
+851 
+l2_phy_š‹rçû_t
+ *
+pÜt
+;
+
+852 
+v6li¡_t
+ *
+6cÚf
+;
+
+853 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+854 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquœšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+855 
+__LINE__
+);
+
+857 ià(
+USE_RTM_LOCKS
+) {
+
+858 
+	`¹m_lock
+();
+
+860 
+	`¹e_rwlock_wr™e_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
+ &&…Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+869 
+6cÚf
+ = (
+v6li¡_t
+ *è
+	`¹e_zm®loc
+(
+NULL
+, (ipv6list_t),
+
+870 
+RTE_CACHE_LINE_SIZE
+);
+
+871 ià(
+6cÚf
+ !ð
+NULL
+) {
+
+872 
+6cÚf
+->
+Ãxt
+ = 
+NULL
+;
+
+873 
+	`memýy
+(
+6cÚf
+->
+addr
+, 
+6addr
+, 
+IFM_IPV6_ADDR_SIZE
+);
+
+874 
+6cÚf
+->
+pÜt
+ =…ort;
+
+875 
+6cÚf
+->
+add¾’
+ =‡ddrlen;
+
+877 ià(
+pÜt
+->
+v6_li¡
+ =ð
+NULL
+) {
+
+878 
+pÜt
+->
+æags
+ |ð
+IFM_IPV6_ENABLED
+;
+
+880 
+6cÚf
+->
+Ãxt
+ = (
+v6li¡_t
+ *è
+pÜt
+->
+v6_li¡
+;
+
+881 
+pÜt
+->
+v6_li¡
+ = (
+v6li¡_t
+ *è
+6cÚ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™e_uÆock
+(&
+rwlock
+);
+
+895 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+896 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: R–—sšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+897 
+__LINE__
+);
+
+899 ià(
+USE_RTM_LOCKS
+) {
+
+900 
+	`¹m_uÆock
+();
+
+902 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+905 
+	}
+}
+
+907 
+št16_t
+ 
+	$ifm_»move_v6_pÜt
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt32_t
+ 
+6addr
+,
+
+908 
+ušt32_t
+ 
+add¾’
+)
+
+910 
+l2_phy_š‹rçû_t
+ *
+pÜt
+;
+
+911 
+v6li¡_t
+ *
+6li¡
+, *
+´ev6li¡
+ = 
+NULL
+;
+
+913 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+914 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquœšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+915 
+__LINE__
+);
+
+916 ià(
+USE_RTM_LOCKS
+)
+
+917 
+	`¹m_lock
+();
+
+919 
+	`¹e_rwlock_wr™e_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†ock @ %d\n\r",
+
+924 
+__FUNCTION__
+, 
+__LINE__
+);
+
+925 ià(
+USE_RTM_LOCKS
+) {
+
+926 
+	`¹m_uÆock
+();
+
+928 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+930 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+,
+
+932 
+__FUNCTION__
+, 
+pÜt_id
+);
+
+934 ià(
+pÜt
+ !ð
+NULL
+ &&…Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+935 ià(
+pÜt
+->
+v6_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™e_uÆock
+(&
+rwlock
+);
+
+948 
+6li¡
+ = (
+v6li¡_t
+ *è
+pÜt
+->
+v6_li¡
+;
+
+949 
+6li¡
+ !ð
+NULL
+) {
+
+950 ià(
+add¾’
+ =ð
+6li¡
+->addrlen &&
+
+951 
+	`memýy
+(&
+6li¡
+->
+addr
+, &
+6addr
+, 
+add¾’
+)) {
+
+952 ià(
+6li¡
+ =ð
+pÜt
+->
+v6_li¡
+) {
+
+953 
+pÜt
+->
+v6_li¡
+ = 
+6li¡
+->
+Ãxt
+;
+
+955 ià(
+´ev6li¡
+ !ð
+NULL
+)
+
+956 
+´ev6li¡
+->
+Ãxt
+ =
+
+957 
+6li¡
+->
+Ãxt
+;
+
+959 
+pÜt
+->
+æags
+ &ð~
+IFM_IPV6_ENABLED
+;
+
+960 
+	`¹e_ä“
+(
+6li¡
+);
+
+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™e_uÆock
+(&
+rwlock
+);
+
+973 
+´ev6li¡
+ = 
+6li¡
+;
+
+974 
+6li¡
+ = ip6li¡->
+Ãxt
+;
+
+978 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+979 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: R–—sšg†ock @ %d\n\r", 
+__FUNCTION__
+,
+
+980 
+__LINE__
+);
+
+981 ià(
+USE_RTM_LOCKS
+)
+
+982 
+	`¹m_uÆock
+();
+
+984 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+986 
+	}
+}
+
+988 
+št32_t
+ 
+	$ifm_chk_pÜt_v4_’abËd
+(
+ušt8_t
+ 
+pÜt_id
+)
+
+990 
+l2_phy_š‹rçû_t
+ *
+pÜt
+;
+
+992 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+993 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring RD†ock @ %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†ock @ %d\n\r",
+
+1006 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1007 ià(
+USE_RTM_LOCKS
+)
+
+1008 
+	`¹m_uÆock
+();
+
+1010 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1011  
+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†ock @ %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†ock @ %d\n\r",
+
+1025 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1026 ià(
+USE_RTM_LOCKS
+)
+
+1027 
+	`¹m_uÆock
+();
+
+1029 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1032 
+	}
+}
+
+1034 
+št32_t
+ 
+	$ifm_chk_pÜt_v6_’abËd
+(
+ušt8_t
+ 
+pÜt_id
+)
+
+1036 
+l2_phy_š‹rçû_t
+ *
+pÜt
+;
+
+1038 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1039 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring RD†ock @ %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‚ot found..."
+
+1051 
+__FUNCTION__
+, 
+pÜt_id
+);
+
+1052 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1053 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing RD†ock @ %d\n\r",
+
+1054 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1055 ià(
+USE_RTM_LOCKS
+)
+
+1056 
+	`¹m_uÆock
+();
+
+1058 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1059  
+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†ock @ %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†ock @ %d\n\r",
+
+1073 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1074 ià(
+USE_RTM_LOCKS
+)
+
+1075 
+	`¹m_uÆock
+();
+
+1077 
+	`¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1080 
+	}
+}
+
+1082 
+	$ifm_»gi¡”_fÜ_lškupd©e
+(
+ušt32_t
+ 
+þ›Áid
+,
+
+1083 (*
+cb_lškupd©e
+è(
+ušt8_t
+, ))
+
+1085 
+ifm
+.
+if_þ›Á
+[ifm.
+nþ›Á
+].
+cb_lškupd©e
+ = cb_linkupdate;
+
+1086 
+ifm
+.
+if_þ›Á
+[ifm.
+nþ›Á
+].
+þ›Áid
+ = clientid;
+
+1087 
+ifm
+.
+nþ›Á
+++;
+
+1088 
+	}
+}
+
+1090 
+	$ifm_pÜt_£tup
+(
+ušt8_t
+ 
+pÜt_id
+, 
+pÜt_cÚfig_t
+ *
+pcÚfig
+)
+
+1092 
+¡©us
+, 
+sock
+;
+
+1093 
+buf
+[12];
+
+1094 
+¹e_‘h_dev_šfo
+ 
+dev_šfo
+;
+
+1095 
+¹e_‘h_lšk
+ 
+lšk¡©us
+;
+
+1096 
+l2_phy_š‹rçû_t
+ *
+pÜt
+ = 
+NULL
+;
+
+1098 ià(!
+ifm
+.
+ÅÜt_štŸlized
+) {
+
+1099 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Failedo configure…ort %u. 0…orts"
+
+1101 
+__FUNCTION__
+, 
+pÜt_id
+);
+
+1102  
+IFM_FAILURE
+;
+
+1104 ià(
+ifm_debug
+ & 
+IFM_DEBUG_CONFIG
+)
+
+1105 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Configuring…ort %u with "
+
+1106 "Äxq: %u,‚txq: %u\n\r", 
+__FUNCTION__
+,
+
+1107 
+pÜt_id
+, 
+pcÚfig
+->
+Äx_queue
+,…cÚfig->
+Áx_queue
+);
+
+1108 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1109 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock1 @ %d\n\r",
+
+1110 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1111 ià(
+USE_RTM_LOCKS
+)
+
+1112 
+	`¹m_lock
+();
+
+1114 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+1116 ià(
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+] =ð
+NULL
+) {
+
+1117 
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+] =
+
+1118 (
+l2_phy_š‹rçû_t
+ *è
+	`¹e_zm®loc
+(
+NULL
+,
+
+1120 (
+l2_phy_š‹rçû_t
+),
+
+1121 
+RTE_CACHE_LINE_SIZE
+);
+
+1122 
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+]->
+pmdid
+ =…ort_id;
+
+1124 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1125 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock1 @ %d\n\r",
+
+1126 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1127 ià(
+USE_RTM_LOCKS
+)
+
+1128 
+	`¹m_uÆock
+();
+
+1130 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1132 
+	`¹e_‘h_lšk_g‘
+(
+pÜt_id
+, &
+lšk¡©us
+);
+
+1133 ià(
+lšk¡©us
+.
+lšk_¡©us
+) {
+
+1134 ià(
+ifm_debug
+ & 
+IFM_DEBUG_CONFIG
+) {
+
+1135 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: %u is up.Stop it before"
+
+1136 "„ecÚfiguršg.\n\r", 
+__FUNCTION__
+, 
+pÜt_id
+);
+
+1138 
+	`¹e_‘h_dev_¡Ý
+(
+pÜt_id
+);
+
+1141 
+¡©us
+ = 
+	`¹e_‘h_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‘ažs
+(
+pÜt_id
+);
+
+1145 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s:„te_eth_dev_configure is failed"
+
+1146 "f܅܈%u.\n\r", 
+__FUNCTION__
+, 
+pÜt_id
+);
+
+1147  
+IFM_FAILURE
+;
+
+1149 
+¡©us
+ = 
+	`¹e_‘h_dev_ÿÎback_»gi¡”
+(
+pÜt_id
+,
+
+1150 
+RTE_ETH_EVENT_INTR_LSC
+,
+
+1151 
+lsi_ev’t_ÿÎback
+, 
+NULL
+);
+
+1152 ià(
+¡©us
+ < 0) {
+
+1153 
+	`ifm_»move_pÜt_d‘ažs
+(
+pÜt_id
+);
+
+1154 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s:„te_eth_dev_callback_register()"
+
+1155 " fažed f܅܈%u.\n\r", 
+__FUNCTION__
+, 
+pÜt_id
+);
+
+1156  
+IFM_FAILURE
+;
+
+1159 ià(
+pcÚfig
+->
+´omisc
+)
+
+1160 
+	`¹e_‘h_´omiscuous_’abË
+(
+pÜt_id
+);
+
+1162 
+sock
+ = 
+	`¹e_‘h_dev_sock‘_id
+(
+pÜt_id
+);
+
+1163 ià(
+sock
+ == -1)
+
+1164 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Warning:„te_eth_dev_socket_id,"
+
+1166 "ouˆoà¿ng%u\n\r", 
+__FUNCTION__
+, 
+pÜt_id
+);
+
+1168 
+Áxqs
+;
+
+1169 
+Áxqs
+ = 0;‚txq < 
+pcÚfig
+->
+Áx_queue
+;‚txqs++) {
+
+1170 
+¡©us
+ = 
+	`¹e_‘h_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‘ažs
+(
+pÜt_id
+);
+
+1175 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s:„te_eth_tx_queue_setup failed"
+
+1176 " f܅܈%u\n\r", 
+__FUNCTION__
+, 
+pÜt_id
+);
+
+1177  
+IFM_FAILURE
+;
+
+1180 
+pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+pÜt_id
+);
+
+1181 ià(
+pÜt
+ =ð
+NULL
+) {
+
+1182 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: P܈i NULL @ %d\n\r", 
+__FUNCTION__
+,
+
+1183 
+__LINE__
+);
+
+1184  
+IFM_FAILURE
+;
+
+1187 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1188 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock 2 @ %d\n\r",
+
+1189 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1190 ià(
+USE_RTM_LOCKS
+)
+
+1191 
+	`¹m_lock
+();
+
+1193 
+	`¹e_rwlock_wr™e_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‘
+("tx_bufãr",…Üt->
+tx_buf_Ën
+, 0,
+
+1199 
+	`¹e_‘h_dev_sock‘_id
+(
+pÜt_id
+));
+
+1201 ià(
+pÜt
+->
+tx_bufãr
+ =ð
+NULL
+) {
+
+1202 
+	`ifm_»move_pÜt_d‘ažs
+(
+pÜt_id
+);
+
+1203 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s: Failedo‡llocatex buffers for"
+
+1204 "…܈%u\n\r", 
+__FUNCTION__
+, 
+pÜt_id
+);
+
+1205 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1206 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock2 %d\n\r",
+
+1207 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1208 ià(
+USE_RTM_LOCKS
+)
+
+1209 
+	`¹m_uÆock
+();
+
+1211 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1212  
+IFM_FAILURE
+;
+
+1214 
+	`¹e_‘h_tx_bufãr_š™
+(
+pÜt
+->
+tx_bufãr
+, 
+IFM_BURST_SIZE
+);
+
+1216 
+	`¥rštf
+(
+buf
+, "MEMPOOL%d", 
+pÜt_id
+);
+
+1217 
+pÜt
+->
+mempoÞ
+ = 
+	`¹e_mempoÞ_ü—‹
+(
+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Þ_š™
+, 
+NULL
+,
+
+1224 
+¹e_pktmbuf_š™
+, 
+NULL
+, 
+sock
+, 0);
+
+1225 ià(
+pÜt
+->
+mempoÞ
+ =ð
+NULL
+) {
+
+1226 
+	`ifm_»move_pÜt_d‘ažs
+(
+pÜt_id
+);
+
+1227 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s:„te_mempool_create is failed for…ort"
+
+1229 
+__FUNCTION__
+, 
+pÜt_id
+, 
+	`¹e_¡»¼Ü
+(
+¹e_”ºo
+));
+
+1230 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1231 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock2 %d\n\r",
+
+1232 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1233 ià(
+USE_RTM_LOCKS
+)
+
+1234 
+	`¹m_uÆock
+();
+
+1236 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1237  
+IFM_FAILURE
+;
+
+1239 
+Äxqs
+;
+
+1240 
+Äxqs
+ = 0;‚rxq < 
+pcÚfig
+->
+Äx_queue
+;‚rxqs++) {
+
+1241 
+¡©us
+ = 
+	`¹e_‘h_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‘ažs
+(
+pÜt_id
+);
+
+1247 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+,
+
+1250 
+__FUNCTION__
+, 
+pÜt_id
+, 
+Äxqs
+,
+
+1251 
+	`¹e_¡»¼Ü
+(
+¹e_”º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™e_uÆock
+(&
+rwlock
+);
+
+1260  
+IFM_FAILURE
+;
+
+1264 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1265 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR†ock2 @ %d\n\r",
+
+1266 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1267 ià(
+USE_RTM_LOCKS
+)
+
+1268 
+	`¹m_uÆock
+();
+
+1270 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1271 
+¡©us
+ = 
+	`¹e_‘h_dev_¡¬t
+(
+pÜt_id
+);
+
+1272 ià(
+¡©us
+ < 0) {
+
+1273 
+	`ifm_»move_pÜt_d‘ažs
+(
+pÜt_id
+);
+
+1274 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s:„te_eth_dev_start is failed for"
+
+1275 "…܈%u.\n\r", 
+__FUNCTION__
+, 
+pÜt_id
+);
+
+1276  
+IFM_FAILURE
+;
+
+1278 
+	`¹e_d–ay_ms
+(5000);
+
+1280 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1281 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring WR†ock3 @ %d\n\r",
+
+1282 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1283 ià(
+USE_RTM_LOCKS
+)
+
+1284 
+	`¹m_lock
+();
+
+1286 
+	`¹e_rwlock_wr™e_lock
+(&
+rwlock
+);
+
+1287 
+	`¹e_‘h_maÿddr_g‘
+(
+pÜt_id
+, (
+‘h”_addr
+ *)
+pÜt
+->
+maÿddr
+);
+
+1288 ià(
+pcÚfig
+->
+´omisc
+)
+
+1289 
+pÜt
+->
+´omisc
+ = 1;
+
+1290 
+	`¹e_‘h_lšk_g‘
+(
+pÜt_id
+, &
+lšk¡©us
+);
+
+1292 
+pÜt
+->
+lšk_du¶ex
+ = 
+lšk¡©us
+.link_duplex;
+
+1293 
+pÜt
+->
+lšk_autÚeg
+ = 
+lšk¡©us
+.link_autoneg;
+
+1294 
+pÜt
+->
+lšk_¥“d
+ = 
+lšk¡©us
+.link_speed;
+
+1295 
+pÜt
+->
+admš_¡©us
+ = 
+pcÚfig
+->
+¡©e
+;
+
+1298 
+	`mem£t
+(&
+dev_šfo
+, 0, (dev_info));
+
+1299 
+	`¹e_‘h_dev_šfo_g‘
+(
+pÜt_id
+, &
+dev_šfo
+);
+
+1300 
+pÜt
+->
+mš_rx_bufsize
+ = 
+dev_šfo
+.min_rx_bufsize;
+
+1301 
+pÜt
+->
+max_rx_pkŽ’
+ = 
+dev_šfo
+.max_rx_pktlen;
+
+1302 
+pÜt
+->
+max_rx_queues
+ = 
+dev_šfo
+.max_rx_queues;
+
+1303 
+pÜt
+->
+max_tx_queues
+ = 
+dev_šfo
+.max_tx_queues;
+
+1304 
+	`¹e_‘h_dev_g‘_mtu
+(
+pÜt_id
+, &(
+pÜt
+->
+mtu
+));
+
+1307 
+pÜt
+->
+»Œ›ve_bulk_pkts
+ = &
+ifm_»ûive_bulk_pkts
+;
+
+1308 
+pÜt
+->
+Œªsm™_bulk_pkts
+ = &
+ifm_Œªsm™_bulk_pkts
+;
+
+1309 
+pÜt
+->
+Œªsm™_sšgË_pkt
+ = &
+ifm_Œªsm™_sšgË_pkt
+;
+
+1310 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1311 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing WR3†ock @ %d\n\r",
+
+1312 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1313 ià(
+USE_RTM_LOCKS
+)
+
+1314 
+	`¹m_uÆock
+();
+
+1316 
+	`¹e_rwlock_wr™e_uÆock
+(&
+rwlock
+);
+
+1317 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Port %u is successfully configured.\n\r",
+
+1318 
+__FUNCTION__
+, 
+pÜt_id
+);
+
+1319  
+IFM_SUCCESS
+;
+
+1320 
+	}
+}
+
+1322 
+	$ifm_cÚfigu»_pÜts
+(
+pÜt_cÚfig_t
+ *
+pcÚfig
+)
+
+1324 
+ušt8_t
+ 
+pÜt_id
+;
+
+1325 
+¡©us
+ = 0;
+
+1326 ià(!
+ifm
+.
+ÅÜt_štŸlized
+) {
+
+1327 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s, Configuring…orts failed. Zero…orts "
+
+1328 "¬štŸlized duršg PCI…robe", 
+__FUNCTION__
+);
+
+1329  
+IFM_FAILURE
+;
+
+1331 ià(
+pcÚfig
+ =ð
+NULL
+) {
+
+1332 
+	`RTE_LOG
+(
+ERR
+, 
+IFM
+, "%s, Configuring…orts failed. "
+
+1333 "P¬am…cÚfig i NULL\n\r", 
+__FUNCTION__
+);
+
+1334  
+IFM_FAILURE
+;
+
+1338 
+pÜt_id
+ = 0;…Üt_id < 
+ifm
+.
+ÅÜt_štŸlized
+;…ort_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…orts‡re configured\n\r",
+
+1349 
+__FUNCTION__
+);
+
+1350  
+IFM_FAILURE
+;
+
+1352 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Number of…orts sucessfully configured:"
+
+1353 " %d\n\r", 
+__FUNCTION__
+, 
+ifm
+.
+ÅÜt_cÚfigu»d
+);
+
+1354  
+IFM_SUCCESS
+;
+
+1355 
+	}
+}
+
+1357 
+	$´št_š‹rçû_d‘ažs
+()
+
+1359 
+l2_phy_š‹rçû_t
+ *
+pÜt
+;
+
+1360 
+i
+ = 0;
+
+1361 
+sockaddr_š
+ 
+
+;
+
+1362 
+	`´štf
+("\n\r");
+
+1364 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1365 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Acquiring RW†ock @ %d\n\r",
+
+1366 
+__FUNCTION__
+, 
+__LINE__
+);
+
+1367 ià(
+USE_RTM_LOCKS
+)
+
+1368 
+	`¹m_lock
+();
+
+1370 
+	`¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+1372 
+i
+ = 0; i < 
+RTE_MAX_ETHPORTS
+ && 
+ifm
+.
+pÜt_li¡
+[i]; i++) {
+
+1373 
+pÜt
+ = 
+ifm
+.
+pÜt_li¡
+[
+i
+];
+
+1374 
+	`´štf
+(" %u", 
+pÜt
+->
+pmdid
+);
+
+1375 ià(
+pÜt
+->
+iâame
+ && 
+	`¡¾’
+(port->ifname)) {
+
+1376 
+	`´štf
+(" (%s)\t", 
+pÜt
+->
+iâame
+);
+
+1378 
+	`´štf
+("\t\t");
+
+1379 
+	`´štf
+("MAC:%02x:%02x:%02x:%02x:%02x:%02x Adminstate:%s"
+
+1381 
+pÜt
+->
+maÿddr
+[0],…ort->macaddr[1],
+
+1382 
+pÜt
+->
+maÿddr
+[2],…ort->macaddr[3],
+
+1383 
+pÜt
+->
+maÿddr
+[4],…ort->macaddr[5],
+
+1384 
+pÜt
+->
+admš_¡©us
+ ? "UP" : "DOWN",
+
+1385 
+pÜt
+->
+lšk_¡©us
+ ? "UP" : "DOWN");
+
+1386 
+	`´štf
+("\t\t");
+
+1387 
+	`´štf
+("S³ed: %u, %s-du¶ex\n\r", 
+pÜt
+->
+lšk_¥“d
+,
+
+1388 
+pÜt
+->
+lšk_du¶ex
+ ? "full" : "half");
+
+1389 
+	`´štf
+("\t\t");
+
+1391 ià(
+pÜt
+->
+v4_li¡
+ !ð
+NULL
+) {
+
+1392 
+
+.
+sš_addr
+.
+s_addr
+ =
+
+1393 ()((
+v4li¡_t
+ *è(
+pÜt
+->
+v4_li¡
+))->
+
+1394 
+addr
+;
+
+1395 
+	`´štf
+("IP: %s/%d", 
+	`š‘_Áß
+(
+
+.
+sš_addr
+),
+
+1396 ((
+v4li¡_t
+ *è(
+pÜt
+->
+v4_li¡
+))->
+add¾’
+);
+
+1398 
+	`´štf
+("IP: NA");
+
+1401 
+	`´štf
+("\r\n");
+
+1402 
+	`´štf
+("\t\t");
+
+1403 ià(
+pÜt
+->
+v6_li¡
+ !ð
+NULL
+) {
+
+1404 
+ušt8_t
+ *
+addr
+ =
+
+1405 ((
+v6li¡_t
+ *è(
+pÜt
+->
+v6_li¡
+))->
+addr
+;
+
+1406 
+´štf
+
+
+1408 
+addr
+[0],‡ddr[1],‡ddr[2],‡ddr[3],‡ddr[4],
+
+1409 
+addr
+[5],‡ddr[6],‡ddr[7],‡ddr[8],‡ddr[9],
+
+1410 
+addr
+[10],‡ddr[11],‡ddr[12],‡ddr[13],‡ddr[14],
+
+1411 
+addr
+[15]);
+
+1413 
+	`´štf
+("IPv6: NA");
+
+1416 ià(
+pÜt
+->
+æags
+ & 
+IFM_SLAVE
+) {
+
+1417 
+	`´štf
+(" IFM_SLAVE ");
+
+1418 
+	`´štf
+(" MasterPort: %u",
+
+1419 
+pÜt
+->
+bÚd_cÚfig
+->
+bÚd_pÜtid
+);
+
+1421 ià(
+pÜt
+->
+æags
+ & 
+IFM_MASTER
+) {
+
+1422 
+	`´štf
+(" IFM_MASTER ");
+
+1423 
+	`´štf
+(" Mode: %u", 
+pÜt
+->
+bÚd_cÚfig
+->
+mode
+);
+
+1424 
+	`´štf
+(" Prim¬yPÜt: %u", 
+pÜt
+->
+bÚd_cÚfig
+->
+´im¬y
+);
+
+1425 
+	`´štf
+("\n\r");
+
+1426 
+	`´štf
+("\t\tSlavePortCount: %u",
+
+1427 
+pÜt
+->
+bÚd_cÚfig
+->
+¦ave_couÁ
+);
+
+1428 
+	`´štf
+(" SlavePorts:");
+
+1429 
+i
+;
+
+1430 
+i
+ = 0; i < 
+pÜt
+->
+bÚd_cÚfig
+->
+¦ave_couÁ
+; i++) {
+
+1431 
+	`´štf
+(" %u ", 
+pÜt
+->
+bÚd_cÚfig
+->
+¦aves
+[
+i
+]);
+
+1433 
+	`´štf
+(" ActivePortCount: %u",
+
+1434 
+pÜt
+->
+bÚd_cÚfig
+->
+aùive_¦ave_couÁ
+);
+
+1435 
+	`´štf
+(" ActivePorts:");
+
+1436 
+i
+ = 0; i < 
+pÜt
+->
+bÚd_cÚfig
+->
+aùive_¦ave_couÁ
+;
+
+1437 
+i
+++) {
+
+1438 
+	`´štf
+(" %u ",
+
+1439 
+pÜt
+->
+bÚd_cÚfig
+->
+aùive_¦aves
+[
+i
+]);
+
+1441 
+	`´štf
+("\n\r");
+
+1442 
+	`´štf
+("\t\t");
+
+1443 
+	`´štf
+("Link_monitor_freq: %u ms ",
+
+1444 
+pÜt
+->
+bÚd_cÚfig
+->
+š‹º®_ms
+);
+
+1445 
+	`´štf
+(" Link_up_prop_delay: %u ms ",
+
+1446 
+pÜt
+->
+bÚd_cÚfig
+->
+lšk_up_d–ay_ms
+);
+
+1447 
+	`´štf
+(" Link_down_prop_delay: %u ms ",
+
+1448 
+pÜt
+->
+bÚd_cÚfig
+->
+lšk_down_d–ay_ms
+);
+
+1449 
+	`´štf
+("\n\r");
+
+1450 
+	`´štf
+("\t\t");
+
+1451 
+	`´štf
+("Xmit_policy: %u",
+
+1452 
+pÜt
+->
+bÚd_cÚfig
+->
+xm™_pÞicy
+);
+
+1454 
+	`´štf
+("\n\r");
+
+1455 
+	`´štf
+("\t\t");
+
+1456 
+	`´štf
+("n_rxpkts: %" 
+PRIu64
+ " ,n_txpkts: %" PRIu64 " ,",
+
+1457 
+pÜt
+->
+n_rxpkts
+,…Üt->
+n_txpkts
+);
+
+1458 
+¹e_‘h_¡©s
+ 
+‘h_¡©s
+;
+
+1459 
+	`¹e_‘h_¡©s_g‘
+(
+pÜt
+->
+pmdid
+, &
+‘h_¡©s
+);
+
+1460 
+	`´štf
+("pkts_š: %" 
+PRIu64
+ " ,", 
+‘h_¡©s
+.
+ack‘s
+);
+
+1461 
+	`´štf
+("pkts_out: %" 
+PRIu64
+ " ", 
+‘h_¡©s
+.
+Ýack‘s
+);
+
+1462 
+	`´štf
+("\n\r");
+
+1463 
+	`´štf
+("\t\t");
+
+1464 
+	`´štf
+("š_”rs: %" 
+PRIu64
+ " ,", 
+‘h_¡©s
+.
+›¼Üs
+);
+
+1465 
+	`´štf
+("š_mis£d: %" 
+PRIu64
+ " ,", 
+‘h_¡©s
+.
+imis£d
+);
+
+1466 
+	`´štf
+("out_”rs: %" 
+PRIu64
+ " ,", 
+‘h_¡©s
+.
+Û¼Üs
+);
+
+1467 
+	`´štf
+("mbuf_”rs: %" 
+PRIu64
+ " ", 
+‘h_¡©s
+.
+rx_nombuf
+);
+
+1468 
+	`´štf
+("\n\r");
+
+1469 
+	`´štf
+("\n\r");
+
+1471 ià(
+ifm_debug
+ & 
+IFM_DEBUG_LOCKS
+)
+
+1472 
+	`RTE_LOG
+(
+INFO
+, 
+IFM
+, "%s: Releasing RW†ock @ %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 
+	#INTERFACE_H
+
+
+	)
+
+19 
+	~<¡dio.h
+>
+
+20 
+	~<¡dlib.h
+>
+
+21 
+	~<¡ršg.h
+>
+
+22 
+	~<¡dšt.h
+>
+
+23 
+	~<š‰y³s.h
+>
+
+24 
+	~<sys/ty³s.h
+>
+
+25 
+	~<sys/queue.h
+>
+
+26 
+	~<Ãtš‘/š.h
+>
+
+27 
+	~<£tjmp.h
+>
+
+28 
+	~<¡d¬g.h
+>
+
+29 
+	~<ùy³.h
+>
+
+30 
+	~<Ӽo.h
+>
+
+31 
+	~<g‘Ýt.h
+>
+
+32 
+	~<sigÇl.h
+>
+
+33 
+	~<¡dboÞ.h
+>
+
+34 
+	~<sys/sock‘.h
+>
+
+35 
+	~<Ãtš‘/š.h
+>
+
+36 
+	~<¬·/š‘.h
+>
+
+37 
+	~<¹e_commÚ.h
+>
+
+38 
+	~<¹e_log.h
+>
+
+39 
+	~<¹e_m®loc.h
+>
+
+40 
+	~<¹e_memÜy.h
+>
+
+41 
+	~<¹e_memýy.h
+>
+
+42 
+	~<¹e_memzÚe.h
+>
+
+43 
+	~<¹e_—l.h
+>
+
+44 
+	~<¹e_³r_lcÜe.h
+>
+
+45 
+	~<¹e_Ïunch.h
+>
+
+46 
+	~<¹e_©omic.h
+>
+
+47 
+	~<¹e_cyþes.h
+>
+
+48 
+	~<¹e_´eãtch.h
+>
+
+49 
+	~<¹e_lcÜe.h
+>
+
+50 
+	~<¹e_³r_lcÜe.h
+>
+
+51 
+	~<¹e_b¿nch_´ediùiÚ.h
+>
+
+52 
+	~<¹e_š‹¼u±s.h
+>
+
+53 
+	~<¹e_pci.h
+>
+
+54 
+	~<¹e_¿ndom.h
+>
+
+55 
+	~<¹e_debug.h
+>
+
+56 
+	~<¹e_‘h”.h
+>
+
+57 
+	~<¹e_‘hdev.h
+>
+
+58 
+	~<¹e_ršg.h
+>
+
+59 
+	~<¹e_mempoÞ.h
+>
+
+60 
+	~<¹e_mbuf.h
+>
+
+61 
+	~<¹e_‘h_ù¾.h
+>
+
+62 
+	~<¹e_”ºo.h
+>
+
+63 
+	~<¹e_pÜt_‘hdev.h
+>
+
+64 
+	~<¹e_‘h_bÚd.h
+>
+
+65 
+	~<¹e_rwlock.h
+>
+
+67 
+	#RTE_LOGTYPE_IFM
+ 
+RTE_LOGTYPE_USER1
+
+
+	)
+
+68 
+	#IFM_SUCCESS
+ 0
+
+	)
+
+69 
+	#IFM_FAILURE
+ -1
+
+	)
+
+73 
+	#IFM_ETH_LINK_HALF_DUPLEX
+ 0
+
+	)
+
+74 
+	#IFM_ETH_LINK_FULL_DUPLEX
+ 1
+
+	)
+
+75 
+	#IFM_ETH_LINK_DOWN
+ 0
+
+	)
+
+76 
+	#IFM_ETH_LINK_UP
+ 1
+
+	)
+
+77 
+	#IFM_ETH_LINK_FIXED
+ 0
+
+	)
+
+82 
+	#IFM_SLAVE
+ (1<<0)
+
+	)
+
+83 
+	#IFM_MASTER
+ (1<<1)
+
+	)
+
+84 
+	#IFM_BONDED
+ (1<<2)
+
+	)
+
+85 
+	#IFM_IPV4_ENABLED
+ (1<<3)
+
+	)
+
+86 
+	#IFM_IPV6_ENABLED
+ (1<<4)
+
+	)
+
+88 
+	#IFM_BONDING_MODE_ROUND_ROBIN
+ 0
+
+	)
+
+89 
+	#IFM_BONDING_MODE_ACTIVE_BACKUP
+ 1
+
+	)
+
+90 
+	#IFM_BONDING_MODE_BALANCE
+ 2
+
+	)
+
+91 
+	#IFM_BONDING_MODE_BROADCAST
+ 3
+
+	)
+
+92 
+	#IFM_BONDING_MODE_8023AD
+ 4
+
+	)
+
+93 
+	#IFM_BONDING_MODE_TLB
+ 5
+
+	)
+
+94 
+	#IFM_BONDING_MODE_ALB
+ 6
+
+	)
+
+96 
+	#IFM_BALANCE_XMIT_POLICY_LAYER2
+ 0
+
+	)
+
+97 
+	#IFM_BALANCE_XMIT_POLICY_LAYER23
+ 1
+
+	)
+
+98 
+	#IFM_BALANCE_XMIT_POLICY_LAYER34
+ 2
+
+	)
+
+102 
+	#IFM_QUEUE_STAT_CNTRS
+ 16
+
+	)
+
+103 
+	#IFM_TX_DEFAULT_Q
+ 0
+
+	)
+
+104 
+	#IFM_RX_DEFAULT_Q
+ 0
+
+	)
+
+105 
+	#IFM_RX_DESC_DEFAULT
+ 128
+
+	)
+
+106 
+	#IFM_TX_DESC_DEFAULT
+ 512
+
+	)
+
+107 
+	#IFM_BURST_SIZE
+ 32
+
+	)
+
+108 
+	#IFM_BURST_TX_WAIT_US
+ 1
+
+	)
+
+109 
+	#IFM_BURST_TX_RETRIES
+ 64
+
+	)
+
+110 
+	#BURST_TX_DRAIN_US
+ 100
+
+	)
+
+115 
+	#IFM_IFNAME_LEN
+ 16
+
+	)
+
+116 
+	#IFM_CLIENT_NAME
+ 20
+
+	)
+
+117 
+	#IFM_MAX_CLIENT
+ 10
+
+	)
+
+119 
+	#IFM_ETHER_ADDR_SIZE
+ 6
+
+	)
+
+120 
+	#IFM_IPV6_ADDR_SIZE
+ 16
+
+	)
+
+122 
+	#IFM_DEBUG_CONFIG
+ (1<<0)
+
+	)
+
+123 
+	#IFM_DEBUG_RXTX
+ (1<<1)
+
+	)
+
+124 
+	#IFM_DEBUG_LOCKS
+ (1<<2)
+
+	)
+
+125 
+	#IFM_DEBUG
+ (1<<4)
+
+	)
+
+126 
+	#IFM_MAX_PORTARR_SZ
+ 64
+
+	)
+
+127 
+	#IFM_MAX_PORTARR_SZ
+ 64
+
+	)
+
+132 
+	smempoÞ_cÚfig
+ {
+
+133 
+ušt32_t
+ 
+	mpoÞ_size
+;
+
+134 
+ušt32_t
+ 
+	mbufãr_size
+;
+
+136 
+ušt32_t
+ 
+	mÿche_size
+;
+
+138 
+ušt32_t
+ 
+	mýu_sock‘_id
+;
+
+140 } 
+	g__¹e_ÿche_®igÃd
+;
+
+147 
+	s_pÜt_cÚfig_
+ {
+
+148 
+ušt8_t
+ 
+	mpÜt_id
+;
+
+149 
+	mÄx_queue
+;
+
+150 
+	mÁx_queue
+;
+
+151 
+ušt32_t
+ 
+	mtx_buf_size
+;
+
+152 
+ušt32_t
+ 
+	m¡©e
+;
+
+153 
+ušt32_t
+ 
+	m´omisc
+;
+
+154 
+mempoÞ_cÚfig
+ 
+	mmempoÞ
+;
+
+156 
+¹e_‘h_cÚf
+ 
+	mpÜt_cÚf
+;
+
+158 
+¹e_‘h_rxcÚf
+ 
+	mrx_cÚf
+;
+
+160 
+¹e_‘h_txcÚf
+ 
+	mtx_cÚf
+;
+
+162 } 
+	tpÜt_cÚfig_t
+;
+
+169 
+	s_if_¡©s_
+ {
+
+170 
+ušt64_t
+ 
+	mrx_Åkts
+;
+
+171 
+ušt64_t
+ 
+	mtx_Åkts
+;
+
+172 
+ušt64_t
+ 
+	mrx_by‹s
+;
+
+173 
+ušt64_t
+ 
+	mtx_by‹s
+;
+
+174 
+ušt64_t
+ 
+	mrx_mis£d_pkts
+;
+
+176 
+ušt64_t
+ 
+	mrx_”r_pkts
+;
+
+177 
+ušt64_t
+ 
+	mrx_nobuf_çž
+;
+
+178 
+ušt64_t
+ 
+	mtx_çžed_pkts
+;
+
+179 
+ušt64_t
+ 
+	mq_rxpkts
+[
+IFM_QUEUE_STAT_CNTRS
+];
+
+180 
+ušt64_t
+ 
+	mq_txpkts
+[
+IFM_QUEUE_STAT_CNTRS
+];
+
+181 
+ušt64_t
+ 
+	mq_rx_by‹s
+[
+IFM_QUEUE_STAT_CNTRS
+];
+
+183 
+ušt64_t
+ 
+	mq_tx_by‹s
+[
+IFM_QUEUE_STAT_CNTRS
+];
+
+185 
+ušt64_t
+ 
+	mq_rx_pkt_drÝ
+[
+IFM_QUEUE_STAT_CNTRS
+];
+
+187 } 
+	t__¹e_ÿche_®igÃd
+ 
+	tif_¡©s
+;
+
+191 
+	sbÚd_pÜt
+ {
+
+192 
+ušt8_t
+ 
+	mbÚd_pÜtid
+;
+
+194 
+ušt8_t
+ 
+	msock‘_id
+;
+
+196 
+ušt8_t
+ 
+	mmode
+;
+
+198 
+ušt8_t
+ 
+	mxm™_pÞicy
+;
+
+200 
+ušt32_t
+ 
+	mš‹º®_ms
+;
+
+202 
+ušt32_t
+ 
+	mlšk_up_d–ay_ms
+;
+
+204 
+ušt32_t
+ 
+	mlšk_down_d–ay_ms
+;
+
+206 
+ušt8_t
+ 
+	m´im¬y
+;
+
+208 
+ušt8_t
+ 
+	m¦aves
+[
+RTE_MAX_ETHPORTS
+];
+
+210 
+	m¦ave_couÁ
+;
+
+212 
+ušt8_t
+ 
+	maùive_¦aves
+[
+RTE_MAX_ETHPORTS
+];
+
+214 
+	maùive_¦ave_couÁ
+;
+
+216 } 
+	g__¹e_ÿche_®igÃd
+;
+
+224 
+	s_l2_phy_š‹rçû_
+ {
+
+225 
+_l2_phy_š‹rçû_
+ *
+	mÃxt
+;
+
+226 
+ušt8_t
+ 
+	mpmdid
+;
+
+227 
+	mif_šdex
+;
+
+228 
+	miâame
+[
+IFM_IFNAME_LEN
+];
+
+229 
+ušt16_t
+ 
+	mmtu
+;
+
+230 
+ušt8_t
+ 
+	mmaÿddr
+[
+IFM_ETHER_ADDR_SIZE
+];
+
+231 
+ušt32_t
+ 
+	m´omisc
+;
+
+232 
+ušt32_t
+ 
+	mæags
+;
+
+234 
+ušt32_t
+ 
+	mlšk_¥“d
+;
+
+235 
+ušt16_t
+ 
+	mlšk_du¶ex
+:1;
+
+236 
+ušt16_t
+ 
+	mlšk_autÚeg
+:1;
+
+237 
+ušt16_t
+ 
+	mlšk_¡©us
+:1;
+
+238 
+ušt16_t
+ 
+	madmš_¡©us
+:1;
+
+240 
+¹e_mempoÞ
+ *
+	mmempoÞ
+;
+
+241 
+ušt32_t
+ 
+	mmš_rx_bufsize
+;
+
+242 
+ušt32_t
+ 
+	mmax_rx_pkŽ’
+;
+
+243 
+ušt16_t
+ 
+	mmax_rx_queues
+;
+
+244 
+ušt16_t
+ 
+	mmax_tx_queues
+;
+
+245 
+ušt64_t
+ 
+	mn_rxpkts
+;
+
+246 
+ušt64_t
+ 
+	mn_txpkts
+;
+
+247 
+if_¡©s
+ 
+	m¡©s
+;
+
+248 
+ušt16_t
+(*
+»Œ›ve_bulk_pkts
+è(
+	mušt8_t
+, 
+	mušt16_t
+, 
+	m¹e_mbuf
+ **);
+
+250 
+ušt16_t
+(*
+Œªsm™_bulk_pkts
+è(
+	m_l2_phy_š‹rçû_
+ *, 
+	m¹e_mbuf
+ **, 
+	mušt64_t
+);
+
+252 (*
+	mŒªsm™_sšgË_pkt
+è(
+	m_l2_phy_š‹rçû_
+ *, 
+	m¹e_mbuf
+ *);
+
+254 
+¹e_‘h_dev_tx_bufãr
+ *
+	mtx_bufãr
+;
+
+255 
+ušt64_t
+ 
+	mtx_buf_Ën
+;
+
+256 *
+	mv4_li¡
+;
+
+257 *
+	mv6_li¡
+;
+
+258 
+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_š‹rçû_t
+;
+
+266 
+	s_v4li¡_
+ {
+
+267 
+_v4li¡_
+ *
+	mÃxt
+;
+
+268 
+ušt32_t
+ 
+	maddr
+;
+
+269 
+	madd¾’
+;
+
+270 
+	mmtu
+;
+
+271 
+l2_phy_š‹rçû_t
+ *
+	mpÜt
+;
+
+273 } 
+	tv4li¡_t
+;
+
+279 
+	s_v6li¡_
+ {
+
+280 
+_v6li¡_
+ *
+	mÃxt
+;
+
+281 
+ušt8_t
+ 
+	maddr
+[
+IFM_IPV6_ADDR_SIZE
+];
+
+282 
+	madd¾’
+;
+
+283 
+	mmtu
+;
+
+284 
+l2_phy_š‹rçû_t
+ *
+	mpÜt
+;
+
+285 } 
+	tv6li¡_t
+;
+
+292 
+	s_ifm_þ›Á_
+ {
+
+293 
+ušt32_t
+ 
+	mþ›Áid
+;
+
+294 (*
+	mcb_lškupd©e
+è(
+	mušt8_t
+, );
+
+296 } 
+	t__¹e_ÿche_®igÃd
+ 
+	tifm_þ›Á
+;
+
+302 
+	s_š‹rçû_maš_
+ {
+
+303 
+l2_phy_š‹rçû_t
+ *
+	mpÜt_li¡
+[
+IFM_MAX_PORTARR_SZ
+];
+
+304 
+ušt32_t
+ 
+	mÅÜt_cÚfigu»d
+;
+
+305 
+ušt32_t
+ 
+	mÅÜt_štŸlized
+;
+
+306 
+ušt8_t
+ 
+	mnþ›Á
+;
+
+307 
+ifm_þ›Á
+ 
+	mif_þ›Á
+[
+IFM_MAX_CLIENT
+];
+
+308 } 
+	t__¹e_ÿche_®igÃd
+ 
+	tš‹rçû_maš_t
+;
+
+320 
+ifm_cÚfigu»_pÜts
+(
+pÜt_cÚfig_t
+ *
+pcÚfig
+);
+
+333 
+l2_phy_š‹rçû_t
+ *
+ifm_g‘_fœ¡_pÜt
+();
+
+347 
+l2_phy_š‹rçû_t
+ *
+ifm_g‘_Ãxt_pÜt
+(
+ušt8_t
+ 
+pÜt_id
+);
+
+359 
+l2_phy_š‹rçû_t
+ *
+ifm_g‘_pÜt
+(
+ušt8_t
+);
+
+371 
+l2_phy_š‹rçû_t
+ *
+ifm_g‘_pÜt_by_Çme
+(cÚ¡ *
+Çme
+);
+
+380 
+ifm_»move_pÜt_d‘ažs
+(
+ušt8_t
+ 
+pÜtid
+);
+
+390 
+ifm_add_pÜt_to_pÜt_li¡
+(
+l2_phy_š‹rçû_t
+ *);
+
+399 
+is_pÜt_li¡_nuÎ
+();
+
+412 
+ifm_pÜt_£tup
+(
+ušt8_t
+ 
+pÜt_id
+, 
+pÜt_cÚfig_t
+ *);
+
+421 
+ifm_š™
+();
+
+433 
+št32_t
+ 
+ifm_g‘_ÅÜts_š™Ÿlized
+();
+
+445 
+št32_t
+ 
+ifm_g‘_Çùive_pÜts
+();
+
+457 
+št32_t
+ 
+ifm_chk_pÜt_v4_’abËd
+(
+ušt8_t
+ 
+pÜt_id
+);
+
+469 
+št32_t
+ 
+ifm_chk_pÜt_v6_’abËd
+(
+ušt8_t
+ 
+pÜt_id
+);
+
+485 
+št16_t
+ 
+ifm_»move_v4_pÜt
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt32_t
+ 
+addr
+,
+
+486 
+ušt32_t
+ 
+add¾’
+);
+
+502 
+št16_t
+ 
+ifm_»move_v6_pÜt
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt32_t
+ 
+6addr
+,
+
+503 
+ušt32_t
+ 
+add¾’
+);
+
+519 
+št16_t
+ 
+ifm_add_v4_pÜt
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt32_t
+ 
+addr
+, ušt32_ˆ
+add¾’
+);
+
+535 
+št8_t
+ 
+ifm_add_v6_pÜt
+(
+ušt8_t
+ 
+pÜt_id
+, ušt8_ˆ
+6addr
+[], 
+ušt32_t
+ 
+add¾’
+);
+
+548 
+ifm_Œªsm™_sšgË_pkt
+(
+l2_phy_š‹rçû_t
+ *
+pÜt
+,
+
+549 
+¹e_mbuf
+ *
+tx_pkts
+);
+
+564 
+ušt16_t
+ 
+ifm_Œªsm™_bulk_pkts
+(
+l2_phy_š‹rçû_t
+ *, 
+¹e_mbuf
+ **
+tx_pkts
+,
+
+565 
+ušt64_t
+ 
+Åkts
+);
+
+580 
+ušt16_t
+ 
+ifm_»ûive_bulk_pkts
+(
+ušt8_t
+ 
+pÜt_id
+, ušt16_ˆ
+qid
+,
+
+581 
+¹e_mbuf
+ **
+rx_pkts
+);
+
+594 
+ifm_£t_pÜt_´omisc
+(
+ušt8_t
+ 
+pÜt_id
+, ušt8_ˆ
+’abË
+);
+
+607 
+ifm_£t_l2_š‹rçû_mtu
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt16_t
+ 
+mtu
+);
+
+620 
+ifm_upd©e_lšk¡©us
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt16_t
+ 
+lšk¡©us
+);
+
+633 
+ifm_»gi¡”_fÜ_lškupd©e
+(
+ušt32_t
+ 
+þ›Áid
+,
+
+634 (*
+cb_lškupd©e
+è(
+ušt8_t
+, ));
+
+650 
+	`lsi_ev’t_ÿÎback
+(
+ušt8_t
+ 
+pÜt_id
+, 
+¹e_‘h_ev’t_ty³
+ 
+ty³
+,
+
+651 *
+·¿m
+);
+
+656 
+	`´št_š‹rçû_d‘ažs
+();
+
+667 
+	`ifm_bÚd_pÜt_ü—‹
+(cÚ¡ *
+Çme
+, 
+mode
+, 
+pÜt_cÚfig_t
+ *
+pÜtcÚf
+);
+
+674 
+	`ifm_bÚd_pÜt_d–‘e
+(cÚ¡ *
+Çme
+);
+
+683 
+	`ifm_add_¦ave_pÜt
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, ušt8_ˆ
+¦ave_pÜt_id
+);
+
+692 
+	`ifm_»move_¦ave_pÜt
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, ušt8_ˆ
+¦ave_pÜt_id
+);
+
+701 
+	`£t_bÚd_mode
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, ušt8_ˆ
+mode
+);
+
+708 
+	`g‘_bÚd_mode
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+);
+
+717 
+	`£t_bÚd_´im¬y
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, ušt8_ˆ
+¦ave_pÜt_id
+);
+
+724 
+	`g‘_bÚd_´im¬y_pÜt
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+);
+
+731 
+	`g‘_bÚd_¦ave_couÁ
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+);
+
+738 
+	`g‘_bÚd_aùive_¦ave_couÁ
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+);
+
+747 
+	`g‘_bÚd_¦aves
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, ušt8_ˆ
+¦aves
+[
+RTE_MAX_ETHPORTS
+]);
+
+756 
+	`g‘_bÚd_aùive_¦aves
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+,
+
+757 
+ušt8_t
+ 
+¦aves
+[
+RTE_MAX_ETHPORTS
+]);
+
+766 
+	`£t_bÚd_mac_add»ss
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, 
+‘h”_addr
+ *
+mac_addr
+);
+
+773 
+	`»£t_bÚd_mac_addr
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+);
+
+774 
+	`g‘_bÚd_mac
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, 
+‘h”_addr
+ *
+maÿddr
+);
+
+783 
+	`£t_bÚd_xm™pÞicy
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, ušt8_ˆ
+pÞicy
+);
+
+790 
+	`g‘_bÚd_xm™pÞicy
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+);
+
+799 
+	`£t_bÚd_lšk_mÚt™Ü_äequ’cy
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+,
+
+800 
+ušt32_t
+ 
+š‹º®_ms
+);
+
+807 
+	`g‘_bÚd_lšk_mڙÜ_äequ’cy
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+);
+
+816 
+	`£t_bÚd_lškdown_d–ay
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, 
+ušt32_t
+ 
+d–ay_ms
+);
+
+823 
+	`g‘_bÚd_lšk_down_d–ay
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+);
+
+832 
+	`£t_bÚd_lškup_d–ay
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+, 
+ušt32_t
+ 
+d–ay_ms
+);
+
+839 
+	`g‘_bÚd_lšk_up_d–ay
+(
+ušt8_t
+ 
+bÚded_pÜt_id
+);
+
+845 
+	`´št_¡©s
+();
+
+854 
+	`ifm_g‘_pÜt_šfo
+(
+ušt8_t
+ 
+pÜt_id
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt_šfo
+);
+
+863 
+	`ifm_g‘_Ãxt_pÜt_šfo
+(
+ušt8_t
+ 
+pÜt_id
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt_šfo
+);
+
+872 
+	`cÚfig_ifm_debug
+(
+dbg
+, 
+æag
+);
+
+	@VIL/l2l3_stack/l2_proto.c
+
+22 
+	~"l2_´Ùo.h
+"
+
+24 
+´Ùo_·ck‘_ty³
+ *
+	g´Ùo_li¡
+[3];
+
+29 
+	$li¡_add_ty³
+(
+ušt16_t
+ 
+ty³
+,
+
+30 (*
+func
+è(
+¹e_mbuf
+ **, 
+ušt16_t
+, 
+ušt64_t
+,
+
+31 
+l2_phy_š‹rçû_t
+ *))
+
+33 ià(
+ty³
+ =ð
+ETHER_TYPE_IPv4
+) {
+
+34 
+´Ùo_li¡
+[
+IPv4_VAL
+] =
+
+35 
+	`¹e_m®loc
+(
+NULL
+, (
+´Ùo_·ck‘_ty³
+),
+
+36 
+RTE_CACHE_LINE_SIZE
+);
+
+37 
+´Ùo_li¡
+[
+IPv4_VAL
+]->
+ty³
+ =ype;
+
+38 
+´Ùo_li¡
+[
+IPv4_VAL
+]->
+func
+ = func;
+
+41 ià(
+ty³
+ =ð
+ETHER_TYPE_ARP
+) {
+
+42 
+´Ùo_li¡
+[
+ARP_VAL
+] =
+
+43 
+	`¹e_m®loc
+(
+NULL
+, (
+´Ùo_·ck‘_ty³
+),
+
+44 
+RTE_CACHE_LINE_SIZE
+);
+
+45 
+´Ùo_li¡
+[
+ARP_VAL
+]->
+ty³
+ =ype;
+
+46 
+´Ùo_li¡
+[
+ARP_VAL
+]->
+func
+ = func;
+
+47 } ià(
+ty³
+ =ð
+ETHER_TYPE_IPv6
+) {
+
+48 
+´Ùo_li¡
+[
+IPv6_VAL
+] =
+
+49 
+	`¹e_m®loc
+(
+NULL
+, (
+´Ùo_·ck‘_ty³
+),
+
+50 
+RTE_CACHE_LINE_SIZE
+);
+
+51 
+´Ùo_li¡
+[
+IPv6_VAL
+]->
+ty³
+ =ype;
+
+52 
+´Ùo_li¡
+[
+IPv6_VAL
+]->
+func
+ = func;
+
+55 
+	}
+}
+
+64 
+	$l2_check_mac
+(
+¹e_mbuf
+ *
+m
+[
+IFM_BURST_SIZE
+], 
+l2_phy_š‹rçû_t
+ *
+pÜt
+,
+
+65 
+ušt8_t
+ 
+i
+, 
+ušt64_t
+ *
+pkts_mask
+, ušt64_ˆ*
+¬p_pkts_mask
+,
+
+66 
+ušt64_t
+ *
+v4_pkts_mask
+, ušt64_ˆ*
+v6_pkts_mask
+)
+
+68 
+‘h”_hdr
+ *
+‘h
+=
+NULL
+;
+
+69 
+ušt16_t
+ 
+§me_mac
+=0;
+
+70 
+ušt16_t
+ 
+‘hty³
+ = 0;
+
+72 ià(
+m
+[
+i
+] !ð
+NULL
+) {
+
+73 
+‘h
+ = 
+	`¹e_pktmbuf_mtod
+(
+m
+[
+i
+], 
+‘h”_hdr
+ *);
+
+74 if(
+‘h
+)
+
+75 
+‘hty³
+ = 
+	`¹e_be_to_ýu_16
+(
+‘h
+->
+‘h”_ty³
+);
+
+76 ià(
+‘h
+ =ð
+NULL
+) {
+
+78 
+	`´štf
+("l2_check_mac: Ethernet Dest Addr NULL !!!\n");
+
+81 
+‘hty³
+ = 
+	`¹e_be_to_ýu_16
+(
+‘h
+->
+‘h”_ty³
+);
+
+82 #ià
+L2_PROTO_DBG
+
+
+83 
+	`´štf
+("%s => mbuf…kt dest mac‡ddr: %x:%x:%x:%x:%x:%x\n",
+
+84 
+__FUNCTION__
+, 
+‘h
+->
+d_addr
+.
+addr_by‹s
+[0],
+
+85 
+‘h
+->
+d_addr
+.
+addr_by‹s
+[1],ƒth->d_addr.addr_bytes[2],
+
+86 
+‘h
+->
+d_addr
+.
+addr_by‹s
+[3],ƒth->d_addr.addr_bytes[4],
+
+87 
+‘h
+->
+d_addr
+.
+addr_by‹s
+[5]);
+
+88 
+	`´štf
+("% =>…܈maøaddr: %x:%x:%x:%x:%x:%x\n", 
+__FUNCTION__
+,
+
+89 
+pÜt
+->
+maÿddr
+[0],…ort->macaddr[1],…ort->macaddr[2],
+
+90 
+pÜt
+->
+maÿddr
+[3],…ort->macaddr[4],…ort->macaddr[5]);
+
+94 
+§me_mac
+ =
+
+95 (
+is_§me_‘h”_addr
+
+
+96 (&
+‘h
+->
+d_addr
+, (
+‘h”_addr
+ *)
+pÜt
+->
+maÿddr
+)
+
+98 ((
+is_brßdÿ¡_‘h”_addr
+
+
+99 ((
+‘h”_addr
+ *)&
+‘h
+->
+d_addr
+)
+
+100 && (
+‘hty³
+ =ð
+ETHER_TYPE_ARP
+)))
+
+101 || (
+‘hty³
+ =ð
+ETHER_TYPE_IPv6
+
+
+102 && 
+‘h
+->
+d_addr
+.
+addr_by‹s
+[0] == 0x33
+
+103 && 
+‘h
+->
+d_addr
+.
+addr_by‹s
+[1] == 0x33));
+
+105 ià(!
+§me_mac
+) {
+
+106 
+ušt64_t
+ 
+‹mp_mask
+ = 1LLU << 
+i
+;
+
+107 *
+pkts_mask
+ ^ð
+‹mp_mask
+;
+
+108 
+	`¹e_pktmbuf_ä“
+(
+m
+[
+i
+]);
+
+109 
+m
+[
+i
+] = 
+NULL
+;
+
+110 } ià((
+‘hty³
+ =ð
+ETHER_TYPE_IPv4
+è&& 
+§me_mac
+) {
+
+111 
+ušt64_t
+ 
+‹mp_mask
+ = 1LLU << 
+i
+;
+
+112 *
+v4_pkts_mask
+ ^ð
+‹mp_mask
+;
+
+113 } ià((
+‘hty³
+ =ð
+ETHER_TYPE_ARP
+è&& 
+§me_mac
+) {
+
+114 
+ušt64_t
+ 
+‹mp_mask
+ = 1LLU << 
+i
+;
+
+115 *
+¬p_pkts_mask
+ ^ð
+‹mp_mask
+;
+
+116 } ià((
+‘hty³
+ =ð
+ETHER_TYPE_IPv6
+è&& 
+§me_mac
+) {
+
+117 
+ušt64_t
+ 
+‹mp_mask
+ = 1LLU << 
+i
+;
+
+118 *
+v6_pkts_mask
+ ^ð
+‹mp_mask
+;
+
+121 
+	`´štf
+("\n%s:‡½_pkts_mask = %" 
+PRIu64
+ ", ipv4_pkts_mask = %" PRIu64
+
+122 ", ipv6_pkts_mask =%" 
+PRIu64
+ ",…kt-type = %x, sam_mac = %d\n",
+
+123 
+__FUNCTION__
+, *
+¬p_pkts_mask
+, *
+v4_pkts_mask
+, *
+v6_pkts_mask
+,
+
+124 
+‘hty³
+, 
+§me_mac
+);
+
+125 
+	}
+}
+
+128 
+	$´ÙocÞ_hªdËr_»cv
+(
+¹e_mbuf
+ **
+pkts_bur¡
+, 
+ušt16_t
+ 
+nb_rx
+,
+
+129 
+l2_phy_š‹rçû_t
+ *
+pÜt
+)
+
+131 
+ušt8_t
+ 
+i
+;
+
+132 
+ušt64_t
+ 
+pkts_mask
+ = 0;
+
+133 
+ušt64_t
+ 
+¬p_pkts_mask
+ = 0;
+
+134 
+ušt64_t
+ 
+v4_pkts_mask
+ = 0;
+
+135 
+ušt64_t
+ 
+v6_pkts_mask
+ = 0;
+
+140 
+i
+ = 0; i < 
+nb_rx
+; i++) {
+
+141 
+	`l2_check_mac
+(
+pkts_bur¡
+, 
+pÜt
+, 
+i
+, &
+pkts_mask
+, &
+¬p_pkts_mask
+,
+
+142 &
+v4_pkts_mask
+, &
+v6_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 
+´štf
+
+
+151 ià(
+v4_pkts_mask
+) {
+
+152 
+´štf
+
+
+154 
+	`´štf
+("===òb_rx:%u, ipv4_pkts_mask: %lu\n\n", 
+nb_rx
+,
+
+155 
+v4_pkts_mask
+);
+
+156 
+´Ùo_li¡
+[
+IPv4_VAL
+]->
+	`func
+(
+pkts_bur¡
+, 
+nb_rx
+,
+
+157 
+v4_pkts_mask
+, 
+pÜt
+);
+
+159 ià(
+v6_pkts_mask
+) {
+
+160 
+´štf
+
+
+162 
+	`´štf
+("===òb_rx:%u, ipv6_pkts_mask: %lu\n\n", 
+nb_rx
+,
+
+163 
+v6_pkts_mask
+);
+
+164 
+´Ùo_li¡
+[
+IPv6_VAL
+]->
+	`func
+(
+pkts_bur¡
+, 
+nb_rx
+,
+
+165 
+v6_pkts_mask
+, 
+pÜt
+);
+
+168 
+	}
+}
+
+171 
+qid
+) {
+
+175 
+´štf
+
+
+177 
+cur
+->
+ty³
+ !ð
+ETHER_TYPE_ARP
+ && cu¸!ð
+NULL
+) {
+
+178 
+cur
+ = cur->
+Ãxt
+;
+
+180 ià(
+cur
+ !ð
+NULL
+) {
+
+182 
+´štf
+
+
+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 
+cur
+->
+ty³
+ !ð
+ETHER_TYPE_IPv4
+ && cu¸!ð
+NULL
+) {
+
+195 
+cur
+ = cur->
+Ãxt
+;
+
+197 ià(
+cur
+ !ð
+NULL
+) {
+
+200 
+cur
+->
+	`func
+(
+pkts_bur¡
+, 
+nb_rx
+, 
+v4_pkts_mask
+, 
+pÜtid
+);
+
+205 
+´Ùo_li¡
+[
+IPv4_VAL
+]->
+	`func
+(
+pkts_bur¡
+, 
+nb_rx
+, 
+v4_pkts_mask
+,
+
+206 
+pÜtid
+);
+
+223 
+	`¹e_ex™
+(
+EXIT_FAILURE
+, "Ethertype‚ot found \n");
+
+226 
+	}
+}
+
+	@VIL/l2l3_stack/l2_proto.h
+
+26 #iâdeà
+L2_PROTO_H
+
+
+27 
+	#L2_PROTO_H
+
+
+	)
+
+29 
+	~<¡dio.h
+>
+
+30 
+	~<¡dlib.h
+>
+
+31 
+	~<¡ršg.h
+>
+
+32 
+	~<¡dšt.h
+>
+
+33 
+	~<š‰y³s.h
+>
+
+34 
+	~<sys/ty³s.h
+>
+
+35 
+	~<sys/queue.h
+>
+
+36 
+	~<Ãtš‘/š.h
+>
+
+37 
+	~<£tjmp.h
+>
+
+38 
+	~<¡d¬g.h
+>
+
+39 
+	~<ùy³.h
+>
+
+40 
+	~<Ӽo.h
+>
+
+41 
+	~<g‘Ýt.h
+>
+
+42 
+	~<sigÇl.h
+>
+
+43 
+	~<¡dboÞ.h
+>
+
+45 
+	~<¹e_commÚ.h
+>
+
+46 
+	~<¹e_log.h
+>
+
+47 
+	~<¹e_m®loc.h
+>
+
+48 
+	~<¹e_memÜy.h
+>
+
+49 
+	~<¹e_memýy.h
+>
+
+50 
+	~<¹e_memzÚe.h
+>
+
+51 
+	~<¹e_—l.h
+>
+
+52 
+	~<¹e_³r_lcÜe.h
+>
+
+53 
+	~<¹e_Ïunch.h
+>
+
+54 
+	~<¹e_©omic.h
+>
+
+55 
+	~<¹e_cyþes.h
+>
+
+56 
+	~<¹e_´eãtch.h
+>
+
+57 
+	~<¹e_lcÜe.h
+>
+
+58 
+	~<¹e_³r_lcÜe.h
+>
+
+59 
+	~<¹e_b¿nch_´ediùiÚ.h
+>
+
+60 
+	~<¹e_š‹¼u±s.h
+>
+
+61 
+	~<¹e_pci.h
+>
+
+62 
+	~<¹e_¿ndom.h
+>
+
+63 
+	~<¹e_debug.h
+>
+
+64 
+	~<¹e_‘h”.h
+>
+
+65 
+	~<¹e_‘hdev.h
+>
+
+66 
+	~<¹e_.h
+>
+
+67 
+	~<¹e_ršg.h
+>
+
+68 
+	~<¹e_mempoÞ.h
+>
+
+69 
+	~<¹e_mbuf.h
+>
+
+70 
+	~<¹e_‘h_ù¾.h
+>
+
+71 
+	~<š‹rçû.h
+>
+
+74 
+	#IPv4_VAL
+ 0
+
+	)
+
+75 
+	#ARP_VAL
+ 1
+
+	)
+
+76 
+	#IPv6_VAL
+ 2
+
+	)
+
+79 
+	#L2_PROTO_DBG
+ 1
+
+	)
+
+84 
+	s´Ùo_·ck‘_ty³
+ {
+
+85 
+ušt16_t
+ 
+	mty³
+;
+
+86 (*
+	mfunc
+è(
+¹e_mbuf
+ **
+	mm
+, 
+ušt16_t
+ 
+	mnb_pkts
+, 
+ušt64_t
+ 
+	mpkt_mask
+, 
+l2_phy_š‹rçû_t
+ *
+	mpÜt
+);
+
+87 } 
+	g__¹e_ÿche_®igÃd
+;
+
+98 
+li¡_add_ty³
+(
+ušt16_t
+ 
+ty³
+,
+
+99 (*
+func
+è(
+¹e_mbuf
+ **, 
+ušt16_t
+, 
+ušt64_t
+,
+
+100 
+l2_phy_š‹rçû_t
+ *));
+
+130 
+	`l2_check_mac
+(
+¹e_mbuf
+ *
+m
+[
+IFM_BURST_SIZE
+], 
+l2_phy_š‹rçû_t
+ *
+pÜt
+,
+
+131 
+ušt8_t
+ 
+pos
+, 
+ušt64_t
+ *
+pkts_mask
+, ušt64_ˆ*
+¬p_pkts_mask
+,
+
+132 
+ušt64_t
+ *
+v4_pkts_mask
+, ušt64_ˆ*
+v6_pkts_mask
+);
+
+147 
+	`´ÙocÞ_hªdËr_»cv
+(
+¹e_mbuf
+ *
+m
+[
+IFM_BURST_SIZE
+], 
+ušt16_t
+ 
+nb_rx
+,
+
+148 
+l2_phy_š‹rçû_t
+ *
+pÜt
+);
+
+	@VIL/l2l3_stack/l3fwd_common.h
+
+22 #iâdeà
+L3FWD_COMMON_H
+
+
+23 
+	#L3FWD_COMMON_H
+
+
+	)
+
+26 
+	~<¡dio.h
+>
+
+27 
+	~<¡dlib.h
+>
+
+28 
+	~<¡dšt.h
+>
+
+29 
+	~<š‰y³s.h
+>
+
+30 
+	~<sys/ty³s.h
+>
+
+31 
+	~<sys/queue.h
+>
+
+32 
+	~<sys/·¿m.h
+>
+
+33 
+	~<¡ršg.h
+>
+
+34 
+	~<¡d¬g.h
+>
+
+35 
+	~<Ӽo.h
+>
+
+36 
+	~<sigÇl.h
+>
+
+37 
+	~<¡dboÞ.h
+>
+
+38 
+	~<g‘Ýt.h
+>
+
+39 
+	~<uni¡d.h
+>
+
+42 
+	~<¹e_commÚ.h
+>
+
+43 
+	~<¹e_hash.h
+>
+
+44 
+	~<¹e_jhash.h
+>
+
+45 
+	~<¹e_pÜt.h
+>
+
+46 
+	~<¹e_veù.h
+>
+
+47 
+	~<¹e_by‹Üd”.h
+>
+
+48 
+	~<¹e_log.h
+>
+
+49 
+	~<¹e_memÜy.h
+>
+
+50 
+	~<¹e_memýy.h
+>
+
+51 
+	~<¹e_memzÚe.h
+>
+
+52 
+	~<¹e_—l.h
+>
+
+53 
+	~<¹e_³r_lcÜe.h
+>
+
+54 
+	~<¹e_Ïunch.h
+>
+
+55 
+	~<¹e_©omic.h
+>
+
+56 
+	~<¹e_cyþes.h
+>
+
+57 
+	~<¹e_´eãtch.h
+>
+
+58 
+	~<¹e_lcÜe.h
+>
+
+59 
+	~<¹e_³r_lcÜe.h
+>
+
+60 
+	~<¹e_b¿nch_´ediùiÚ.h
+>
+
+61 
+	~<¹e_š‹¼u±s.h
+>
+
+62 
+	~<¹e_pci.h
+>
+
+63 
+	~<¹e_¿ndom.h
+>
+
+64 
+	~<¹e_debug.h
+>
+
+65 
+	~<¹e_‘h”.h
+>
+
+66 
+	~<¹e_‘hdev.h
+>
+
+67 
+	~<¹e_ršg.h
+>
+
+68 
+	~<¹e_mempoÞ.h
+>
+
+69 
+	~<¹e_mbuf.h
+>
+
+70 
+	~<¹e_.h
+>
+
+71 
+	~<¹e_tý.h
+>
+
+72 
+	~<¹e_udp.h
+>
+
+73 
+	~<¹e_bË_hash.h
+>
+
+74 
+	~<¹e_bË.h
+>
+
+75 
+	~<¹e_bË_Ím.h
+>
+
+76 
+	~<¹e_¡ršg_âs.h
+>
+
+77 
+	~<¹e_ýuæags.h
+>
+
+78 
+	~<l3fwd_Ím4.h
+>
+
+79 
+	~<l3fwd_Ím6.h
+>
+
+80 
+	~<¹e_bË_Ím_v6.h
+>
+
+85 
+	#MAX_ROUTES
+ 4
+
+	)
+
+86 
+	#L3FWD_DEBUG
+ 1
+
+	)
+
+87 
+	#MULTIPATH_FEAT
+ 1
+
+	)
+
+94 
+l3fwd_š™
+();
+
+99 
+pÝuϋ_Ím4_bË_rou‹s
+();
+
+104 
+pÝuϋ_Ím6_bË_rou‹s
+();
+
+109 
+pÝuϋ_Ím_rou‹s
+();
+
+	@VIL/l2l3_stack/l3fwd_lpm4.c
+
+17 
+	~"l3fwd_commÚ.h
+"
+
+18 
+	~"š‹rçû.h
+"
+
+19 
+	~"l2_´Ùo.h
+"
+
+20 
+	~"l3fwd_Ím4.h
+"
+
+21 
+	~"l3fwd_Ím6.h
+"
+
+22 
+	~"lib_¬p.h
+"
+
+23 
+	~"lib_icmpv6.h
+"
+
+24 
+	~<š‰y³s.h
+>
+
+29 *
+	gÍm4_bË
+;
+
+32 
+¹e_hash
+ *
+	gl2_adj_hash_hªdË
+;
+
+33 
+¹e_hash
+ *
+	gfib_·th_hash_hªdË
+;
+
+35 
+l3_¡©s_t
+ 
+	g¡©s
+;
+
+38 
+ušt8_t
+ 
+	gnh_lšks
+[
+MAX_SUPPORTED_FIB_PATHS
+][
+HASH_BUCKET_SIZE
+] =
+
+87 
+	#META_DATA_OFFSET
+ 128
+
+	)
+
+89 
+	#RTE_PKTMBUF_HEADROOM
+ 128
+
+	)
+
+90 
+	#ETHERNET_START
+ (
+META_DATA_OFFSET
+ + 
+RTE_PKTMBUF_HEADROOM
+)
+
+	)
+
+91 
+	#ETH_HDR_SIZE
+ 14
+
+	)
+
+92 
+	#IP_START
+ (
+ETHERNET_START
+ + 
+ETH_HDR_SIZE
+)
+
+	)
+
+93 
+	#TCP_START
+ (
+IP_START
+ + 20)
+
+	)
+
+95 
+	$´št_pkt
+(
+¹e_mbuf
+ *
+pkt
+)
+
+97 
+i
+;
+
+98 
+size
+ = 14;
+
+99 
+ušt8_t
+ *
+rd
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+, 
+ETHERNET_START
+);
+
+101 
+	`´štf
+("Meta-data:\n");
+
+102 
+i
+ = 0; i < 
+size
+; i++) {
+
+103 
+	`´štf
+("%02x ", 
+rd
+[
+i
+]);
+
+104 ià((
+i
+ & 3) == 3)
+
+105 
+	`´štf
+("\n");
+
+107 
+	`´štf
+("\n");
+
+108 
+	`´štf
+("IP‡nd TCP/UDP headers:\n");
+
+109 
+rd
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+, 
+IP_START
+);
+
+110 
+i
+ = 0; i < 40; i++) {
+
+111 
+	`´štf
+("%02x ", 
+rd
+[
+i
+]);
+
+112 ià((
+i
+ & 3) == 3)
+
+113 
+	`´štf
+("\n");
+
+116 
+	}
+}
+
+118 
+_´ÙocÞ_ty³
+ *
+	g´Ùo_ty³
+[2];
+
+119 
+	$Ím_š™
+()
+
+123 
+¹e_bË_Ím_·¿ms
+ 
+Ím_·¿ms
+ = {
+
+124 .
+Çme
+ = "LPMv4",
+
+125 .
+n_ruËs
+ = 
+IPV4_L3FWD_LPM_MAX_RULES
+,
+
+126 .
+numb”_tbl8s
+ = 
+IPV4_L3FWD_LPM_NUMBER_TBL8S
+,
+
+127 .
+æags
+ = 0,
+
+128 .
+’Œy_unique_size
+ = (
+fib_šfo
+),
+
+129 .
+off£t
+ = 128,
+
+133 
+Ím4_bË
+ =
+
+134 
+¹e_bË_Ím_Ýs
+.
+	`f_ü—‹
+(&
+Ím_·¿ms
+, 
+	`¹e_sock‘_id
+(),
+
+135 (
+fib_šfo
+));
+
+136 ià(
+Ím4_bË
+ =ð
+NULL
+) {
+
+137 
+	`´štf
+("Failedo create LPM IPV4able\n");
+
+142 
+¹e_hash_·¿m‘”s
+ 
+l2_adj_v4_·¿ms
+ = {
+
+143 .
+Çme
+ = "l2_ADJ_HASH",
+
+144 .
+’Œ›s
+ = 64,
+
+145 .
+key_Ën
+ = (
+l2_adj_key_v4
+),
+
+146 .
+hash_func
+ = 
+¹e_jhash
+,
+
+147 .
+hash_func_š™_v®
+ = 0,
+
+151 
+l2_adj_hash_hªdË
+ = 
+	`¹e_hash_ü—‹
+(&
+l2_adj_v4_·¿ms
+);
+
+153 ià(
+l2_adj_hash_hªdË
+ =ð
+NULL
+) {
+
+154 
+	`´štf
+("L2 ADJ„te_hash_create failed\n");
+
+157 
+	`´štf
+("l2_adj_hash_hªdË %p\n\n", (*)
+l2_adj_hash_hªdË
+);
+
+161 
+¹e_hash_·¿m‘”s
+ 
+fib_·th_v4_·¿ms
+ = {
+
+162 .
+Çme
+ = "FIB_PATH_HASH",
+
+163 .
+’Œ›s
+ = 64,
+
+164 .
+key_Ën
+ = (
+fib_·th_key_v4
+),
+
+165 .
+hash_func
+ = 
+¹e_jhash
+,
+
+166 .
+hash_func_š™_v®
+ = 0,
+
+170 
+fib_·th_hash_hªdË
+ = 
+	`¹e_hash_ü—‹
+(&
+fib_·th_v4_·¿ms
+);
+
+172 ià(
+fib_·th_hash_hªdË
+ =ð
+NULL
+) {
+
+173 
+	`´štf
+("FIB…ath„te_hash_create failed\n");
+
+177 
+	}
+}
+
+179 
+	$Ím4_bË_rou‹_add
+(
+routšg_šfo
+ *
+d©a
+)
+
+182 
+routšg_šfo
+ *
+fib
+ = 
+d©a
+;
+
+183 
+¹e_bË_Ím_key
+ 
+Ím_key
+ = {
+
+184 .
+
+ = 
+fib
+->
+d¡__addr
+,
+
+185 .
+d•th
+ = 
+fib
+->depth,
+
+187 
+ušt8_t
+ 
+i
+;
+
+188 
+TÙ®_rou‹_couÁ
+;
+
+189 
+fib_šfo
+ 
+’Œy
+;
+
+190 
+’Œy
+.
+d¡__addr
+ = 
+	`¹e_bsw­32
+(
+fib
+->dst_ip_addr);
+
+191 
+’Œy
+.
+d•th
+ = 
+fib
+->depth;
+
+192 
+’Œy
+.
+fib_nh_size
+ = 
+fib
+->fib_nh_size;
+
+194 #ià
+MULTIPATH_FEAT
+
+
+195 ià(
+’Œy
+.
+fib_nh_size
+ =ð0 ||ƒÁry.fib_nh_siz> 
+MAX_FIB_PATHS
+)
+
+197 ià(
+’Œy
+.
+fib_nh_size
+ != 1)
+
+200 
+	`´štf
+("Route can't be configured!!,ƒntry.fib_nh_size = %d\n",
+
+201 
+’Œy
+.
+fib_nh_size
+);
+
+205 #ià
+MULTIPATH_FEAT
+
+
+206 
+i
+ = 0; i < 
+’Œy
+.
+fib_nh_size
+; i++)
+
+208 
+i
+ = 0; i < 1; i++)
+
+211 
+fib_·th
+ *
+fib_·th_addr
+ = 
+NULL
+;
+
+213 
+fib_·th_addr
+ =
+
+214 
+	`pÝuϋ_fib_·th
+(
+fib
+->
+nh__addr
+[
+i
+], fib->
+out_pÜt
+[i]);
+
+215 ià(
+fib_·th_addr
+) {
+
+217 
+’Œy
+.
+·th
+[
+i
+] = 
+fib_·th_addr
+;
+
+218 
+	`´štf
+("Fib info forhe Dest IP");
+
+219 
+	`´štf
+(" : %" 
+PRIu32
+ ".%" PRIu32 ".%" PRIu32 ".%" PRIu32
+
+220 "/%" 
+PRIu8
+
+
+222 (
+fib
+->
+d¡__addr
+ & 0xFF000000) >> 24,
+
+223 (
+fib
+->
+d¡__addr
+ & 0x00FF0000) >> 16,
+
+224 (
+fib
+->
+d¡__addr
+ & 0x0000FF00) >> 8,
+
+225 (
+fib
+->
+d¡__addr
+ & 0x000000FF), fib->
+d•th
+,
+
+226 
+fib_·th_addr
+,
+
+227 (*)
+’Œy
+.
+·th
+[
+i
+]->
+l2_adj_±r
+);
+
+229 
+	`´štf
+("Fib infØf܁hDe¡ IP :\
+%" 
+PRIu32
+ ".%" PRIu32 ".%" PRIu32 ".%" PRIu32 "/%" 
+PRIu8
+ " => fib_·th Addr: NULL \n", (
+fib
+->
+d¡__addr
+ & 0xFF000000è>> 24, (fib->d¡__add¸& 0x00FF0000è>> 16, (fib->d¡__add¸& 0x0000FF00è>> 8, (fib->d¡__add¸& 0x000000FF), fib->
+d•th
+);
+
+231 
+’Œy
+.
+·th
+[
+i
+] = 
+NULL
+;
+
+235 
+key_found
+, 
+»t
+;
+
+236 *
+’Œy_±r
+;
+
+237 
+»t
+ =
+
+238 
+¹e_bË_Ím_Ýs
+.
+	`f_add
+(
+Ím4_bË
+, (*)&
+Ím_key
+, &
+’Œy
+,
+
+239 &
+key_found
+, &
+’Œy_±r
+);
+
+241 ià(
+»t
+ != 0) {
+
+242 
+	`´štf
+("Failedo Add IP„oute\n");
+
+245 
+TÙ®_rou‹_couÁ
+++;
+
+246 
+	`´štf
+("TÙ® Rou‹d Added : %u, Key_found: %d\n", 
+TÙ®_rou‹_couÁ
+,
+
+247 
+key_found
+);
+
+248 
+	`´štf
+("Adding Routeo LPMable...\n");
+
+250 
+	`´štf
+("Iterate with Cuckoo Hashable\n");
+
+251 
+	`™”©e_cuckoo_hash_bË
+();
+
+253 
+	}
+}
+
+255 
+	$Ím4_bË_rou‹_d–‘e
+(
+ušt32_t
+ 
+d¡_
+, 
+ušt8_t
+ 
+d•th
+)
+
+258 
+¹e_bË_Ím_key
+ 
+Ím_key
+ = {
+
+259 .
+
+ = 
+d¡_
+,
+
+260 .
+d•th
+ = depth,
+
+263 
+key_found
+, 
+»t
+;
+
+264 *
+’Œy
+ = 
+NULL
+;
+
+266 
+’Œy
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 512, 
+RTE_CACHE_LINE_SIZE
+);
+
+269 
+»t
+ =
+
+270 
+¹e_bË_Ím_Ýs
+.
+	`f_d–‘e
+(
+Ím4_bË
+, &
+Ím_key
+, &
+key_found
+, 
+’Œy
+);
+
+272 ià(
+»t
+) {
+
+273 
+	`´štf
+("Failedo Delete IP„oute from LPMv4able\n");
+
+277 
+	`´štf
+("Deleted„oute from LPMable (IPv4 Address = %"
+
+278 
+PRIu32
+ ".%" PRIu32 ".%" PRIu32 ".%" PRIu32
+
+279 "/%u , key_found = %d\n", (
+Ím_key
+.
+
+ & 0xFF000000) >> 24,
+
+280 (
+Ím_key
+.
+
+ & 0x00FF0000) >> 16, (lpm_key.ip & 0x0000FF00) >> 8,
+
+281 (
+Ím_key
+.
+
+ & 0x000000FF),†pm_key.
+d•th
+, 
+key_found
+);
+
+284 
+	`»move_fib_l2_adj_’Œy
+(
+’Œy
+);
+
+285 
+	`¹e_ä“
+(
+’Œy
+);
+
+286 
+	`´štf
+("Iterate with Cuckoo Hashable\n");
+
+287 
+	`™”©e_cuckoo_hash_bË
+();
+
+289 
+	}
+}
+
+292 
+	$Ím4_bË_lookup
+(
+¹e_mbuf
+ **
+pkts_bur¡
+, 
+ušt16_t
+ 
+nb_pkts
+,
+
+293 
+ušt64_t
+ 
+pkts_mask
+,
+
+294 
+l2_phy_š‹rçû_t
+ *
+pÜt_±r
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+],
+
+295 
+ušt64_t
+ *
+h™_mask
+)
+
+298 
+routšg_bË_’Œy
+ *
+v4_’Œ›s
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+299 
+ušt64_t
+ 
+lookup_h™_mask_v4
+ = 0;
+
+300 
+¡©us
+;
+
+301 
+ušt64_t
+ 
+pkts_key_mask
+ = 
+pkts_mask
+;
+
+302 
+ušt64_t
+ 
+lookup_miss_mask_v4
+ = 
+pkts_mask
+;
+
+304 
+ušt64_t
+ 
+£Á_couÁ
+;
+
+305 
+ušt64_t
+ 
+rcvd_couÁ
+;
+
+306 
+rcvd_couÁ
+ +ð
+nb_pkts
+;
+
+307 ià(
+L3FWD_DEBUG
+) {
+
+308 
+´štf
+
+
+310 
+nb_pkts
+, 
+rcvd_couÁ
+, (*)
+pkts_mask
+);
+
+312 
+ušt32_t
+ 
+d¡_addr_off£t
+ =
+
+313 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_DST_ADR_OFST
+;
+
+315 ; 
+pkts_key_mask
+;) {
+
+317 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+pkts_key_mask
+);
+
+318 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+319 
+pkts_key_mask
+ &ð~
+pkt_mask
+;
+
+320 
+¹e_mbuf
+ *
+mbuf
+ = 
+pkts_bur¡
+[
+pos
+];
+
+321 
+ušt32_t
+ *
+Ím_key
+ = 
+NULL
+;
+
+322 
+ušt32_t
+ *
+d¡_addr
+ = 
+NULL
+;
+
+323 
+Ím_key
+ = (
+ušt32_t
+ *è
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+mbuf
+, 128);
+
+324 
+d¡_addr
+ =
+
+325 (
+ušt32_t
+ *è
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+mbuf
+,
+
+326 
+d¡_addr_off£t
+);
+
+327 *
+Ím_key
+ = *
+d¡_addr
+;
+
+328 ià(
+L3FWD_DEBUG
+) {
+
+330 
+	`´štf
+("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 
+	`´štf
+("\nIPV4 Lookup Mask Before = %p\n",
+
+342 (*)
+lookup_h™_mask_v4
+);
+
+343 
+¡©us
+ =
+
+344 
+¹e_bË_Ím_Ýs
+.
+	`f_lookup
+(
+Ím4_bË
+, 
+pkts_bur¡
+, 
+pkts_mask
+,
+
+345 &
+lookup_h™_mask_v4
+,
+
+346 (**)
+v4_’Œ›s
+);
+
+348 ià(
+¡©us
+) {
+
+349 
+	`´štf
+("LPM Lookup failed for IP„oute\n");
+
+353 
+lookup_miss_mask_v4
+ =†ookup_miss_mask_v4 & (~
+lookup_h™_mask_v4
+);
+
+354 ià(
+L3FWD_DEBUG
+) {
+
+355 
+´štf
+
+
+357 (*)
+lookup_h™_mask_v4
+,
+
+358 (*)
+lookup_miss_mask_v4
+);
+
+361 ; 
+lookup_miss_mask_v4
+;) {
+
+363 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+lookup_miss_mask_v4
+);
+
+364 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+365 
+lookup_miss_mask_v4
+ &ð~
+pkt_mask
+;
+
+366 
+	`¹e_pktmbuf_ä“
+(
+pkts_bur¡
+[
+pos
+]);
+
+367 
+pkts_bur¡
+[
+pos
+] = 
+NULL
+;
+
+368 
+¡©s
+.
+nb_l3_drÝ_pkt
+++;
+
+369 ià(
+L3FWD_DEBUG
+)
+
+370 
+	`´štf
+("\n DROP PKT IPV4 Lookup_miss_Mask = %p\n",
+
+371 (*)
+lookup_miss_mask_v4
+);
+
+374 *
+h™_mask
+ = 
+lookup_h™_mask_v4
+;
+
+375 ; 
+lookup_h™_mask_v4
+;) {
+
+377 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+lookup_h™_mask_v4
+);
+
+378 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+379 
+lookup_h™_mask_v4
+ &ð~
+pkt_mask
+;
+
+380 
+¹e_mbuf
+ *
+pkt
+ = 
+pkts_bur¡
+[
+pos
+];
+
+382 
+fib_šfo
+ *
+’Œy
+ = (fib_šfØ*)
+v4_’Œ›s
+[
+pos
+];
+
+384 #ià
+MULTIPATH_FEAT
+
+
+386 
+ušt8_t
+ 
+ecmp_·th
+ = 0;
+
+387 
+ecmp_·th
+ = 
+	`_hash_lßd_b®ªû
+(
+pkts_bur¡
+[
+pos
+]);
+
+388 
+ušt8_t
+ 
+£Ëùed_·th
+ = 0;
+
+389 
+fib_·th
+ *fib_·th = 
+NULL
+;
+
+390 ià(((
+’Œy
+->
+fib_nh_size
+ != 0)
+
+391 && (
+’Œy
+->
+fib_nh_size
+ - 1è< 
+MAX_SUPPORTED_FIB_PATHS
+)
+
+392 && ((
+ecmp_·th
+ !ð0è&& (ecmp_·th - 1è< 
+HASH_BUCKET_SIZE
+))
+
+393 
+£Ëùed_·th
+ =
+
+394 
+nh_lšks
+[
+’Œy
+->
+fib_nh_size
+ - 1][
+ecmp_·th
+ - 1];
+
+395 ià(
+£Ëùed_·th
+ < 
+MAX_FIB_PATHS
+)
+
+396 
+fib_·th
+ = 
+’Œy
+->
+·th
+[
+£Ëùed_·th
+];
+
+397 ià(
+L3FWD_DEBUG
+) {
+
+398 
+´štf
+
+
+400 
+’Œy
+->
+fib_nh_size
+, 
+ecmp_·th
+, 
+£Ëùed_·th
+);
+
+403 
+fib_·th
+ *fib_·th = 
+’Œy
+->
+·th
+[0];
+
+406 ià(
+fib_·th
+ =ð
+NULL
+) {
+
+407 
+	`¹e_pktmbuf_ä“
+(
+pkt
+);
+
+408 
+pkts_bur¡
+[
+pos
+] = 
+NULL
+;
+
+409 
+¡©s
+.
+nb_l3_drÝ_pkt
+++;
+
+410 *
+h™_mask
+ &ð~
+pkt_mask
+;
+
+411 ià(
+L3FWD_DEBUG
+)
+
+412 
+´štf
+
+
+417 ià(
+fib_·th
+->
+l2_adj_±r
+->
+æags
+ =ð
+L2_ADJ_UNRESOLVED
+) {
+
+418 ià(
+fib_·th
+->
+l2_adj_±r
+->
+phy_pÜt
+->
+v4_li¡
+ !ð
+NULL
+)
+
+419 
+	`»que¡_¬p
+(
+fib_·th
+->
+l2_adj_±r
+->
+phy_pÜt
+->
+
+420 
+pmdid
+, 
+fib_·th
+->
+nh_
+);
+
+422 
+	`¹e_pktmbuf_ä“
+(
+pkts_bur¡
+[
+pos
+]);
+
+423 
+pkts_bur¡
+[
+pos
+] = 
+NULL
+;
+
+424 *
+h™_mask
+ &ð~
+pkt_mask
+;
+
+425 ià(
+L3FWD_DEBUG
+)
+
+426 
+´štf
+
+
+432 
+ušt8_t
+ *
+‘h_de¡
+ =
+
+433 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+, 
+MBUF_HDR_ROOM
+);
+
+434 
+ušt8_t
+ *
+‘h_¤c
+ =
+
+435 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+, 
+MBUF_HDR_ROOM
+ + 6);
+
+436 ià(
+L3FWD_DEBUG
+) {
+
+437 
+´štf
+
+
+440 
+‘h_de¡
+[0],ƒth_de¡[1],ƒth_de¡[2],ƒth_de¡[3],ƒth_de¡[4],ƒth_de¡[5], 
+‘h_¤c
+[0],ƒth_src[1],
+
+441 
+‘h_¤c
+[2],ƒth_src[3],ƒth_src[4],ƒth_src[5]);
+
+444 
+	`memýy
+(
+‘h_de¡
+, 
+fib_·th
+->
+l2_adj_±r
+->
+l2_¡ršg
+, (
+‘h”_addr
+) * 2);
+
+445 ià(
+L3FWD_DEBUG
+) {
+
+446 
+k
+ = 0;
+
+447 
+k
+ = 0; k < 14; k++) {
+
+448 
+	`´štf
+("%02x ",
+
+449 
+fib_·th
+->
+l2_adj_±r
+->
+l2_¡ršg
+[
+k
+]);
+
+450 
+	`´štf
+("\n");
+
+452 
+´štf
+
+
+453 ("MAC AFTER DST MAC %02x:%02x:%02x:%02x:%02x:%02x, \
+ MAC %02x:%02x:%02x:%02x:%02x:%02x\n", 
+‘h_de¡
+[0],ƒth_de¡[1],ƒth_de¡[2],ƒth_de¡[3],ƒth_de¡[4],ƒth_de¡[5], 
+‘h_¤c
+[0],ƒth_src[1],ƒth_src[2],ƒth_src[3],ƒth_src[4],ƒth_src[5]);
+
+456 
+pÜt_±r
+[
+pos
+] = 
+fib_·th
+->
+l2_adj_±r
+->
+phy_pÜt
+;
+
+457 ià(
+L3FWD_DEBUG
+) {
+
+458 
+	`´štf
+("l3fwd_lookup API!!!!\n");
+
+462 
+£Á_couÁ
+++;
+
+463 
+¡©s
+.
+nb_tx_l3_pkt
+++;
+
+464 ià(
+L3FWD_DEBUG
+)
+
+465 
+´štf
+
+
+467 
+fib_·th
+->
+out_pÜt
+, 
+£Á_couÁ
+);
+
+470 
+	}
+}
+
+472 
+	$is_v®id_v4_pkt
+(
+v4_hdr
+ *
+pkt
+, 
+ušt32_t
+ 
+lšk_Ën
+)
+
+474 ià(
+lšk_Ën
+ < (
+v4_hdr
+))
+
+476 ià(((
+pkt
+->
+v”siÚ_ihl
+) >> 4) != 4)
+
+478 ià((
+pkt
+->
+v”siÚ_ihl
+ & 0xf) < 5)
+
+480 ià(
+	`¹e_ýu_to_be_16
+(
+pkt
+->
+tÙ®_Ëngth
+è< (
+v4_hdr
+))
+
+483 
+	}
+}
+
+486 
+	$g‘_de¡_mac_fÜ_ÃxthÝ
+(
+ušt32_t
+ 
+Ãxt_hÝ_
+,
+
+487 
+ušt8_t
+ 
+out_phy_pÜt
+, 
+‘h”_addr
+ *
+hw_addr
+)
+
+489 
+¬p_’Œy_d©a
+ *
+¬p_d©a
+ = 
+NULL
+;
+
+490 
+¬p_key_v4
+ 
+¬p_key
+;
+
+491 
+¬p_key
+.
+pÜt_id
+ = 
+out_phy_pÜt
+;
+
+492 
+¬p_key
+.
+
+ = 
+Ãxt_hÝ_
+;
+
+494 
+¬p_d©a
+ = 
+	`»Œ›ve_¬p_’Œy
+(
+¬p_key
+);
+
+495 ià(
+¬p_d©a
+ =ð
+NULL
+) {
+
+496 
+	`´štf
+("ARPƒntry is‚ot found for ip %x,…ort %d\n",
+
+497 
+Ãxt_hÝ_
+, 
+out_phy_pÜt
+);
+
+500 
+	`‘h”_addr_cÝy
+(&
+¬p_d©a
+->
+‘h_addr
+, 
+hw_addr
+);
+
+502 
+	}
+}
+
+504 
+l2_adj_’Œy
+ *
+	$»Œ›ve_l2_adj_’Œy
+(
+l2_adj_key_v4
+ 
+l2_adj_key
+)
+
+506 
+l2_adj_’Œy
+ *
+»t_l2_adj_d©a
+ = 
+NULL
+;
+
+507 
+l2_adj_key
+.
+fžËr1
+ = 0;
+
+508 
+l2_adj_key
+.
+fžËr2
+ = 0;
+
+509 
+l2_adj_key
+.
+fžËr3
+ = 0;
+
+511 
+»t
+ =
+
+512 
+	`¹e_hash_lookup_d©a
+(
+l2_adj_hash_hªdË
+, &
+l2_adj_key
+,
+
+513 (**)&
+»t_l2_adj_d©a
+);
+
+514 ià(
+»t
+ < 0) {
+
+515 #ifdeà
+L2L3_DEBUG
+
+
+516 
+´štf
+
+
+518 
+»t
+, 
+EINVAL
+, 
+ENOENT
+);
+
+520  
+NULL
+;
+
+522 #ifdeà
+L2L3_DEBUG
+
+
+523 
+´štf
+
+
+525 
+»t
+, 
+EINVAL
+, 
+ENOENT
+);
+
+527  
+»t_l2_adj_d©a
+;
+
+529 
+	}
+}
+
+531 
+	$»move_fib_l2_adj_’Œy
+(*
+’Œy
+)
+
+533 
+fib_šfo
+ 
+’Œy1
+;
+
+534 
+	`memýy
+(&
+’Œy1
+, 
+’Œy
+, (
+fib_šfo
+));
+
+536 
+fib_·th
+ *
+fib_·th_addr
+ = 
+’Œy1
+.
+·th
+[0];
+
+537 ià(
+fib_·th_addr
+->
+»fcouÁ
+ > 1) {
+
+538 
+´štf
+
+
+540 
+fib_·th_addr
+->
+nh_
+, fib_·th_addr->
+out_pÜt
+,
+
+541 
+fib_·th_addr
+->
+»fcouÁ
+);
+
+542 
+fib_·th_addr
+->
+»fcouÁ
+--;
+
+543 
+	`´štf
+("AFTER fib_pathƒntry,‚h_ip %x,…ort %d,„efcount %d\n",
+
+544 
+fib_·th_addr
+->
+nh_
+, fib_·th_addr->
+out_pÜt
+,
+
+545 
+fib_·th_addr
+->
+»fcouÁ
+);
+
+549 
+l2_adj_’Œy
+ *
+adj_addr
+ = 
+NULL
+;
+
+550 
+adj_addr
+ = 
+fib_·th_addr
+->
+l2_adj_±r
+;
+
+552 ià(
+adj_addr
+ !ð
+NULL
+) {
+
+554 
+l2_adj_key_v4
+ 
+l2_adj_key
+ = {
+
+555 .
+Next_hÝ_
+ = 
+fib_·th_addr
+->
+nh_
+,
+
+556 .
+out_pÜt_id
+ = 
+fib_·th_addr
+->
+out_pÜt
+,
+
+558 #ifdeà
+L3FWD_DEBUG
+
+
+559 
+´štf
+
+
+561 
+l2_adj_key
+.
+Next_hÝ_
+,†2_adj_key.
+out_pÜt_id
+,
+
+562 
+adj_addr
+->
+»fcouÁ
+);
+
+565 
+	`¹e_hash_d–_key
+(
+l2_adj_hash_hªdË
+, &
+l2_adj_key
+);
+
+566 
+	`¹e_ä“
+(
+adj_addr
+);
+
+567 
+adj_addr
+ = 
+NULL
+;
+
+570 
+fib_·th_key_v4
+ 
+·th_key
+ = {
+
+571 .
+nh_
+ = 
+fib_·th_addr
+->nh_ip,
+
+572 .
+out_pÜt
+ = 
+fib_·th_addr
+->out_port,
+
+575 
+´štf
+
+
+577 
+fib_·th_addr
+->
+nh_
+, fib_·th_addr->
+out_pÜt
+,
+
+578 
+fib_·th_addr
+->
+»fcouÁ
+);
+
+579 
+	`¹e_hash_d–_key
+(
+fib_·th_hash_hªdË
+, &
+·th_key
+);
+
+580 
+	`¹e_ä“
+(
+fib_·th_addr
+);
+
+581 
+fib_·th_addr
+ = 
+NULL
+;
+
+583 
+	}
+}
+
+585 
+l2_adj_’Œy
+ *
+	$pÝuϋ_l2_adj
+(
+ušt32_t
+ 
+addr
+, 
+ušt8_t
+ 
+pÜtid
+)
+
+588 
+l2_adj_key_v4
+ 
+l2_adj_key
+;
+
+589 
+l2_adj_key
+.
+out_pÜt_id
+ = 
+pÜtid
+;
+
+590 
+l2_adj_key
+.
+Next_hÝ_
+ = 
+addr
+;
+
+591 
+l2_adj_key
+.
+fžËr1
+ = 0;
+
+592 
+l2_adj_key
+.
+fžËr2
+ = 0;
+
+593 
+l2_adj_key
+.
+fžËr3
+ = 0;
+
+595 
+‘h”_addr
+ 
+‘h_d¡
+;
+
+596 
+l2_adj_’Œy
+ *
+adj_d©a
+ = 
+NULL
+;
+
+599 
+adj_d©a
+ = 
+	`»Œ›ve_l2_adj_’Œy
+(
+l2_adj_key
+);
+
+601 ià(
+adj_d©a
+) {
+
+603 
+´štf
+
+
+605 
+l2_adj_key
+.
+Next_hÝ_
+,†2_adj_key.
+out_pÜt_id
+,
+
+606 
+adj_d©a
+->
+»fcouÁ
+,‡dj_data);
+
+607 
+	`‘h”_addr_cÝy
+(&
+adj_d©a
+->
+‘h_addr
+, &
+‘h_d¡
+);
+
+608 
+adj_d©a
+->
+»fcouÁ
+++;
+
+609 
+´štf
+
+
+611 
+l2_adj_key
+.
+Next_hÝ_
+,†2_adj_key.
+out_pÜt_id
+,
+
+612 
+adj_d©a
+->
+»fcouÁ
+,‡dj_data);
+
+613  
+adj_d©a
+;
+
+616 
+‘h”_addr
+ 
+‘h_¤c
+;
+
+617 
+l2_phy_š‹rçû_t
+ *
+pÜt
+;
+
+619 
+pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+pÜtid
+);
+
+621 ià(
+pÜt
+ !ð
+NULL
+) {
+
+622 
+	`memýy
+(&
+‘h_¤c
+, &
+pÜt
+->
+maÿddr
+, (
+‘h”_addr
+));
+
+623 *
+p
+ = (*)
+‘h_¤c
+.
+addr_by‹s
+;
+
+624 
+	`´štf
+("S-MAC %x:%x:%x:%x:%x:%x\n\r", 
+p
+[0],…[1],…[2],…[3],
+
+625 
+p
+[4],…[5]);
+
+627 
+ušt32_t
+ 
+size
+ =
+
+628 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+l2_adj_’Œy
+));
+
+629 
+adj_d©a
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+630 ià(
+adj_d©a
+ =ð
+NULL
+) {
+
+631 
+	`´štf
+("L2 Adjacency memory‡llocation failed !\n");
+
+632  
+NULL
+;
+
+635 
+adj_d©a
+->
+out_pÜt_id
+ = 
+pÜtid
+;
+
+636 
+adj_d©a
+->
+Next_hÝ_
+ = 
+addr
+;
+
+637 
+adj_d©a
+->
+»fcouÁ
+++;
+
+639 
+adj_d©a
+->
+phy_pÜt
+ = 
+pÜt
+;
+
+640 
+	`mem£t
+(&
+adj_d©a
+->
+‘h_addr
+, 0, (
+‘h”_addr
+));
+
+641 
+	`mem£t
+(&
+adj_d©a
+->
+l2_¡ršg
+, 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 
+´štf
+
+
+649 
+adj_d©a
+);
+
+652 #ifdeà
+L2L3_DEBUG
+
+
+653 
+	`´štf
+("\ÀPORT %u IS DOWN...\n", 
+pÜtid
+);
+
+655  
+NULL
+;
+
+658 ià(
+	`g‘_de¡_mac_fÜ_ÃxthÝ
+(
+addr
+, 
+pÜtid
+, &
+‘h_d¡
+)) {
+
+659 *
+p
+ = (*)
+‘h_d¡
+.
+addr_by‹s
+;
+
+660 
+´štf
+
+
+662 
+p
+[0],…[1],…[2],…[3],…[4],…[5]);
+
+664 
+	`memýy
+(
+adj_d©a
+->
+l2_¡ršg
+, &
+‘h_d¡
+, (
+‘h”_addr
+));
+
+665 
+	`memýy
+(&
+adj_d©a
+->
+l2_¡ršg
+[6], &
+‘h_¤c
+,
+
+666 (
+‘h”_addr
+));
+
+669 
+	`‘h”_addr_cÝy
+(&
+‘h_d¡
+, &
+adj_d©a
+->
+‘h_addr
+);
+
+670 
+adj_d©a
+->
+æags
+ = 
+L2_ADJ_RESOLVED
+;
+
+672 
+adj_d©a
+->
+æags
+ = 
+L2_ADJ_UNRESOLVED
+;
+
+673 
+´štf
+
+
+676  
+adj_d©a
+;
+
+677 
+	}
+}
+
+679 
+fib_·th
+ *
+	$pÝuϋ_fib_·th
+(
+ušt32_t
+ 
+nh_
+, 
+ušt8_t
+ 
+pÜtid
+)
+
+682 
+fib_·th_key_v4
+ 
+·th_key
+;
+
+683 
+·th_key
+.
+out_pÜt
+ = 
+pÜtid
+;
+
+684 
+·th_key
+.
+nh_
+ =‚h_ip;
+
+685 
+·th_key
+.
+fžËr1
+ = 0;
+
+686 
+·th_key
+.
+fžËr2
+ = 0;
+
+687 
+·th_key
+.
+fžËr3
+ = 0;
+
+689 
+fib_·th
+ *
+fib_d©a
+ = 
+NULL
+;
+
+692 
+fib_d©a
+ = 
+	`»Œ›ve_fib_·th_’Œy
+(
+·th_key
+);
+
+694 ià(
+fib_d©a
+) {
+
+697 
+´štf
+
+
+699 
+fib_d©a
+->
+nh_
+, 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 
+´štf
+
+
+705 
+fib_d©a
+->
+nh_
+, fib_d©a->
+out_pÜt
+, fib_d©a->
+»fcouÁ
+);
+
+706  
+fib_d©a
+;
+
+708 
+	`´štf
+("fib_pathƒntry Doesn't Exists.......\n");
+
+711 
+fib_d©a
+ = 
+NULL
+;
+
+712 
+l2_adj_’Œy
+ *
+l2_adj_±r
+ = 
+NULL
+;
+
+713 
+l2_adj_±r
+ = 
+	`pÝuϋ_l2_adj
+(
+nh_
+, 
+pÜtid
+);
+
+715 ià(
+l2_adj_±r
+) {
+
+717 
+ušt32_t
+ 
+size
+ = 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+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_
+ =‚h_ip;
+
+722 
+fib_d©a
+->
+»fcouÁ
+++;
+
+723 
+fib_d©a
+->
+l2_adj_±r
+ =†2_adj_ptr;
+
+725 
+	`´štf
+("%s: g‘…܈d‘až %u %d\n\r", 
+__FUNCTION__
+, 
+pÜtid
+,
+
+726 
+__LINE__
+);
+
+728 
+¡©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 
+´štf
+
+
+735 
+fib_d©a
+->
+nh_
+, fib_d©a->
+out_pÜt
+,
+
+736 
+fib_d©a
+->
+»fcouÁ
+);
+
+738 
+	`¹e_ä“
+(
+fib_d©a
+);
+
+740 
+´štf
+
+
+742 
+fib_d©a
+->
+nh_
+, fib_d©a->
+out_pÜt
+,
+
+743 
+fib_d©a
+->
+»fcouÁ
+);
+
+744 
+´štf
+
+
+746 
+l2_adj_±r
+, 
+fib_d©a
+, fib_data->l2_adj_ptr);
+
+747 
+´štf
+
+
+749 
+l2_adj_±r
+, 
+fib_d©a
+);
+
+750  
+fib_d©a
+;
+
+753 
+´štf
+
+
+756  
+NULL
+;
+
+757 
+	}
+}
+
+759 
+fib_·th
+ *
+	$»Œ›ve_fib_·th_’Œy
+(
+fib_·th_key_v4
+ 
+·th_key
+)
+
+761 
+	`´štf
+("FIB PATH fÜ NExtHOP IP : %x,…܈:%u\n", 
+·th_key
+.
+nh_
+,
+
+762 
+·th_key
+.
+out_pÜt
+);
+
+764 
+fib_·th
+ *
+»t_fib_·th_d©a
+ = 
+NULL
+;
+
+765 
+»t
+ =
+
+766 
+	`¹e_hash_lookup_d©a
+(
+fib_·th_hash_hªdË
+, &
+·th_key
+,
+
+767 (**)&
+»t_fib_·th_d©a
+);
+
+768 ià(
+»t
+ < 0) {
+
+769 
+´štf
+
+
+771 
+»t
+, 
+EINVAL
+, 
+ENOENT
+);
+
+772  
+NULL
+;
+
+774 
+	`´štf
+("FIB PATH ALREADY Exists for NExtHOP IP: %x,…ort: %u\n",
+
+775 
+·th_key
+.
+nh_
+,…©h_key.
+out_pÜt
+);
+
+776  
+»t_fib_·th_d©a
+;
+
+778 
+	}
+}
+
+780 
+	$™”©e_cuckoo_hash_bË
+()
+
+782 cÚ¡ *
+Ãxt_key
+;
+
+783 *
+Ãxt_d©a
+;
+
+784 
+ušt32_t
+ 
+™”
+ = 0;
+
+786 
+	`´štf
+("\n\t\t\t FIB_path Cacheable....");
+
+787 
+´štf
+
+
+789 
+	`´štf
+("\n\tNextHop IP Port Refcount†2_adj_ptr_addrress\n");
+
+790 
+´štf
+
+
+793 
+¹e_hash_™”©e
+
+
+794 (
+fib_·th_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+™”
+) >= 0) {
+
+795 
+fib_·th
+ *
+tmp_d©a
+ = (fib_·th *)
+Ãxt_d©a
+;
+
+796 
+fib_·th_key_v4
+ 
+tmp_key
+;
+
+797 
+	`memýy
+(&
+tmp_key
+, 
+Ãxt_key
+, (tmp_key));
+
+798 
+	`´štf
+("\ˆ%" 
+PRIu32
+ ".%" PRIu32 ".%" PRIu32 ".%" PRIu32
+
+800 (
+tmp_d©a
+->
+nh_
+ & 0xFF000000) >> 24,
+
+801 (
+tmp_d©a
+->
+nh_
+ & 0x00FF0000) >> 16,
+
+802 (
+tmp_d©a
+->
+nh_
+ & 0x0000FF00) >> 8,
+
+803 (
+tmp_d©a
+->
+nh_
+ & 0x000000FF),mp_d©a->
+out_pÜt
+,
+
+804 
+tmp_d©a
+->
+»fcouÁ
+,mp_d©a->
+l2_adj_±r
+);
+
+807 
+™”
+ = 0;
+
+809 
+	`´štf
+("\n\t\t\t L2 ADJ Cacheable.....");
+
+810 
+´štf
+
+
+812 
+´štf
+
+
+814 
+´štf
+
+
+817 
+¹e_hash_™”©e
+
+
+818 (
+l2_adj_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+™”
+) >= 0) {
+
+819 
+l2_adj_’Œy
+ *
+l2_d©a
+ = (l2_adj_’Œy *)
+Ãxt_d©a
+;
+
+820 
+l2_adj_key_v4
+ 
+l2_key
+;
+
+821 
+	`memýy
+(&
+l2_key
+, 
+Ãxt_key
+, (l2_key));
+
+822 
+	`´štf
+("\ˆ%" 
+PRIu32
+ ".%" PRIu32 ".%" PRIu32 ".%" PRIu32
+
+824 (
+l2_d©a
+->
+Next_hÝ_
+ & 0xFF000000) >> 24,
+
+825 (
+l2_d©a
+->
+Next_hÝ_
+ & 0x00FF0000) >> 16,
+
+826 (
+l2_d©a
+->
+Next_hÝ_
+ & 0x0000FF00) >> 8,
+
+827 (
+l2_d©a
+->
+Next_hÝ_
+ & 0x000000FF),
+
+828 
+l2_d©a
+->
+out_pÜt_id
+,†2_d©a->
+l2_¡ršg
+[0],
+
+829 
+l2_d©a
+->
+l2_¡ršg
+[1],†2_data->l2_string[2],
+
+830 
+l2_d©a
+->
+l2_¡ršg
+[3],†2_data->l2_string[4],
+
+831 
+l2_d©a
+->
+l2_¡ršg
+[5],†2_data->l2_string[6],
+
+832 
+l2_d©a
+->
+l2_¡ršg
+[7],†2_data->l2_string[8],
+
+833 
+l2_d©a
+->
+l2_¡ršg
+[9],†2_data->l2_string[10],
+
+834 
+l2_d©a
+->
+l2_¡ršg
+[11],†2_d©a->
+phy_pÜt
+);
+
+836 
+	}
+}
+
+838 
+	$´št_l3_¡©s
+()
+
+840 
+	`´štf
+("==============================================\n");
+
+841 
+	`´štf
+("\t\t L3 STATISTICS \t\n");
+
+842 
+	`´štf
+("==============================================\n");
+
+843 
+	`´štf
+(" Num oàReûived L3 Pkt  : %lu\n", 
+¡©s
+.
+nb_rx_l3_pkt
+);
+
+844 
+	`´štf
+(" Num oàDrݳd L3 Pkt  : %lu\n", 
+¡©s
+.
+nb_l3_drÝ_pkt
+);
+
+845 
+	`´štf
+(" Num oàT¿nsm™‹d L3 Pkt  : %lu\n", 
+¡©s
+.
+nb_tx_l3_pkt
+);
+
+846 
+	`´štf
+(" Num oàICMP Pkt Rcvd‡ˆL3 : %lu\n", 
+¡©s
+.
+nb_rx_l3_icmp_pkt
+);
+
+847 
+	`´štf
+(" Num oàICMP Pkt TxØICMP : %lu\n", 
+¡©s
+.
+nb_tx_l3_icmp_pkt
+);
+
+848 
+¡©s
+.
+tÙ®_nb_rx_l3_pkt
+ = sts.
+nb_rx_l3_icmp_pkt
+ + sts.
+nb_rx_l3_pkt
+;
+
+849 
+¡©s
+.
+tÙ®_nb_tx_l3_pkt
+ = sts.
+nb_tx_l3_icmp_pkt
+ + sts.
+nb_tx_l3_pkt
+;
+
+850 
+	`´štf
+(" Total Num of Rcvd…kts‡t L3: %lu\n",
+
+851 
+¡©s
+.
+tÙ®_nb_rx_l3_pkt
+);
+
+852 
+	`´štf
+(" Total Num of Sent…kts‡t L3: %lu\n",
+
+853 
+¡©s
+.
+tÙ®_nb_tx_l3_pkt
+);
+
+854 
+	}
+}
+
+857 
+	$_loÿl_·ck‘s_´oûss
+(
+¹e_mbuf
+ **
+pkt_bur¡
+, 
+ušt16_t
+ 
+nb_rx
+,
+
+858 
+ušt64_t
+ 
+icmp_pkt_mask
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt
+)
+
+860 
+	`´oûss_¬picmp_pkt_·r£
+(
+pkt_bur¡
+, 
+nb_rx
+, 
+icmp_pkt_mask
+, 
+pÜt
+);
+
+861 
+	}
+}
+
+864 
+	$_fÜw¬d_d–iv”
+(
+¹e_mbuf
+ **
+pkt_bur¡
+, 
+ušt16_t
+ 
+nb_pkts
+,
+
+865 
+ušt64_t
+ 
+v4_fÜw¬d_pkts_mask
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt
+)
+
+867 ià(
+L3FWD_DEBUG
+) {
+
+868 
+´štf
+
+
+870 
+nb_pkts
+, 
+pÜt
+->
+pmdid
+);
+
+872 
+ušt64_t
+ 
+pkts_fÜ_´oûss
+ = 
+v4_fÜw¬d_pkts_mask
+;
+
+874 
+v4_hdr
+ *ipv4_hdr;
+
+875 
+l2_phy_š‹rçû_t
+ *
+pÜt_±r
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+876 
+ušt64_t
+ 
+h™_mask
+ = 0;
+
+878 ; 
+pkts_fÜ_´oûss
+;) {
+
+880 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+pkts_fÜ_´oûss
+);
+
+881 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+882 
+pkts_fÜ_´oûss
+ &ð~
+pkt_mask
+;
+
+883 
+v4_hdr
+ =
+
+884 
+	`¹e_pktmbuf_mtod_off£t
+(
+pkt_bur¡
+[
+pos
+], 
+v4_hdr
+ *,
+
+885 (
+‘h”_hdr
+));
+
+887 ià(
+	`is_v®id_v4_pkt
+(
+v4_hdr
+, 
+pkt_bur¡
+[
+pos
+]->
+pkt_Ën
+) < 0) {
+
+888 
+	`¹e_pktmbuf_ä“
+(
+pkt_bur¡
+[
+pos
+]);
+
+889 
+pkt_bur¡
+[
+pos
+] = 
+NULL
+;
+
+890 
+v4_fÜw¬d_pkts_mask
+ &ð~(1LLU << 
+pos
+);
+
+891 
+nb_pkts
+--;
+
+892 
+¡©s
+.
+nb_l3_drÝ_pkt
+++;
+
+896 ià(
+L3FWD_DEBUG
+) {
+
+897 
+´štf
+
+
+899 
+nb_pkts
+, 
+v4_fÜw¬d_pkts_mask
+);
+
+903 
+	`Ím4_bË_lookup
+(
+pkt_bur¡
+, 
+nb_pkts
+, 
+v4_fÜw¬d_pkts_mask
+, 
+pÜt_±r
+,
+
+904 &
+h™_mask
+);
+
+906 ; 
+h™_mask
+;) {
+
+908 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+h™_mask
+);
+
+909 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+910 
+h™_mask
+ &ð~
+pkt_mask
+;
+
+912 
+pÜt_±r
+[
+pos
+]->
+	`Œªsm™_sšgË_pkt
+(port_ptr[pos],
+
+913 
+pkt_bur¡
+[
+pos
+]);
+
+916 
+	}
+}
+
+919 
+	$l3_´ÙocÞ_ty³_add
+(
+ušt8_t
+ 
+´ÙocÞ_ty³
+,
+
+920 (*
+func
+è(
+¹e_mbuf
+ **, 
+ušt16_t
+, 
+ušt64_t
+,
+
+921 
+l2_phy_š‹rçû_t
+ *
+pÜt
+))
+
+923 
+´ÙocÞ_ty³
+) {
+
+924 
+IPPROTO_ICMP
+:
+
+925 
+´Ùo_ty³
+[
+IP_LOCAL
+] =
+
+926 
+	`¹e_m®loc
+(
+NULL
+, (
+_´ÙocÞ_ty³
+),
+
+927 
+RTE_CACHE_LINE_SIZE
+);
+
+928 
+´Ùo_ty³
+[
+IP_LOCAL
+]->
+´ÙocÞ_ty³
+ =…rotocol_type;
+
+929 
+´Ùo_ty³
+[
+IP_LOCAL
+]->
+func
+ = func;
+
+932 
+IPPROTO_TCP
+:
+
+933 
+IPPROTO_UDP
+:
+
+934 
+´Ùo_ty³
+[
+IP_REMOTE
+] =
+
+935 
+	`¹e_m®loc
+(
+NULL
+, (
+_´ÙocÞ_ty³
+),
+
+936 
+RTE_CACHE_LINE_SIZE
+);
+
+937 
+´Ùo_ty³
+[
+IP_REMOTE
+]->
+´ÙocÞ_ty³
+ =…rotocol_type;
+
+938 
+´Ùo_ty³
+[
+IP_REMOTE
+]->
+func
+ = func;
+
+943 
+	}
+}
+
+945 
+	$l3fwd_rx_v4_·ck‘s
+(
+¹e_mbuf
+ **
+m
+, 
+ušt16_t
+ 
+nb_pkts
+,
+
+946 
+ušt64_t
+ 
+v®id_pkts_mask
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt
+)
+
+948 ià(
+L3FWD_DEBUG
+) {
+
+949 
+´štf
+
+
+951 
+nb_pkts
+, 
+pÜt
+->
+pmdid
+);
+
+953 
+ušt64_t
+ 
+pkts_fÜ_´oûss
+ = 
+v®id_pkts_mask
+;
+
+955 
+v4_hdr
+ *ipv4_hdr;
+
+956 
+ušt32_t
+ 
+cÚfigu»_pÜt_
+ = 0;
+
+957 
+ušt64_t
+ 
+icmp_pkts_mask
+ = 
+	`RTE_LEN2MASK
+(
+nb_pkts
+, uint64_t);
+
+958 
+ušt64_t
+ 
+v4_fÜw¬d_pkts_mask
+ = 
+	`RTE_LEN2MASK
+(
+nb_pkts
+, uint64_t);
+
+959 
+ušt16_t
+ 
+nb_icmp_pkt
+ = 0;
+
+960 
+ušt16_t
+ 
+nb_l3_pkt
+ = 0;
+
+962 ià(
+pÜt
+->
+v4_li¡
+ !ð
+NULL
+)
+
+963 
+cÚfigu»_pÜt_
+ =
+
+964 (
+ušt32_t
+è(((
+v4li¡_t
+ *è(
+pÜt
+->
+v4_li¡
+))->
+addr
+);
+
+966 ; 
+pkts_fÜ_´oûss
+;) {
+
+968 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+pkts_fÜ_´oûss
+);
+
+969 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+970 
+pkts_fÜ_´oûss
+ &ð~
+pkt_mask
+;
+
+971 
+v4_hdr
+ =
+
+972 
+	`¹e_pktmbuf_mtod_off£t
+(
+m
+[
+pos
+], 
+v4_hdr
+ *,
+
+973 (
+‘h”_hdr
+));
+
+975 ià((
+v4_hdr
+->
+Ãxt_´Ùo_id
+ =ð
+IPPROTO_ICMP
+)
+
+976 && (
+v4_hdr
+->
+d¡_addr
+ =ð
+cÚfigu»_pÜt_
+)) {
+
+977 
+v4_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 
+´štf
+
+
+991 
+´Ùo_ty³
+[
+IP_LOCAL
+]->
+	`func
+(
+m
+, 
+nb_icmp_pkt
+, 
+icmp_pkts_mask
+,
+
+992 
+pÜt
+);
+
+995 ià(
+v4_fÜw¬d_pkts_mask
+) {
+
+996 ià(
+L3FWD_DEBUG
+)
+
+997 
+´štf
+
+
+999 
+´Ùo_ty³
+[
+IP_REMOTE
+]->
+	`func
+(
+m
+, 
+nb_l3_pkt
+,
+
+1000 
+v4_fÜw¬d_pkts_mask
+, 
+pÜt
+);
+
+1002 
+	}
+}
+
+1005 
+	$»sÞve_l2_adj
+(
+ušt32_t
+ 
+ÃxthÝ_
+, 
+ušt8_t
+ 
+out_pÜt_id
+,
+
+1006 cÚ¡ 
+‘h”_addr
+ *
+hw_addr
+)
+
+1008 
+l2_adj_key_v4
+ 
+l2_adj_key
+ = {
+
+1009 .
+Next_hÝ_
+ = 
+ÃxthÝ_
+,
+
+1010 .
+out_pÜt_id
+ = out_port_id,
+
+1014 
+l2_adj_’Œy
+ *
+adj_d©a
+ = 
+	`»Œ›ve_l2_adj_’Œy
+(
+l2_adj_key
+);
+
+1016 ià(
+adj_d©a
+) {
+
+1018 
+´štf
+
+
+1020 
+l2_adj_key
+.
+Next_hÝ_
+,†2_adj_key.
+out_pÜt_id
+,
+
+1021 
+adj_d©a
+->
+»fcouÁ
+,‡dj_data);
+
+1023 ià(
+adj_d©a
+->
+æags
+ =ð
+L2_ADJ_UNRESOLVED
+
+
+1024 || 
+	`memcmp
+(
+hw_addr
+, &
+adj_d©a
+->
+‘h_addr
+,
+
+1025 (
+‘h”_addr
+))) {
+
+1026 
+	`memýy
+(
+adj_d©a
+->
+l2_¡ršg
+, 
+hw_addr
+, (
+‘h”_addr
+));
+
+1027 
+	`memýy
+(&
+adj_d©a
+->
+l2_¡ršg
+[6],
+
+1028 &
+adj_d©a
+->
+phy_pÜt
+->
+maÿddr
+,
+
+1029 (
+‘h”_addr
+));
+
+1032 
+	`‘h”_addr_cÝy
+(
+hw_addr
+, &
+adj_d©a
+->
+‘h_addr
+);
+
+1033 
+adj_d©a
+->
+æags
+ = 
+L2_ADJ_RESOLVED
+;
+
+1039 
+l2_phy_š‹rçû_t
+ *
+pÜt
+;
+
+1040 
+pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+out_pÜt_id
+);
+
+1041 ià(
+pÜt
+ !ð
+NULL
+) {
+
+1043 
+ušt32_t
+ 
+size
+ =
+
+1044 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+l2_adj_’Œy
+));
+
+1045 
+adj_d©a
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+1046 ià(
+adj_d©a
+ =ð
+NULL
+) {
+
+1047 
+	`´štf
+("L2 Adjacency memory‡llocation failed !\n");
+
+1051 
+adj_d©a
+->
+out_pÜt_id
+ = out_port_id;
+
+1052 
+adj_d©a
+->
+Next_hÝ_
+ = 
+ÃxthÝ_
+;
+
+1053 
+adj_d©a
+->
+phy_pÜt
+ = 
+pÜt
+;
+
+1055 
+	`memýy
+(
+adj_d©a
+->
+l2_¡ršg
+, 
+hw_addr
+, (
+‘h”_addr
+));
+
+1056 
+	`memýy
+(&
+adj_d©a
+->
+l2_¡ršg
+[6], &adj_d©a->
+phy_pÜt
+->
+maÿddr
+,
+
+1057 (
+‘h”_addr
+));
+
+1060 
+	`‘h”_addr_cÝy
+(
+hw_addr
+, &
+adj_d©a
+->
+‘h_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 
+´štf
+
+
+1067 
+adj_d©a
+);
+
+1069 
+	`´štf
+("PORT:%u IS DOWN...\n", 
+out_pÜt_id
+);
+
+1072 
+	}
+}
+
+1074 
+ušt8_t
+ 
+	$_hash_lßd_b®ªû
+(
+¹e_mbuf
+ *
+mbuf
+)
+
+1076 
+ušt32_t
+ 
+¤c_addr_off£t
+ =
+
+1077 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_SRC_ADR_OFST
+;
+
+1078 
+ušt32_t
+ 
+d¡_addr_off£t
+ =
+
+1079 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_DST_ADR_OFST
+;
+
+1080 
+ušt32_t
+ *
+d¡_addr
+ = 
+NULL
+;
+
+1081 
+ušt32_t
+ *
+¤c_addr
+ = 
+NULL
+;
+
+1082 
+¤c_addr
+ =
+
+1083 (
+ušt32_t
+ *è
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+mbuf
+, 
+¤c_addr_off£t
+);
+
+1084 
+d¡_addr
+ =
+
+1085 (
+ušt32_t
+ *è
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+mbuf
+, 
+d¡_addr_off£t
+);
+
+1087 
+ušt32_t
+ 
+hash_key1
+ = *
+¤c_addr
+;
+
+1088 
+ušt32_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 
+	`´štf
+("Hash ResuÉ_key: %d, \n", 
+hash_key1
+);
+
+1104  
+hash_key1
+;
+
+1105 
+	}
+}
+
+1107 
+ušt32_t
+ 
+	$rÙr32
+(
+ušt32_t
+ 
+v®ue
+, 
+couÁ
+)
+
+1109 cÚ¡ 
+mask
+ = (
+CHAR_BIT
+ * (
+v®ue
+) - 1);
+
+1110 
+couÁ
+ &ð
+mask
+;
+
+1111  (
+v®ue
+ >> 
+couÁ
+è| (v®u<< ((-couÁè& 
+mask
+));
+
+1112 
+	}
+}
+
+1115 
+	$_loÿl_out_d–iv”
+(
+¹e_mbuf
+ **
+pkt_bur¡
+, 
+ušt16_t
+ 
+nb_rx
+,
+
+1116 
+ušt64_t
+ 
+v4_pkts_mask
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt
+)
+
+1118 
+	`_fÜw¬d_d–iv”
+(
+pkt_bur¡
+, 
+nb_rx
+, 
+v4_pkts_mask
+, 
+pÜt
+);
+
+1119 
+	}
+}
+
+	@VIL/l2l3_stack/l3fwd_lpm4.h
+
+21 #iâdeà
+L3FWD_LPM_H
+
+
+22 
+	#L3FWD_LPM_H
+
+
+	)
+
+24 
+	~<¡dio.h
+>
+
+25 
+	~<¡dlib.h
+>
+
+26 
+	~<¡dšt.h
+>
+
+27 
+	~<š‰y³s.h
+>
+
+28 
+	~<sys/ty³s.h
+>
+
+29 
+	~<¡ršg.h
+>
+
+30 
+	~<sys/queue.h
+>
+
+31 
+	~<¡d¬g.h
+>
+
+32 
+	~<Ӽo.h
+>
+
+33 
+	~<g‘Ýt.h
+>
+
+34 
+	~<¡dboÞ.h
+>
+
+36 
+	~<¹e_debug.h
+>
+
+37 
+	~<¹e_memÜy.h
+>
+
+38 
+	~<¹e_‘h”.h
+>
+
+39 
+	~<¹e_‘hdev.h
+>
+
+40 
+	~<¹e_ršg.h
+>
+
+41 
+	~<¹e_mempoÞ.h
+>
+
+42 
+	~<¹e_cyþes.h
+>
+
+43 
+	~<¹e_mbuf.h
+>
+
+44 
+	~<¹e_.h
+>
+
+45 
+	~<¹e_tý.h
+>
+
+46 
+	~<¹e_udp.h
+>
+
+47 
+	~<¹e_Ím.h
+>
+
+48 
+	~<¹e_Ím6.h
+>
+
+49 
+	~"l3fwd_commÚ.h
+"
+
+50 
+	~"l3fwd_Ím6.h
+"
+
+51 
+	~"š‹rçû.h
+"
+
+57 
+	#MBUF_HDR_ROOM
+ 256
+
+	)
+
+60 
+	#ETH_HDR_SIZE
+ 14
+
+	)
+
+61 
+	#IP_HDR_SIZE
+ 20
+
+	)
+
+62 
+	#IP_HDR_DST_ADR_OFST
+ 16
+
+	)
+
+63 
+	#IP_HDR_SRC_ADR_OFST
+ 12
+
+	)
+
+66 
+	#IPV4_L3FWD_LPM_MAX_RULES
+ 256
+
+	)
+
+67 
+	#IPV4_L3FWD_LPM_NUMBER_TBL8S
+ (1 << 8è
+
+	)
+
+68 
+	#MAX_FIB_PATHS
+ 8
+
+	)
+
+69 
+	#IP_LOCAL
+ 0
+
+	)
+
+70 
+	#IP_REMOTE
+ 1
+
+	)
+
+73 
+	#MAX_SUPPORTED_FIB_PATHS
+ 8
+
+	)
+
+74 
+	#HASH_BUCKET_SIZE
+ 64
+
+	)
+
+77 
+	#L2_ADJ_RESOLVED
+ 0x00
+
+	)
+
+78 
+	#L2_ADJ_UNRESOLVED
+ 0x01
+
+	)
+
+83 
+	sroutšg_šfo
+ {
+
+84 
+ušt32_t
+ 
+	md¡__addr
+;
+
+85 
+ušt8_t
+ 
+	md•th
+;
+
+86 
+ušt32_t
+ 
+	mm‘ric
+;
+
+87 
+ušt32_t
+ 
+	mfib_nh_size
+;
+
+88 
+ušt32_t
+ 
+	mnh__addr
+[
+MAX_FIB_PATHS
+];
+
+89 
+ušt8_t
+ 
+	mout_pÜt
+[
+MAX_FIB_PATHS
+];
+
+90 } 
+	g__¹e_ÿche_®igÃd
+;
+
+96 
+	sfib_·th
+ {
+
+97 
+ušt32_t
+ 
+	mnh_
+;
+
+98 
+ušt8_t
+ 
+	mout_pÜt
+;
+
+99 
+ušt32_t
+ 
+	m»fcouÁ
+;
+
+100 
+l2_adj_’Œy
+ *
+	ml2_adj_±r
+;
+
+101 } 
+	g__¹e_ÿche_®igÃd
+;
+
+107 
+	sfib_šfo
+ {
+
+108 
+ušt32_t
+ 
+	md¡__addr
+;
+
+109 
+ušt32_t
+ 
+	mm‘ric
+;
+
+110 
+ušt32_t
+ 
+	mfib_nh_size
+;
+
+111 
+ušt8_t
+ 
+	md•th
+;
+
+112 
+fib_·th
+ *
+	m·th
+[
+MAX_FIB_PATHS
+];
+
+113 } 
+	g__¹e_ÿche_®igÃd
+;
+
+118 
+	sl2_adj_’Œy
+ {
+
+119 
+‘h”_addr
+ 
+	m‘h_addr
+;
+
+120 
+ušt32_t
+ 
+	mNext_hÝ_
+;
+
+121 
+ušt8_t
+ 
+	mout_pÜt_id
+;
+
+122 
+ušt32_t
+ 
+	m»fcouÁ
+;
+
+123 
+ušt8_t
+ 
+	ml2_¡ršg
+[256];
+
+124 
+l2_phy_š‹rçû_t
+ *
+	mphy_pÜt
+;
+
+125 
+ušt8_t
+ 
+	mæags
+;
+
+126 } 
+	g__¹e_ÿche_®igÃd
+;
+
+131 
+	sfib_·th_key_v4
+ {
+
+132 
+ušt32_t
+ 
+	mnh_
+;
+
+133 
+ušt8_t
+ 
+	mout_pÜt
+;
+
+134 
+ušt8_t
+ 
+	mfžËr1
+;
+
+135 
+ušt8_t
+ 
+	mfžËr2
+;
+
+136 
+ušt8_t
+ 
+	mfžËr3
+;
+
+142 
+	sl2_adj_key_v4
+ {
+
+143 
+ušt32_t
+ 
+	mNext_hÝ_
+;
+
+144 
+ušt8_t
+ 
+	mout_pÜt_id
+;
+
+145 
+ušt8_t
+ 
+	mfžËr1
+;
+
+146 
+ušt8_t
+ 
+	mfžËr2
+;
+
+147 
+ušt8_t
+ 
+	mfžËr3
+;
+
+153 
+	sroutšg_bË_’Œy
+ {
+
+154 
+ušt32_t
+ 
+	m
+;
+
+155 
+ušt8_t
+ 
+	mpÜt_id
+;
+
+156 
+l2_adj_’Œy
+ *
+	ml2_adj_±r
+;
+
+157 } 
+	g__¹e_ÿche_®igÃd
+;
+
+162 
+	sl3fwd_¡©s
+ {
+
+163 
+ušt64_t
+ 
+	mnb_rx_l3_pkt
+;
+
+164 
+ušt64_t
+ 
+	mnb_tx_l3_pkt
+;
+
+165 
+ušt64_t
+ 
+	mnb_rx_l3_icmp_pkt
+;
+
+167 
+ušt64_t
+ 
+	mnb_tx_l3_icmp_pkt
+;
+
+169 
+ušt64_t
+ 
+	mnb_l3_drÝ_pkt
+;
+
+170 
+ušt64_t
+ 
+	mtÙ®_nb_rx_l3_pkt
+;
+
+172 
+ušt64_t
+ 
+	mtÙ®_nb_tx_l3_pkt
+;
+
+174 } 
+	tl3_¡©s_t
+;
+
+176 
+	s_´ÙocÞ_ty³
+ {
+
+177 
+ušt8_t
+ 
+	m´ÙocÞ_ty³
+;
+
+178 (*
+	mfunc
+è(
+	m¹e_mbuf
+ **, 
+	mušt16_t
+, 
+	mušt64_t
+,
+
+179 
+	ml2_phy_š‹rçû_t
+ *);
+
+180 } 
+	g__¹e_ÿche_®igÃd
+;
+
+189 
+Ím_š™
+();
+
+198 
+Ím4_bË_rou‹_add
+(
+routšg_šfo
+ *
+šput_¬¿y
+);
+
+209 
+Ím4_bË_rou‹_d–‘e
+(
+ušt32_t
+ 
+
+, 
+ušt8_t
+ 
+d•th
+);
+
+222 
+Ím4_bË_lookup
+(
+¹e_mbuf
+ **
+pkts_bur¡
+, 
+ušt16_t
+ 
+nb_pkts
+,
+
+223 
+ušt64_t
+ 
+v®id_pkts_mask
+,
+
+224 
+l2_phy_š‹rçû_t
+ *
+pÜt
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+],
+
+225 
+ušt64_t
+ *
+h™_mask
+);
+
+236 
+is_v®id_v4_pkt
+(
+v4_hdr
+ *
+pkt
+, 
+ušt32_t
+ 
+lšk_Ën
+);
+
+251 
+l3fwd_rx_v4_·ck‘s
+(
+¹e_mbuf
+ **
+m
+, 
+ušt16_t
+ 
+nb_pkts
+,
+
+252 
+ušt64_t
+ 
+pkt_mask
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt
+);
+
+265 
+g‘_de¡_mac_fÜ_ÃxthÝ
+(
+ušt32_t
+ 
+Ãxt_hÝ_
+,
+
+266 
+ušt8_t
+ 
+out_phy_pÜt
+, 
+‘h”_addr
+ *
+hw_addr
+);
+
+276 
+l2_adj_’Œy
+ *
+»Œ›ve_l2_adj_’Œy
+(
+l2_adj_key_v4
+ 
+l2_adj_key
+);
+
+288 
+l2_adj_’Œy
+ *
+pÝuϋ_l2_adj
+(
+ušt32_t
+ 
+addr
+, 
+ušt8_t
+ 
+pÜtid
+);
+
+299 
+fib_·th
+ *
+pÝuϋ_fib_·th
+(
+ušt32_t
+ 
+nh_
+, 
+ušt8_t
+ 
+pÜtid
+);
+
+310 
+fib_·th
+ *
+»Œ›ve_fib_·th_’Œy
+(
+fib_·th_key_v4
+ 
+·th_key
+);
+
+317 
+»move_fib_l2_adj_’Œy
+(*);
+
+324 
+™”©e_cuckoo_hash_bË
+();
+
+331 
+´št_l3_¡©s
+();
+
+341 
+ušt8_t
+ 
+_hash_lßd_b®ªû
+(
+¹e_mbuf
+ *
+mbuf
+);
+
+353 
+ušt32_t
+ 
+rÙr32
+(ušt32_ˆ
+v®ue
+, 
+couÁ
+);
+
+356 
+»sÞve_l2_adj
+(
+ušt32_t
+ 
+ÃxthÝ_
+, 
+ušt8_t
+ 
+out_pÜt_id
+,
+
+357 cÚ¡ 
+‘h”_addr
+ *
+hw_addr
+);
+
+360 
+l3_´ÙocÞ_ty³_add
+(
+ušt8_t
+ 
+´ÙocÞ_ty³
+,
+
+361 (*
+func
+è(
+¹e_mbuf
+ **, 
+ušt16_t
+, 
+ušt64_t
+,
+
+362 
+l2_phy_š‹rçû_t
+ *));
+
+365 
+	`_loÿl_·ck‘s_´oûss
+(
+¹e_mbuf
+ **, 
+ušt16_t
+, 
+ušt64_t
+,
+
+366 
+l2_phy_š‹rçû_t
+ *);
+
+367 
+	`_loÿl_out_d–iv”
+(
+¹e_mbuf
+ **, 
+ušt16_t
+, 
+ušt64_t
+,
+
+368 
+l2_phy_š‹rçû_t
+ *);
+
+371 
+	`_fÜw¬d_d–iv”
+(
+¹e_mbuf
+ **, 
+ušt16_t
+, 
+ušt64_t
+,
+
+372 
+l2_phy_š‹rçû_t
+ *);
+
+	@VIL/l2l3_stack/l3fwd_lpm6.c
+
+17 
+	~"l3fwd_commÚ.h
+"
+
+18 
+	~"l3fwd_Ím4.h
+"
+
+19 
+	~"l3fwd_Ím6.h
+"
+
+20 
+	~"l3fwd_commÚ.h
+"
+
+21 
+	~"š‹rçû.h
+"
+
+22 
+	~"l2_´Ùo.h
+"
+
+23 
+	~"lib_¬p.h
+"
+
+24 
+	~"lib_icmpv6.h
+"
+
+29 *
+	gÍm6_bË
+;
+
+30 
+¹e_hash
+ *
+	gl2_adj_v6_hash_hªdË
+;
+
+31 
+¹e_hash
+ *
+	gfib_·th_v6_hash_hªdË
+;
+
+32 
+ušt8_t
+ 
+nh_lšks
+[
+MAX_SUPPORTED_FIB_PATHS
+][
+HASH_BUCKET_SIZE
+];
+
+33 
+l3_¡©s_t
+ 
+¡©s
+;
+
+35 
+v6_´ÙocÞ_ty³
+ *
+	g´Ùo_ty³
+[2];
+
+37 
+	$Ím6_š™
+()
+
+42 
+¹e_bË_Ím_v6_·¿ms
+ 
+Ím6_·¿ms
+ = {
+
+43 .
+Çme
+ = "LPMv6",
+
+44 .
+n_ruËs
+ = 
+IPV6_L3FWD_LPM_MAX_RULES
+,
+
+45 .
+numb”_tbl8s
+ = 
+IPV6_L3FWD_LPM_NUMBER_TBL8S
+,
+
+46 .
+’Œy_unique_size
+ = (
+v6_fib_šfo
+),
+
+47 .
+off£t
+ = 128,
+
+51 
+Ím6_bË
+ =
+
+52 
+¹e_bË_Ím_v6_Ýs
+.
+	`f_ü—‹
+(&
+Ím6_·¿ms
+, 
+	`¹e_sock‘_id
+(),
+
+53 (
+v6_fib_šfo
+));
+
+54 ià(
+Ím6_bË
+ =ð
+NULL
+) {
+
+55 
+	`´štf
+("Failedo create LPM IPV6able\n");
+
+60 
+¹e_hash_·¿m‘”s
+ 
+l2_adj_v6_·¿ms
+ = {
+
+61 .
+Çme
+ = "l2_ADJ_IPV6_HASH",
+
+62 .
+’Œ›s
+ = 64,
+
+63 .
+key_Ën
+ = (
+l2_adj_key_v6
+),
+
+64 .
+hash_func
+ = 
+¹e_jhash
+,
+
+65 .
+hash_func_š™_v®
+ = 0,
+
+68 
+l2_adj_v6_hash_hªdË
+ = 
+	`¹e_hash_ü—‹
+(&
+l2_adj_v6_·¿ms
+);
+
+69 ià(
+l2_adj_v6_hash_hªdË
+ =ð
+NULL
+) {
+
+70 
+	`´štf
+("ND for IPV6„te_hash_create failed.\n");
+
+73 
+	`´štf
+("ND IPV6_hash_handle %p\n\n",
+
+74 (*)
+l2_adj_v6_hash_hªdË
+);
+
+78 
+¹e_hash_·¿m‘”s
+ 
+fib_·th_v6_·¿ms
+ = {
+
+79 .
+Çme
+ = "FIB_PATH_IPV6_HASH",
+
+80 .
+’Œ›s
+ = 64,
+
+81 .
+key_Ën
+ = (
+fib_·th_key_v6
+),
+
+82 .
+hash_func
+ = 
+¹e_jhash
+,
+
+83 .
+hash_func_š™_v®
+ = 0,
+
+84 .
+exŒa_æag
+ = 1,
+
+88 
+fib_·th_v6_hash_hªdË
+ = 
+	`¹e_hash_ü—‹
+(&
+fib_·th_v6_·¿ms
+);
+
+90 ià(
+fib_·th_v6_hash_hªdË
+ =ð
+NULL
+) {
+
+91 
+	`´štf
+("FIB…ath„te_hash_create failed\n");
+
+95 
+	}
+}
+
+97 
+	$Ím6_bË_rou‹_add
+(
+v6_routšg_šfo
+ *
+d©a
+)
+
+100 
+v6_routšg_šfo
+ *
+fib
+ = 
+d©a
+;
+
+102 
+¹e_bË_Ím_v6_key
+ 
+Ím6_key
+;
+
+103 
+ušt8_t
+ 
+i
+;
+
+104 
+i
+ = 0; i < 16; i++) {
+
+105 
+Ím6_key
+.
+
+[
+i
+] = 
+fib
+->
+d¡_v6
+[i];
+
+107 
+Ím6_key
+.
+d•th
+ = 
+fib
+->depth;
+
+109 
+TÙ®_rou‹_couÁ
+;
+
+110 
+v6_fib_šfo
+ 
+’Œy
+;
+
+111 
+i
+ = 0; i < 16; i++) {
+
+112 
+’Œy
+.
+d¡_v6
+[
+i
+] = 
+fib
+->dst_ipv6[i];
+
+114 
+’Œy
+.
+d•th
+ = 
+fib
+->depth;
+
+115 
+’Œy
+.
+fib_nh_size
+ = 
+fib
+->fib_nh_size;
+
+117 #ià
+MULTIPATH_FEAT
+
+
+118 ià(
+’Œy
+.
+fib_nh_size
+ =ð0 ||ƒÁry.fib_nh_siz> 
+MAX_FIB_PATHS
+)
+
+120 ià(
+’Œy
+.
+fib_nh_size
+ != 1)
+
+123 
+´štf
+
+
+125 
+’Œy
+.
+fib_nh_size
+);
+
+130 #ià
+MULTIPATH_FEAT
+
+
+131 
+i
+ = 0; i < 
+’Œy
+.
+fib_nh_size
+; i++)
+
+133 
+i
+ = 0; i < 1; i++)
+
+136 
+v6_fib_·th
+ *
+v6_fib_·th_addr
+ = 
+NULL
+;
+
+137 
+v6_fib_·th_addr
+ =
+
+138 
+	`pÝuϋ_v6_fib_·th
+(
+fib
+->
+nh_v6
+[
+i
+], fib->
+out_pÜt
+[i]);
+
+140 ià(
+v6_fib_·th_addr
+) {
+
+141 
+’Œy
+.
+·th
+[
+i
+] = 
+v6_fib_·th_addr
+;
+
+142 
+	`´štf
+("Fib…ath for IPv6 destination = "
+
+145 
+Ím6_key
+.
+
+[0],†pm6_key.ip[1],†pm6_key.ip[2],
+
+146 
+Ím6_key
+.
+
+[3],†pm6_key.ip[4],†pm6_key.ip[5],
+
+147 
+Ím6_key
+.
+
+[6],†pm6_key.ip[7],†pm6_key.ip[8],
+
+148 
+Ím6_key
+.
+
+[9],†pm6_key.ip[10],†pm6_key.ip[11],
+
+149 
+Ím6_key
+.
+
+[12],†pm6_key.ip[13],
+
+150 
+Ím6_key
+.
+
+[14],†pm6_key.[15], 
+fib
+->
+d•th
+,
+
+151 
+v6_fib_·th_addr
+,
+
+152 (*)
+’Œy
+.
+·th
+[
+i
+]->
+l2_adj_v6_±r
+);
+
+154 
+	`´štf
+("Fib…ath for IPv6 destination = "
+
+157 
+Ím6_key
+.
+
+[0],†pm6_key.ip[1],†pm6_key.ip[2],
+
+158 
+Ím6_key
+.
+
+[3],†pm6_key.ip[4],†pm6_key.ip[5],
+
+159 
+Ím6_key
+.
+
+[6],†pm6_key.ip[7],†pm6_key.ip[8],
+
+160 
+Ím6_key
+.
+
+[9],†pm6_key.ip[10],†pm6_key.ip[11],
+
+161 
+Ím6_key
+.
+
+[12],†pm6_key.ip[13],
+
+162 
+Ím6_key
+.
+
+[14],†pm6_key.[15], 
+fib
+->
+d•th
+);
+
+163 
+’Œy
+.
+·th
+[
+i
+] = 
+NULL
+;
+
+167 
+key_found
+, 
+»t
+;
+
+168 *
+’Œy_±r
+;
+
+171 
+	`´štf
+("%s, Lš%u \n", 
+__FUNCTION__
+, 
+__LINE__
+);
+
+173 
+»t
+ =
+
+174 
+¹e_bË_Ím_v6_Ýs
+.
+	`f_add
+(
+Ím6_bË
+, (*)&
+Ím6_key
+, &
+’Œy
+,
+
+175 &
+key_found
+, &
+’Œy_±r
+);
+
+176 
+	`´štf
+("%s, Lš%u \n", 
+__FUNCTION__
+, 
+__LINE__
+);
+
+178 ià(
+»t
+) {
+
+179 
+	`´štf
+("Failedo Add IP„oute in LPMv6\n");
+
+182 
+	`´štf
+("Added„outeo IPv6 LPMable (IPv6 destination = "
+
+185 
+Ím6_key
+.
+
+[0],†pm6_key.ip[1],†pm6_key.ip[2],†pm6_key.ip[3],
+
+186 
+Ím6_key
+.
+
+[4],†pm6_key.ip[5],†pm6_key.ip[6],†pm6_key.ip[7],
+
+187 
+Ím6_key
+.
+
+[8],†pm6_key.ip[9],†pm6_key.ip[10],†pm6_key.ip[11],
+
+188 
+Ím6_key
+.
+
+[12],†pm6_key.ip[13],†pm6_key.ip[14],
+
+189 
+Ím6_key
+.
+
+[15], 
+fib
+->
+d•th
+);
+
+191 
+TÙ®_rou‹_couÁ
+++;
+
+192 
+	`´štf
+("TÙ® Rou‹d Added : %u, Key_found: %d\n", 
+TÙ®_rou‹_couÁ
+,
+
+193 
+key_found
+);
+
+195 ià(
+TÙ®_rou‹_couÁ
+ == 2)
+
+196 
+	`v6_™”©e__hash_bË
+();
+
+199 
+	}
+}
+
+202 
+	$Ím6_bË_rou‹_d–‘e
+(
+ušt8_t
+ 
+d¡_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+], ušt8_ˆ
+d•th
+)
+
+206 
+¹e_bË_Ím_v6_key
+ 
+Ím6_key
+;
+
+207 
+	`memýy
+(&
+Ím6_key
+.
+
+, &
+d¡_v6
+, (
+RTE_LPM_IPV6_ADDR_SIZE
+));
+
+208 
+Ím6_key
+.
+d•th
+ = depth;
+
+209 
+key_found
+, 
+»t
+;
+
+210 *
+’Œy
+ = 
+NULL
+;
+
+211 
+’Œy
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 512, 
+RTE_CACHE_LINE_SIZE
+);
+
+213 
+»t
+ =
+
+214 
+¹e_bË_Ím_v6_Ýs
+.
+	`f_d–‘e
+(
+Ím6_bË
+, &
+Ím6_key
+, &
+key_found
+,
+
+215 
+’Œy
+);
+
+217 ià(
+»t
+) {
+
+218 
+	`´štf
+("Failedo Delete IP„oute from LPMv6able\n");
+
+222 
+	`´štf
+("Deleted„oute from IPv6 LPMable (IPv6 destination = "
+
+225 
+Ím6_key
+.
+
+[0],†pm6_key.ip[1],†pm6_key.ip[2],†pm6_key.ip[3],
+
+226 
+Ím6_key
+.
+
+[4],†pm6_key.ip[5],†pm6_key.ip[6],†pm6_key.ip[7],
+
+227 
+Ím6_key
+.
+
+[8],†pm6_key.ip[9],†pm6_key.ip[10],†pm6_key.ip[11],
+
+228 
+Ím6_key
+.
+
+[12],†pm6_key.ip[13],†pm6_key.ip[14],
+
+229 
+Ím6_key
+.
+
+[15],†pm6_key.
+d•th
+, 
+key_found
+);
+
+232 
+	`»move_v6_fib_l2_adj_’Œy
+(
+’Œy
+);
+
+233 
+	`¹e_ä“
+(
+’Œy
+);
+
+235 
+	}
+}
+
+238 
+	$Ím6_bË_lookup
+(
+¹e_mbuf
+ **
+pkts_bur¡
+,
+
+239 
+ušt16_t
+ 
+nb_pkts
+,
+
+240 
+ušt64_t
+ 
+pkts_mask
+,
+
+241 
+l2_phy_š‹rçû_t
+ *
+pÜt_±r
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+],
+
+242 
+ušt64_t
+ *
+h™_mask
+)
+
+244 
+v6_routšg_bË_’Œy
+
+
+245 *
+v6_’Œ›s
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+246 
+ušt64_t
+ 
+lookup_h™_mask_v6
+ = 0;
+
+247 
+¡©us
+;
+
+248 
+ušt64_t
+ 
+lookup_miss_mask
+ = 
+pkts_mask
+;
+
+250 
+ušt32_t
+ 
+d¡_addr_off£t
+ =
+
+251 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_DST_ADR_OFST_IPV6
+;
+
+252 
+ušt64_t
+ 
+pkts_key_mask
+ = 
+pkts_mask
+;
+
+255 ; 
+pkts_key_mask
+;) {
+
+257 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+pkts_key_mask
+);
+
+258 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+259 
+pkts_key_mask
+ &ð~
+pkt_mask
+;
+
+261 
+ušt8_t
+ *
+Ím6_key
+;
+
+262 
+ušt8_t
+ 
+d¡_addr
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+263 
+	`memýy
+(
+d¡_addr
+,
+
+264 (
+ušt8_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št8_t
+ *è
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkts_bur¡
+[
+pos
+],
+
+270 
+	`memýy
+(
+Ím6_key
+, 
+d¡_addr
+, 
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+273 
+	`´štf
+(" IPV6 Lookup Mask Before = %p,‚b_pkts :%u\n",
+
+274 (*)
+pkts_mask
+, 
+nb_pkts
+);
+
+275 
+¡©us
+ =
+
+276 
+¹e_bË_Ím_Ýs
+.
+	`f_lookup
+(
+Ím6_bË
+, 
+pkts_bur¡
+, 
+pkts_mask
+,
+
+277 &
+lookup_h™_mask_v6
+,
+
+278 (**)
+v6_’Œ›s
+);
+
+279 ià(
+¡©us
+) {
+
+280 
+	`´štf
+("LPM Lookup failed for IP„oute\n");
+
+283 
+	`´štf
+(" IPV6 Looku°Mask Aᔠ= %p\n", (*)
+lookup_h™_mask_v6
+);
+
+284 
+lookup_miss_mask
+ =†ookup_miss_mask & (~
+lookup_h™_mask_v6
+);
+
+285 ià(
+L3FWD_DEBUG
+) {
+
+286 
+	`´štf
+("AFTER†ookup_hit_mask = %p,†ookup_miss_mask =%p\n",
+
+287 (*)
+lookup_h™_mask_v6
+, (*)
+lookup_miss_mask
+);
+
+290 ; 
+lookup_miss_mask
+;) {
+
+292 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+lookup_miss_mask
+);
+
+293 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+294 
+lookup_miss_mask
+ &ð~
+pkt_mask
+;
+
+295 
+	`¹e_pktmbuf_ä“
+(
+pkts_bur¡
+[
+pos
+]);
+
+296 
+pkts_bur¡
+[
+pos
+] = 
+NULL
+;
+
+297 ià(
+L3FWD_DEBUG
+)
+
+298 
+	`´štf
+("\n DROP PKT IPV4 Lookup_miss_Mask = %p\n",
+
+299 (*)
+lookup_miss_mask
+);
+
+302 *
+h™_mask
+ = 
+lookup_h™_mask_v6
+;
+
+303 ; 
+lookup_h™_mask_v6
+;) {
+
+304 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+lookup_h™_mask_v6
+);
+
+305 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+306 
+lookup_h™_mask_v6
+ &ð~
+pkt_mask
+;
+
+307 
+¹e_mbuf
+ *
+pkt
+ = 
+pkts_bur¡
+[
+pos
+];
+
+309 
+v6_fib_šfo
+ *
+’Œy
+ =
+
+310 (
+v6_fib_šfo
+ *)
+v6_’Œ›s
+[
+pos
+];
+
+312 #ià
+MULTIPATH_FEAT
+
+
+314 
+ušt8_t
+ 
+ecmp_·th
+ = 
+	`v6_hash_lßd_b®ªû
+(
+pkts_bur¡
+[
+pos
+]);
+
+315 
+ušt8_t
+ 
+£Ëùed_·th
+ = 0;
+
+316 
+v6_fib_·th
+ *
+fib_·th
+ = 
+NULL
+;
+
+317 ià(((
+’Œy
+->
+fib_nh_size
+ != 0)
+
+318 && (
+’Œy
+->
+fib_nh_size
+ - 1è< 
+MAX_SUPPORTED_FIB_PATHS
+)
+
+319 && ((
+ecmp_·th
+ !ð0è&& (ecmp_·th - 1è< 
+HASH_BUCKET_SIZE
+))
+
+320 
+£Ëùed_·th
+ =
+
+321 
+nh_lšks
+[
+’Œy
+->
+fib_nh_size
+ - 1][
+ecmp_·th
+ - 1];
+
+322 ià(
+£Ëùed_·th
+ < 
+MAX_FIB_PATHS
+)
+
+323 
+fib_·th
+ = 
+’Œy
+->
+·th
+[
+£Ëùed_·th
+];
+
+324 
+´štf
+
+
+326 
+’Œy
+->
+fib_nh_size
+, 
+ecmp_·th
+, 
+£Ëùed_·th
+);
+
+328 
+v6_fib_·th
+ *
+fib_·th
+ = 
+’Œy
+->
+·th
+[0];
+
+330 ià(
+fib_·th
+ =ð
+NULL
+) {
+
+331 
+	`´štf
+("Fib_path is NULL, ND has‚ot„esolved\n");
+
+332 
+	`¹e_pktmbuf_ä“
+(
+pkt
+);
+
+333 
+pkts_bur¡
+[
+pos
+] = 
+NULL
+;
+
+334 
+¡©s
+.
+nb_l3_drÝ_pkt
+++;
+
+335 *
+h™_mask
+ &ð~
+pkt_mask
+;
+
+336 
+´štf
+
+
+341 ià(
+fib_·th
+->
+l2_adj_v6_±r
+->
+æags
+ =ð
+L2_ADJ_UNRESOLVED
+) {
+
+342 
+	`¹e_pktmbuf_ä“
+(
+pkts_bur¡
+[
+pos
+]);
+
+343 
+pkts_bur¡
+[
+pos
+] = 
+NULL
+;
+
+344 *
+h™_mask
+ &ð~
+pkt_mask
+;
+
+345 ià(
+L3FWD_DEBUG
+)
+
+346 
+´štf
+
+
+351 
+ušt8_t
+ *
+‘h_de¡
+ =
+
+352 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+, 
+MBUF_HDR_ROOM
+);
+
+353 
+ušt8_t
+ *
+‘h_¤c
+ =
+
+354 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+, 
+MBUF_HDR_ROOM
+ + 6);
+
+355 ià(
+L3FWD_DEBUG
+) {
+
+356 
+´štf
+
+
+361 
+‘h_de¡
+[0],ƒth_dest[1],ƒth_dest[2],
+
+362 
+‘h_de¡
+[3],
+
+363 
+‘h_de¡
+[4],ƒth_de¡[5], 
+‘h_¤c
+[0],
+
+364 
+‘h_¤c
+[1],
+
+365 
+‘h_¤c
+[2],ƒth_src[3],
+
+366 
+‘h_¤c
+[4],ƒth_src[5]);
+
+370 
+	`memýy
+(
+‘h_de¡
+, 
+fib_·th
+->
+l2_adj_v6_±r
+->
+l2_¡ršg
+,
+
+371 (
+‘h”_addr
+) * 2 + 2);
+
+373 ià(
+L3FWD_DEBUG
+) {
+
+374 
+´štf
+
+
+377 "%02x:%02x\n", 
+‘h_de¡
+[0],
+
+378 
+‘h_de¡
+[1],ƒth_dest[2],ƒth_dest[3],
+
+379 
+‘h_de¡
+[4],
+
+380 
+‘h_de¡
+[5], 
+‘h_¤c
+[0],ƒth_src[1],
+
+381 
+‘h_¤c
+[2],
+
+382 
+‘h_¤c
+[3],ƒth_src[4],ƒth_src[5]);
+
+384 
+pÜt_±r
+[
+pos
+] = 
+fib_·th
+->
+l2_adj_v6_±r
+->
+phy_pÜt
+;
+
+387 ià(
+L3FWD_DEBUG
+)
+
+388 
+	`´štf
+("Successfully sento…ort %u \n\r",
+
+389 
+fib_·th
+->
+out_pÜt
+);
+
+392 
+	}
+}
+
+394 
+	$l3fwd_rx_v6_·ck‘s
+(
+¹e_mbuf
+ **
+m
+, 
+ušt16_t
+ 
+nb_pkts
+,
+
+395 
+ušt64_t
+ 
+v®id_pkts_mask
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt
+)
+
+397 ià(!
+pÜt
+)
+
+399 ià(
+L3FWD_DEBUG
+) {
+
+400 
+´štf
+
+
+402 
+PRIu64
+ "\n", 
+nb_pkts
+, 
+pÜt
+->
+pmdid
+, 
+v®id_pkts_mask
+);
+
+404 
+ušt64_t
+ 
+pkts_fÜ_´oûss
+ = 
+v®id_pkts_mask
+;
+
+406 
+v6_hdr
+ *ipv6_hdr;
+
+408 
+ušt64_t
+ 
+icmp_pkts_mask
+ = 
+v®id_pkts_mask
+;
+
+409 
+ušt64_t
+ 
+v6_fÜw¬d_pkts_mask
+ = 
+v®id_pkts_mask
+;
+
+410 
+ušt16_t
+ 
+nb_icmpv6_pkt
+ = 0;
+
+411 
+ušt16_t
+ 
+nb_l3_pkt
+ = 0;
+
+413 
+ušt8_t
+ 
+cÚfigu»d_pÜt_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+] = { 0 };
+
+414 
+št8_t
+ 
+sÞic™ed_node_muÉiÿ¡_addr
+[
+RTE_LPM_IPV6_ADDR_SIZE
+] = {
+
+417 
+ušt8_t
+ 
+de¡_v6_addr
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+419 
+	`mem£t
+(
+de¡_v6_addr
+, 0, 
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+421 
+	`´štf
+("\n% : LINE # %u\n", 
+__FUNCTION__
+, 
+__LINE__
+);
+
+422 
+ii
+;
+
+423 ià(
+pÜt
+->
+v6_li¡
+ !ð
+NULL
+) {
+
+424 
+ii
+ = 0; ii < 16; ii += 1) {
+
+425 
+cÚfigu»d_pÜt_v6
+[
+ii
+] =
+
+426 ((
+v6li¡_t
+ *è(
+pÜt
+->
+v6_li¡
+))->
+addr
+[
+ii
+];
+
+431 
+ii
+ = 0; ii < 16; ii += 2) {
+
+432 ià(
+pÜt
+ &&…Üt->
+v6_li¡
+)
+
+433 
+	`´štf
+("%02X%02X ",
+
+434 ((
+v6li¡_t
+ *è(
+pÜt
+->
+v6_li¡
+))->
+addr
+[
+ii
+],
+
+435 ((
+v6li¡_t
+ *è(
+pÜt
+->
+v6_li¡
+))->
+addr
+[
+ii
+ +
+
+439 
+	`´štf
+("\n% : LINE # %u\n", 
+__FUNCTION__
+, 
+__LINE__
+);
+
+440 
+ii
+ = 0; ii < 16; ii += 2) {
+
+441 
+	`´štf
+("%02X%02X ", 
+cÚfigu»d_pÜt_v6
+[
+ii
+],
+
+442 
+cÚfigu»d_pÜt_v6
+[
+ii
+ + 1]);
+
+445 ; 
+pkts_fÜ_´oûss
+;) {
+
+447 
+	`´štf
+("\n% : LINE # %u\n", 
+__FUNCTION__
+, 
+__LINE__
+);
+
+448 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+pkts_fÜ_´oûss
+);
+
+449 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+450 
+pkts_fÜ_´oûss
+ &ð~
+pkt_mask
+;
+
+453 
+	`´štf
+("\n% : LINE #%u, POS%u\n", 
+__FUNCTION__
+, 
+__LINE__
+,
+
+454 
+pos
+);
+
+456 ià(
+m
+[
+pos
+] =ð
+NULL
+) {
+
+457 
+	`´štf
+("\n%s : M_POS IS NULLLLLLL, LINE: %u\n",
+
+458 
+__FUNCTION__
+, 
+__LINE__
+);
+
+461 
+v6_hdr
+ =
+
+462 
+	`¹e_pktmbuf_mtod_off£t
+(
+m
+[
+pos
+], 
+v6_hdr
+ *,
+
+463 (
+‘h”_hdr
+));
+
+464 
+	`´štf
+("\n% : LINE # %u\n", 
+__FUNCTION__
+, 
+__LINE__
+);
+
+465 
+ii
+ = 0; ii < 13; ii += 1) {
+
+466 
+de¡_v6_addr
+[
+ii
+] = 
+v6_hdr
+->
+d¡_addr
+[ii];
+
+469 
+	`´štf
+("\n");
+
+470 
+	`´štf
+("\n% : LINE # %u\n", 
+__FUNCTION__
+, 
+__LINE__
+);
+
+471 
+ii
+ = 0; ii < 16; ii += 2) {
+
+472 
+	`´štf
+("%02X%02X ", 
+v6_hdr
+->
+d¡_addr
+[
+ii
+],
+
+473 
+v6_hdr
+->
+d¡_addr
+[
+ii
+ + 1]);
+
+475 
+	`´štf
+("\n");
+
+476 
+	`´štf
+("\n% : LINE # %u\n", 
+__FUNCTION__
+, 
+__LINE__
+);
+
+477 
+ii
+ = 0; ii < 16; ii += 2) {
+
+478 
+	`´štf
+("%02X%02X ", 
+de¡_v6_addr
+[
+ii
+],
+
+479 
+de¡_v6_addr
+[
+ii
+ + 1]);
+
+482 
+	`´štf
+("\n% : LINE # %u", 
+__FUNCTION__
+, 
+__LINE__
+);
+
+483 ià((
+v6_hdr
+->
+´Ùo
+ =ð
+IPPROTO_ICMPV6
+) &&
+
+484 (!
+memcmp
+
+
+485 (&
+v6_hdr
+->
+d¡_addr
+, &
+cÚfigu»d_pÜt_v6
+[0],
+
+486 
+RTE_LPM_IPV6_ADDR_SIZE
+)
+
+487 || !
+	`memcmp
+(&
+de¡_v6_addr
+[0],
+
+488 &
+sÞic™ed_node_muÉiÿ¡_addr
+[0],
+
+489 
+RTE_LPM_IPV6_ADDR_SIZE
+))) {
+
+490 
+v6_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 
+´štf
+
+
+504 
+´Ùo_ty³
+[
+IP_LOCAL
+]->
+	`func
+(
+m
+, 
+nb_icmpv6_pkt
+, 
+icmp_pkts_mask
+,
+
+505 
+pÜt
+);
+
+508 ià(
+v6_fÜw¬d_pkts_mask
+) {
+
+509 ià(
+L3FWD_DEBUG
+)
+
+510 
+´štf
+
+
+512 
+´Ùo_ty³
+[
+IP_REMOTE
+]->
+	`func
+(
+m
+, 
+nb_l3_pkt
+,
+
+513 
+v6_fÜw¬d_pkts_mask
+, 
+pÜt
+);
+
+515 
+	}
+}
+
+517 
+v6_fib_·th
+ *
+	$pÝuϋ_v6_fib_·th
+(
+ušt8_t
+
+
+518 
+nh_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+],
+
+519 
+ušt8_t
+ 
+pÜtid
+)
+
+522 
+fib_·th_key_v6
+ 
+·th_key
+;
+
+523 
+ušt8_t
+ 
+i
+;
+
+524 
+i
+ = 0; i < 16; i++) {
+
+525 
+·th_key
+.
+nh_v6
+[
+i
+] =‚h_ipv6[i];
+
+527 
+·th_key
+.
+out_pÜt
+ = 
+pÜtid
+;
+
+528 
+·th_key
+.
+fžËr1
+ = 0;
+
+529 
+·th_key
+.
+fžËr2
+ = 0;
+
+530 
+·th_key
+.
+fžËr3
+ = 0;
+
+532 
+v6_fib_·th
+ *
+fib_d©a
+ = 
+NULL
+;
+
+534 
+fib_d©a
+ = 
+	`»Œ›ve_v6_fib_·th_’Œy
+(
+·th_key
+);
+
+536 ià(
+fib_d©a
+) {
+
+538 
+	`´štf
+(" Fib…athƒntryƒxists for IPv6 destination = "
+
+541 
+nh_v6
+[0],‚h_ipv6[1],‚h_ipv6[2],‚h_ipv6[3],
+
+542 
+nh_v6
+[4],‚h_ipv6[5],‚h_ipv6[6],‚h_ipv6[7],
+
+543 
+nh_v6
+[8],‚h_ipv6[9],‚h_ipv6[10],‚h_ipv6[11],
+
+544 
+nh_v6
+[12],‚h_ipv6[13],‚h_ipv6[14],‚h_ipv6[15],
+
+545 
+pÜtid
+);
+
+547 
+fib_d©a
+->
+»fcouÁ
+++;
+
+548  
+fib_d©a
+;
+
+550 
+	`´štf
+("IPv6 fib_pathƒntry Doesn't Exists.......\n");
+
+554 
+fib_d©a
+ = 
+NULL
+;
+
+555 
+l2_adj_v6_’Œy
+ *
+l2_adj_±r
+ = 
+NULL
+;
+
+556 
+l2_adj_±r
+ = 
+	`pÝuϋ_v6_l2_adj
+(
+nh_v6
+, 
+pÜtid
+);
+
+558 ià(
+l2_adj_±r
+) {
+
+560 
+ušt32_t
+ 
+size
+ =
+
+561 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+v6_fib_·th
+));
+
+562 
+fib_d©a
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+564 
+i
+ = 0; i < 16; i++) {
+
+565 
+fib_d©a
+->
+nh_v6
+[
+i
+] =‚h_ipv6[i];
+
+567 
+fib_d©a
+->
+out_pÜt
+ = 
+pÜtid
+;
+
+570 
+fib_d©a
+->
+»fcouÁ
+++;
+
+571 
+fib_d©a
+->
+l2_adj_v6_±r
+ = 
+l2_adj_±r
+;
+
+574 
+	`¹e_hash_add_key_d©a
+(
+fib_·th_v6_hash_hªdË
+, &
+·th_key
+,
+
+575 
+fib_d©a
+);
+
+576 
+´štf
+
+
+578 
+l2_adj_±r
+, 
+fib_d©a
+);
+
+579  
+fib_d©a
+;
+
+581 
+´štf
+
+
+584  
+NULL
+;
+
+586 
+	}
+}
+
+588 
+l2_adj_v6_’Œy
+ *
+	$pÝuϋ_v6_l2_adj
+(
+ušt8_t
+
+
+589 
+nh_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+],
+
+590 
+ušt8_t
+ 
+pÜtid
+)
+
+593 
+l2_adj_key_v6
+ 
+l2_adj_key
+;
+
+594 
+ušt8_t
+ 
+i
+;
+
+595 
+i
+ = 0; i < 16; i++) {
+
+596 
+l2_adj_key
+.
+nh_v6
+[
+i
+] =‚h_ipv6[i];
+
+598 
+l2_adj_key
+.
+out_pÜt_id
+ = 
+pÜtid
+;
+
+599 
+l2_adj_key
+.
+fžËr1
+ = 0;
+
+600 
+l2_adj_key
+.
+fžËr2
+ = 0;
+
+601 
+l2_adj_key
+.
+fžËr3
+ = 0;
+
+603 
+l2_adj_v6_’Œy
+ *
+adj_d©a
+ = 
+NULL
+;
+
+604 
+‘h”_addr
+ 
+‘h_d¡
+;
+
+606 
+adj_d©a
+ = 
+	`»Œ›ve_v6_l2_adj_’Œy
+(
+l2_adj_key
+);
+
+608 ià(
+adj_d©a
+) {
+
+610 
+	`´štf
+("ipv6_l2_adj_entryƒxists for Next Hop IPv6 = "
+
+613 
+nh_v6
+[0],‚h_ipv6[1],‚h_ipv6[2],‚h_ipv6[3],
+
+614 
+nh_v6
+[4],‚h_ipv6[5],‚h_ipv6[6],‚h_ipv6[7],
+
+615 
+nh_v6
+[8],‚h_ipv6[9],‚h_ipv6[10],‚h_ipv6[11],
+
+616 
+nh_v6
+[12],‚h_ipv6[13],‚h_ipv6[14],‚h_ipv6[15],
+
+617 
+pÜtid
+);
+
+619 
+	`‘h”_addr_cÝy
+(&
+adj_d©a
+->
+‘h_addr
+, &
+‘h_d¡
+);
+
+620 
+adj_d©a
+->
+»fcouÁ
+++;
+
+621  
+adj_d©a
+;
+
+624 
+‘h”_addr
+ 
+‘h_¤c
+;
+
+625 
+ušt16_t
+ 
+‘h”_ty³
+ = 0x086DD;
+
+626 
+l2_phy_š‹rçû_t
+ *
+pÜt
+;
+
+627 
+pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+pÜtid
+);
+
+628 ià(
+pÜt
+ =ð
+NULL
+) {
+
+629 
+	`´štf
+("PORT %u IS DOWN.. UÇbˁشoûs !\n", 
+pÜtid
+);
+
+630  
+NULL
+;
+
+633 
+	`memýy
+(&
+‘h_¤c
+, &
+pÜt
+->
+maÿddr
+, (
+‘h”_addr
+));
+
+634 
+ušt32_t
+ 
+size
+ = 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+l2_adj_’Œy
+));
+
+635 
+adj_d©a
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+636 ià(
+adj_d©a
+ =ð
+NULL
+) {
+
+637 
+	`´štf
+("L2 Adjacency memory‡llocation failed !\n");
+
+638  
+NULL
+;
+
+641 
+adj_d©a
+->
+out_pÜt_id
+ = 
+pÜtid
+;
+
+643 
+i
+ = 0; i < 16; i++) {
+
+644 
+adj_d©a
+->
+nh_v6
+[
+i
+] =‚h_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_v6_hash_hªdË
+, &
+l2_adj_key
+, 
+adj_d©a
+);
+
+652 ià(
+	`g‘_de¡_mac_fÜ_ÃxthÝ_v6
+(
+nh_v6
+, 
+pÜtid
+, &
+‘h_d¡
+)) {
+
+654 
+	`‘h”_addr_cÝy
+(&
+‘h_d¡
+, &
+adj_d©a
+->
+‘h_addr
+);
+
+657 
+	`memýy
+(&
+adj_d©a
+->
+l2_¡ršg
+, &
+‘h_d¡
+,
+
+658 (
+‘h”_addr
+));
+
+659 
+	`memýy
+(&
+adj_d©a
+->
+l2_¡ršg
+[6], &
+‘h_¤c
+,
+
+660 (
+‘h”_addr
+));
+
+661 
+	`memýy
+(&
+adj_d©a
+->
+l2_¡ršg
+[12], &
+‘h”_ty³
+, 2);
+
+663 
+adj_d©a
+->
+æags
+ = 
+L2_ADJ_RESOLVED
+;
+
+664 
+´štf
+
+
+666 
+adj_d©a
+);
+
+668  
+adj_d©a
+;
+
+670 
+adj_d©a
+->
+æags
+ = 
+L2_ADJ_UNRESOLVED
+;
+
+671 
+´štf
+
+
+674  
+NULL
+;
+
+675 
+	}
+}
+
+677 
+l2_adj_v6_’Œy
+ *
+	$»Œ›ve_v6_l2_adj_’Œy
+(
+l2_adj_key_v6
+
+
+678 
+l2_adj_key
+)
+
+680 
+l2_adj_v6_’Œy
+ *
+»t_l2_adj_d©a
+ = 
+NULL
+;
+
+682 
+»t
+ =
+
+683 
+	`¹e_hash_lookup_d©a
+(
+l2_adj_v6_hash_hªdË
+, &
+l2_adj_key
+,
+
+684 (**)&
+»t_l2_adj_d©a
+);
+
+685 ià(
+»t
+ < 0) {
+
+686 
+´štf
+
+
+688 
+»t
+, 
+EINVAL
+, 
+ENOENT
+);
+
+690 
+	`´štf
+("L2 Adj hash†ookup Successful..!!!\n");
+
+691  
+»t_l2_adj_d©a
+;
+
+693  
+NULL
+;
+
+694 
+	}
+}
+
+696 
+	$g‘_de¡_mac_fÜ_ÃxthÝ_v6
+(
+ušt8_t
+ 
+nh_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+],
+
+697 
+ušt32_t
+ 
+out_phy_pÜt
+,
+
+698 
+‘h”_addr
+ *
+hw_addr
+)
+
+700 
+nd_’Œy_d©a
+ *
+nd_d©a
+ = 
+NULL
+;
+
+701 
+nd_key_v6
+ 
+tmp_nd_key
+;
+
+702 
+ušt8_t
+ 
+i
+;
+
+703 
+i
+ = 0; i < 16; i++) {
+
+704 
+tmp_nd_key
+.
+v6
+[
+i
+] = 
+nh_v6
+[i];
+
+706 
+tmp_nd_key
+.
+pÜt_id
+ = 
+out_phy_pÜt
+;
+
+708 
+nd_d©a
+ = 
+	`»Œ›ve_nd_’Œy
+(
+tmp_nd_key
+);
+
+709 ià(
+nd_d©a
+ =ð
+NULL
+) {
+
+710 
+	`´štf
+("NDƒntry is‚ot found\n");
+
+713 
+	`‘h”_addr_cÝy
+(&
+nd_d©a
+->
+‘h_addr
+, 
+hw_addr
+);
+
+716 
+	}
+}
+
+718 
+v6_fib_·th
+ *
+	$»Œ›ve_v6_fib_·th_’Œy
+(
+fib_·th_key_v6
+
+
+719 
+·th_key
+)
+
+722 
+v6_fib_·th
+ *
+»t_fib_·th_d©a
+ = 
+NULL
+;
+
+723 
+»t
+ =
+
+724 
+	`¹e_hash_lookup_d©a
+(
+fib_·th_v6_hash_hªdË
+, &
+·th_key
+,
+
+725 (**)&
+»t_fib_·th_d©a
+);
+
+726 ià(
+»t
+ < 0) {
+
+727 
+´štf
+
+
+729 
+»t
+, 
+EINVAL
+, 
+ENOENT
+);
+
+730  
+NULL
+;
+
+732  
+»t_fib_·th_d©a
+;
+
+734 
+	}
+}
+
+736 
+	$»move_v6_fib_l2_adj_’Œy
+(*
+’Œy
+)
+
+738 
+v6_fib_šfo
+ 
+’Œy1
+;
+
+739 
+	`memýy
+(&
+’Œy1
+, 
+’Œy
+, (
+v6_fib_šfo
+));
+
+741 
+v6_fib_·th
+ *
+fib_·th_addr
+ = 
+’Œy1
+.
+·th
+[0];
+
+742 ià(
+fib_·th_addr
+->
+»fcouÁ
+ > 1) {
+
+743 
+	`´štf
+("BEFORE fib_pathƒntry is‚ot Removed!‚h_iPv6 = "
+
+746 
+fib_·th_addr
+->
+nh_v6
+[0], fib_path_addr->nh_ipv6[1],
+
+747 
+fib_·th_addr
+->
+nh_v6
+[2], fib_path_addr->nh_ipv6[3],
+
+748 
+fib_·th_addr
+->
+nh_v6
+[4], fib_path_addr->nh_ipv6[5],
+
+749 
+fib_·th_addr
+->
+nh_v6
+[6], fib_path_addr->nh_ipv6[7],
+
+750 
+fib_·th_addr
+->
+nh_v6
+[8], fib_path_addr->nh_ipv6[9],
+
+751 
+fib_·th_addr
+->
+nh_v6
+[10], fib_path_addr->nh_ipv6[11],
+
+752 
+fib_·th_addr
+->
+nh_v6
+[12], fib_path_addr->nh_ipv6[13],
+
+753 
+fib_·th_addr
+->
+nh_v6
+[14], fib_path_addr->nh_ipv6[15],
+
+754 
+fib_·th_addr
+->
+out_pÜt
+, fib_·th_addr->
+»fcouÁ
+);
+
+755 
+fib_·th_addr
+->
+»fcouÁ
+--;
+
+756 
+	`´štf
+("AFTER fib_pathƒntry is‚ot Removed!‚h_iPv6 = "
+
+759 
+fib_·th_addr
+->
+nh_v6
+[0], fib_path_addr->nh_ipv6[1],
+
+760 
+fib_·th_addr
+->
+nh_v6
+[2], fib_path_addr->nh_ipv6[3],
+
+761 
+fib_·th_addr
+->
+nh_v6
+[4], fib_path_addr->nh_ipv6[5],
+
+762 
+fib_·th_addr
+->
+nh_v6
+[6], fib_path_addr->nh_ipv6[7],
+
+763 
+fib_·th_addr
+->
+nh_v6
+[8], fib_path_addr->nh_ipv6[9],
+
+764 
+fib_·th_addr
+->
+nh_v6
+[10], fib_path_addr->nh_ipv6[11],
+
+765 
+fib_·th_addr
+->
+nh_v6
+[12], fib_path_addr->nh_ipv6[13],
+
+766 
+fib_·th_addr
+->
+nh_v6
+[14], fib_path_addr->nh_ipv6[15],
+
+767 
+fib_·th_addr
+->
+out_pÜt
+, fib_·th_addr->
+»fcouÁ
+);
+
+770 
+l2_adj_v6_’Œy
+ *
+adj_addr
+ = 
+NULL
+;
+
+771 
+adj_addr
+ = 
+fib_·th_addr
+->
+l2_adj_v6_±r
+;
+
+773 ià(
+adj_addr
+ !ð
+NULL
+) {
+
+774 
+	`´štf
+("%s: CHECK %d\n\r", 
+__FUNCTION__
+, 
+__LINE__
+);
+
+775 
+l2_adj_key_v6
+ 
+l2_adj_key
+;
+
+776 
+	`memýy
+(&
+l2_adj_key
+.
+nh_v6
+, 
+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–_key
+(
+l2_adj_v6_hash_hªdË
+,
+
+781 &
+l2_adj_key
+);
+
+782 
+	`¹e_ä“
+(
+adj_addr
+);
+
+783 
+adj_addr
+ = 
+NULL
+;
+
+786 
+fib_·th_key_v6
+ 
+·th_key
+;
+
+787 
+	`memýy
+(&
+·th_key
+.
+nh_v6
+, 
+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–_key
+(
+fib_·th_v6_hash_hªdË
+, &
+·th_key
+);
+
+791 
+	`¹e_ä“
+(
+fib_·th_addr
+);
+
+792 
+fib_·th_addr
+ = 
+NULL
+;
+
+794 
+	}
+}
+
+796 
+	$is_v®id_v6_pkt
+(
+v6_hdr
+ *
+pkt
+, 
+ušt32_t
+ 
+lšk_Ën
+)
+
+798 ià(
+lšk_Ën
+ < (
+v4_hdr
+))
+
+800 ià(
+	`¹e_ýu_to_be_16
+(
+pkt
+->
+·ylßd_Ën
+è< (
+v6_hdr
+))
+
+804 
+	}
+}
+
+807 
+	$v6_l3_´ÙocÞ_ty³_add
+(
+ušt8_t
+ 
+´ÙocÞ_ty³
+,
+
+808 (*
+func
+è(
+¹e_mbuf
+ **, 
+ušt16_t
+, 
+ušt64_t
+,
+
+809 
+l2_phy_š‹rçû_t
+ *))
+
+811 
+´ÙocÞ_ty³
+) {
+
+812 
+IPPROTO_ICMPV6
+:
+
+813 
+´Ùo_ty³
+[
+IP_LOCAL
+] =
+
+814 
+	`¹e_m®loc
+(
+NULL
+, (
+_´ÙocÞ_ty³
+),
+
+815 
+RTE_CACHE_LINE_SIZE
+);
+
+816 
+´Ùo_ty³
+[
+IP_LOCAL
+]->
+´ÙocÞ_ty³
+ =…rotocol_type;
+
+817 
+´Ùo_ty³
+[
+IP_LOCAL
+]->
+func
+ = func;
+
+820 
+IPPROTO_TCP
+:
+
+821 
+IPPROTO_UDP
+:
+
+822 
+´Ùo_ty³
+[
+IP_REMOTE
+] =
+
+823 
+	`¹e_m®loc
+(
+NULL
+, (
+_´ÙocÞ_ty³
+),
+
+824 
+RTE_CACHE_LINE_SIZE
+);
+
+825 
+´Ùo_ty³
+[
+IP_REMOTE
+]->
+´ÙocÞ_ty³
+ =…rotocol_type;
+
+826 
+´Ùo_ty³
+[
+IP_REMOTE
+]->
+func
+ = func;
+
+829 
+	}
+}
+
+832 
+	$v6_loÿl_d–iv”
+(
+¹e_mbuf
+ **
+pkt_bur¡
+, 
+__¹e_unu£d
+ 
+ušt16_t
+ 
+nb_rx
+,
+
+833 
+ušt64_t
+ 
+icmp_pkt_mask
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt
+)
+
+835 ; 
+icmp_pkt_mask
+;) {
+
+837 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+icmp_pkt_mask
+);
+
+838 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+839 
+icmp_pkt_mask
+ &ð~
+pkt_mask
+;
+
+841 
+	`´oûss_icmpv6_pkt
+(
+pkt_bur¡
+[
+pos
+], 
+pÜt
+);
+
+843 
+	}
+}
+
+846 
+	$v6_fÜw¬d_d–iv”
+(
+¹e_mbuf
+ **
+pkt_bur¡
+, 
+ušt16_t
+ 
+nb_pkts
+,
+
+847 
+ušt64_t
+ 
+v6_fÜw¬d_pkts_mask
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt
+)
+
+849 ià(
+L3FWD_DEBUG
+) {
+
+850 
+´štf
+
+
+852 
+nb_pkts
+, 
+pÜt
+->
+pmdid
+);
+
+854 
+ušt64_t
+ 
+pkts_fÜ_´oûss
+ = 
+v6_fÜw¬d_pkts_mask
+;
+
+856 
+v6_hdr
+ *ipv6_hdr;
+
+857 
+l2_phy_š‹rçû_t
+ *
+pÜt_±r
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+858 
+ušt64_t
+ 
+h™_mask
+ = 0;
+
+860 ; 
+pkts_fÜ_´oûss
+;) {
+
+862 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+pkts_fÜ_´oûss
+);
+
+863 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+;
+
+864 
+pkts_fÜ_´oûss
+ &ð~
+pkt_mask
+;
+
+865 
+v6_hdr
+ =
+
+866 
+	`¹e_pktmbuf_mtod_off£t
+(
+pkt_bur¡
+[
+pos
+], 
+v6_hdr
+ *,
+
+867 (
+‘h”_hdr
+));
+
+870 ià(
+	`is_v®id_v6_pkt
+(
+v6_hdr
+, 
+pkt_bur¡
+[
+pos
+]->
+pkt_Ën
+) < 0) {
+
+871 
+	`¹e_pktmbuf_ä“
+(
+pkt_bur¡
+[
+pos
+]);
+
+872 
+pkt_bur¡
+[
+pos
+] = 
+NULL
+;
+
+873 
+v6_fÜw¬d_pkts_mask
+ &ð~(1LLU << 
+pos
+);
+
+874 
+nb_pkts
+--;
+
+875 
+¡©s
+.
+nb_l3_drÝ_pkt
+++;
+
+879 ià(
+L3FWD_DEBUG
+) {
+
+880 
+´štf
+
+
+882 
+nb_pkts
+, 
+v6_fÜw¬d_pkts_mask
+);
+
+886 
+	`Ím6_bË_lookup
+(
+pkt_bur¡
+, 
+nb_pkts
+, 
+v6_fÜw¬d_pkts_mask
+, 
+pÜt_±r
+,
+
+887 &
+h™_mask
+);
+
+888 
+	}
+}
+
+890 
+ušt8_t
+ 
+	$v6_hash_lßd_b®ªû
+(
+¹e_mbuf
+ *
+mbuf
+)
+
+892 
+ušt32_t
+ 
+¤c_addr_off£t
+ =
+
+893 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_SRC_ADR_OFST_IPV6
+;
+
+894 
+ušt32_t
+ 
+d¡_addr_off£t
+ =
+
+895 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_DST_ADR_OFST_IPV6
+;
+
+896 
+ušt8_t
+ 
+¤c_addr
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+897 
+ušt8_t
+ 
+d¡_addr
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+899 
+	`memýy
+(&
+¤c_addr
+,
+
+900 (
+ušt8_t
+ *è
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+mbuf
+, 
+¤c_addr_off£t
+),
+
+901 
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+902 
+	`memýy
+(&
+d¡_addr
+,
+
+903 (
+ušt8_t
+ *è
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+mbuf
+, 
+d¡_addr_off£t
+),
+
+904 
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+905 
+ušt32_t
+ 
+hash_key1
+ = 0;
+
+906 
+ušt32_t
+ 
+hash_key2
+ = 0;
+
+907 
+ušt8_t
+ 
+i
+;
+
+908 
+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 
+	`´štf
+("Hash ResuÉ_key: %d, \n", 
+hash_key1
+);
+
+925  
+hash_key1
+;
+
+926 
+	}
+}
+
+929 
+	$»sÞve_v6_l2_adj
+(
+ušt8_t
+ 
+nh_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+], ušt8_ˆ
+pÜtid
+,
+
+930 
+‘h”_addr
+ *
+hw_addr
+)
+
+932 
+l2_adj_v6_’Œy
+ *
+adj_d©a
+ = 
+NULL
+;
+
+933 
+‘h”_addr
+ 
+‘h_d¡
+;
+
+934 
+ušt16_t
+ 
+‘h”_ty³
+ = 0x086DD;
+
+936 
+l2_adj_key_v6
+ 
+l2_adj_key
+;
+
+937 
+	`memýy
+(&
+l2_adj_key
+.
+nh_v6
+, &nh_v6, 
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+938 
+l2_adj_key
+.
+out_pÜt_id
+ = 
+pÜtid
+;
+
+940 
+adj_d©a
+ = 
+	`»Œ›ve_v6_l2_adj_’Œy
+(
+l2_adj_key
+);
+
+941 ià(
+adj_d©a
+) {
+
+942 ià(
+adj_d©a
+->
+æags
+ =ð
+L2_ADJ_UNRESOLVED
+
+
+943 || 
+	`memcmp
+(&
+adj_d©a
+->
+‘h_addr
+, 
+hw_addr
+, 6)) {
+
+944 
+	`‘h”_addr_cÝy
+(
+hw_addr
+, &
+adj_d©a
+->
+‘h_addr
+);
+
+947 
+	`memýy
+(&
+adj_d©a
+->
+l2_¡ršg
+, 
+hw_addr
+,
+
+948 (
+‘h”_addr
+));
+
+949 
+	`memýy
+(&
+adj_d©a
+->
+l2_¡ršg
+[6],
+
+950 &
+adj_d©a
+->
+phy_pÜt
+->
+maÿddr
+,
+
+951 (
+‘h”_addr
+));
+
+952 
+	`memýy
+(&
+adj_d©a
+->
+l2_¡ršg
+[12], &
+‘h”_ty³
+, 2);
+
+954 
+adj_d©a
+->
+æags
+ = 
+L2_ADJ_RESOLVED
+;
+
+960 
+l2_phy_š‹rçû_t
+ *
+pÜt
+;
+
+961 
+pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+pÜtid
+);
+
+962 ià(
+pÜt
+ =ð
+NULL
+) {
+
+963 
+	`´štf
+("PORT %u IS DOWN..! UÇbˁØProûss\n", 
+pÜtid
+);
+
+966 
+ušt32_t
+ 
+size
+ = 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+l2_adj_’Œy
+));
+
+967 
+adj_d©a
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+968 ià(
+adj_d©a
+ =ð
+NULL
+) {
+
+969 
+	`´štf
+("L2 Adjacency memory‡llocation failed !\n");
+
+973 
+adj_d©a
+->
+out_pÜt_id
+ = 
+pÜtid
+;
+
+974 
+	`memýy
+(
+adj_d©a
+->
+nh_v6
+, &nh_v6, 
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+976 
+adj_d©a
+->
+phy_pÜt
+ = 
+pÜt
+;
+
+978 
+	`‘h”_addr_cÝy
+(&
+‘h_d¡
+, &
+adj_d©a
+->
+‘h_addr
+);
+
+981 
+	`memýy
+(&
+adj_d©a
+->
+l2_¡ršg
+, 
+hw_addr
+, (
+‘h”_addr
+));
+
+982 
+	`memýy
+(&
+adj_d©a
+->
+l2_¡ršg
+[6], &
+pÜt
+->
+maÿddr
+,
+
+983 (
+‘h”_addr
+));
+
+984 
+	`memýy
+(&
+adj_d©a
+->
+l2_¡ršg
+[12], &
+‘h”_ty³
+, 2);
+
+986 
+adj_d©a
+->
+æags
+ = 
+L2_ADJ_RESOLVED
+;
+
+989 
+	`¹e_hash_add_key_d©a
+(
+l2_adj_v6_hash_hªdË
+, &
+l2_adj_key
+, 
+adj_d©a
+);
+
+991 
+	`´štf
+(" ND„esolution successful‡nd stored in ipv6_l2_adj_entry %p\n",
+
+992 
+adj_d©a
+);
+
+993 
+	}
+}
+
+995 
+	$v6_™”©e__hash_bË
+()
+
+997 cÚ¡ *
+Ãxt_key
+;
+
+998 *
+Ãxt_d©a
+;
+
+999 
+ušt32_t
+ 
+™”
+ = 0;
+
+1000 
+ušt8_t
+ 
+ii
+;
+
+1001 
+	`´štf
+("\n\t\t\t IPv6 FIB_path Cacheable....");
+
+1002 
+´štf
+
+
+1004 
+´štf
+
+
+1006 
+´štf
+
+
+1009 
+¹e_hash_™”©e
+
+
+1010 (
+fib_·th_v6_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+™”
+) >= 0) {
+
+1011 
+v6_fib_·th
+ *
+tmp_d©a
+ =
+
+1012 (
+v6_fib_·th
+ *)
+Ãxt_d©a
+;
+
+1013 
+fib_·th_key_v6
+ 
+tmp_key
+;
+
+1014 
+	`memýy
+(&
+tmp_key
+, 
+Ãxt_key
+, (tmp_key));
+
+1015 
+ii
+ = 0; ii < 16; ii += 2) {
+
+1016 
+	`´štf
+("%02X%02X ", 
+tmp_d©a
+->
+nh_v6
+[
+ii
+],
+
+1017 
+tmp_d©a
+->
+nh_v6
+[
+ii
+ + 1]);
+
+1019 
+	`´štf
+(" \ˆ%u \ˆ%u \ˆ%p\n", 
+tmp_d©a
+->
+out_pÜt
+,
+
+1020 
+tmp_d©a
+->
+»fcouÁ
+,mp_d©a->
+l2_adj_v6_±r
+);
+
+1024 
+™”
+ = 0;
+
+1026 
+	`´štf
+("\n\t\t\t L2 ADJ Cacheable.....");
+
+1027 
+´štf
+
+
+1029 
+´štf
+
+
+1031 
+´štf
+
+
+1033 
+¹e_hash_™”©e
+
+
+1034 (
+l2_adj_v6_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+™”
+) >= 0) {
+
+1035 
+l2_adj_v6_’Œy
+ *
+l2_d©a
+ =
+
+1036 (
+l2_adj_v6_’Œy
+ *)
+Ãxt_d©a
+;
+
+1037 
+l2_adj_key_v6
+ 
+l2_key
+;
+
+1038 
+	`memýy
+(&
+l2_key
+, 
+Ãxt_key
+, (l2_key));
+
+1039 
+ii
+ = 0; ii < 16; ii += 2) {
+
+1040 
+	`´štf
+("%02X%02X ", 
+l2_d©a
+->
+nh_v6
+[
+ii
+],
+
+1041 
+l2_d©a
+->
+nh_v6
+[
+ii
+ + 1]);
+
+1043 
+	`´štf
+(" \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šg
+[0],
+
+1046 
+l2_d©a
+->
+l2_¡ršg
+[1],
+
+1047 
+l2_d©a
+->
+l2_¡ršg
+[2],
+
+1048 
+l2_d©a
+->
+l2_¡ršg
+[3],
+
+1049 
+l2_d©a
+->
+l2_¡ršg
+[4],
+
+1050 
+l2_d©a
+->
+l2_¡ršg
+[5],
+
+1051 
+l2_d©a
+->
+l2_¡ršg
+[6],
+
+1052 
+l2_d©a
+->
+l2_¡ršg
+[7],
+
+1053 
+l2_d©a
+->
+l2_¡ršg
+[8],
+
+1054 
+l2_d©a
+->
+l2_¡ršg
+[9],
+
+1055 
+l2_d©a
+->
+l2_¡ršg
+[10],
+
+1056 
+l2_d©a
+->
+l2_¡ršg
+[11],†2_d©a->
+phy_pÜt
+);
+
+1058 
+	}
+}
+
+	@VIL/l2l3_stack/l3fwd_lpm6.h
+
+22 #iâdeà
+L3FWD_LPM6_H
+
+
+23 
+	#L3FWD_LPM6_H
+
+
+	)
+
+25 
+	~<¡dio.h
+>
+
+26 
+	~<¡dlib.h
+>
+
+27 
+	~<¡dšt.h
+>
+
+28 
+	~<š‰y³s.h
+>
+
+29 
+	~<sys/ty³s.h
+>
+
+30 
+	~<¡ršg.h
+>
+
+31 
+	~<sys/queue.h
+>
+
+32 
+	~<¡d¬g.h
+>
+
+33 
+	~<Ӽo.h
+>
+
+34 
+	~<g‘Ýt.h
+>
+
+35 
+	~<¡dboÞ.h
+>
+
+37 
+	~<¹e_debug.h
+>
+
+38 
+	~<¹e_‘h”.h
+>
+
+39 
+	~<¹e_‘hdev.h
+>
+
+40 
+	~<¹e_ršg.h
+>
+
+41 
+	~<¹e_mempoÞ.h
+>
+
+42 
+	~<¹e_cyþes.h
+>
+
+43 
+	~<¹e_mbuf.h
+>
+
+44 
+	~<¹e_.h
+>
+
+45 
+	~<¹e_tý.h
+>
+
+46 
+	~<¹e_udp.h
+>
+
+47 
+	~<¹e_Ím.h
+>
+
+48 
+	~<¹e_Ím6.h
+>
+
+49 
+	~<¹e_bË_Ím_v6.h
+>
+
+50 
+	~"l3fwd_commÚ.h
+"
+
+51 
+	~"l3fwd_Ím4.h
+"
+
+52 
+	~"š‹rçû.h
+"
+
+58 
+	#MBUF_HDR_ROOM
+ 256
+
+	)
+
+60 
+	#IP_HDR_SIZE_IPV6
+ 40
+
+	)
+
+61 
+	#IP_HDR_SRC_ADR_OFST_IPV6
+ 8
+
+	)
+
+62 
+	#IP_HDR_DST_ADR_OFST_IPV6
+ 24
+
+	)
+
+65 
+	#IPV6_L3FWD_LPM_MAX_RULES
+ 1024
+
+	)
+
+66 
+	#IPV6_L3FWD_LPM_NUMBER_TBL8S
+ (1 << 16è
+
+	)
+
+68 
+	#MAX_FIB_PATHS
+ 8
+
+	)
+
+74 
+	sv6_routšg_šfo
+ {
+
+75 
+ušt8_t
+ 
+	md¡_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+76 
+ušt8_t
+ 
+	md•th
+;
+
+77 
+ušt32_t
+ 
+	mm‘ric
+;
+
+78 
+ušt32_t
+ 
+	mfib_nh_size
+;
+
+79 
+ušt8_t
+ 
+	mnh_v6
+[
+MAX_FIB_PATHS
+][
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+80 
+ušt8_t
+ 
+	mout_pÜt
+[
+MAX_FIB_PATHS
+];
+
+81 } 
+	g__¹e_ÿche_®igÃd
+;
+
+87 
+	sv6_fib_·th
+ {
+
+88 
+ušt8_t
+ 
+	mnh_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+89 
+ušt32_t
+ 
+	m»fcouÁ
+;
+
+90 
+ušt8_t
+ 
+	mout_pÜt
+;
+
+91 
+l2_adj_v6_’Œy
+ *
+	ml2_adj_v6_±r
+;
+
+92 } 
+	g__¹e_ÿche_®igÃd
+;
+
+98 
+	sv6_fib_šfo
+ {
+
+99 
+ušt8_t
+ 
+	md¡_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+100 
+ušt8_t
+ 
+	md•th
+;
+
+101 
+ušt32_t
+ 
+	mm‘ric
+;
+
+102 
+ušt32_t
+ 
+	mfib_nh_size
+;
+
+103 
+v6_fib_·th
+ *
+	m·th
+[
+MAX_FIB_PATHS
+];
+
+104 } 
+	g__¹e_ÿche_®igÃd
+;
+
+109 
+	sl2_adj_v6_’Œy
+ {
+
+110 
+‘h”_addr
+ 
+	m‘h_addr
+;
+
+111 
+ušt8_t
+ 
+	mout_pÜt_id
+;
+
+112 
+ušt8_t
+ 
+	mnh_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+113 
+ušt32_t
+ 
+	m»fcouÁ
+;
+
+114 
+ušt8_t
+ 
+	ml2_¡ršg
+[256];
+
+115 
+l2_phy_š‹rçû_t
+ *
+	mphy_pÜt
+;
+
+116 
+ušt8_t
+ 
+	mæags
+;
+
+117 } 
+	g__¹e_ÿche_®igÃd
+;
+
+122 
+	sl2_adj_key_v6
+ {
+
+125 
+ušt8_t
+ 
+	mnh_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+126 
+ušt8_t
+ 
+	mout_pÜt_id
+;
+
+127 
+ušt8_t
+ 
+	mfžËr1
+;
+
+128 
+ušt8_t
+ 
+	mfžËr2
+;
+
+129 
+ušt8_t
+ 
+	mfžËr3
+;
+
+135 
+	sfib_·th_key_v6
+ {
+
+138 
+ušt8_t
+ 
+	mnh_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+139 
+ušt8_t
+ 
+	mout_pÜt
+;
+
+140 
+ušt8_t
+ 
+	mfžËr1
+;
+
+141 
+ušt8_t
+ 
+	mfžËr2
+;
+
+142 
+ušt8_t
+ 
+	mfžËr3
+;
+
+145 
+	sv6_´ÙocÞ_ty³
+ {
+
+146 
+ušt8_t
+ 
+	m´ÙocÞ_ty³
+;
+
+147 (*
+	mfunc
+è(
+	m¹e_mbuf
+ **, 
+	mušt16_t
+, 
+	mušt64_t
+,
+
+148 
+	ml2_phy_š‹rçû_t
+ *);
+
+149 } 
+	g__¹e_ÿche_®igÃd
+;
+
+157 
+Ím6_š™
+();
+
+166 
+Ím6_bË_rou‹_add
+(
+v6_routšg_šfo
+ *
+d©a
+);
+
+177 
+Ím6_bË_rou‹_d–‘e
+(
+ušt8_t
+ 
+d¡_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+],
+
+178 
+ušt8_t
+ 
+d•th
+);
+
+191 
+Ím6_bË_lookup
+(
+¹e_mbuf
+ **
+pkts_bur¡
+, 
+ušt16_t
+ 
+nb_pkts
+,
+
+192 
+ušt64_t
+ 
+pkts_mask
+,
+
+193 
+l2_phy_š‹rçû_t
+ *
+pÜt_±r
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+],
+
+194 
+ušt64_t
+ *
+h™_mask
+);
+
+209 
+l3fwd_rx_v6_·ck‘s
+(
+¹e_mbuf
+ **
+m
+, 
+ušt16_t
+ 
+nb_pkts
+,
+
+210 
+ušt64_t
+ 
+v®id_pkts_mask
+,
+
+211 
+l2_phy_š‹rçû_t
+ *
+š_pÜt
+);
+
+222 
+v6_fib_·th
+ *
+pÝuϋ_v6_fib_·th
+(
+ušt8_t
+
+
+223 
+nh_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+],
+
+224 
+ušt8_t
+ 
+out_pÜt
+);
+
+234 
+v6_fib_·th
+ *
+»Œ›ve_v6_fib_·th_’Œy
+(
+fib_·th_key_v6
+
+
+235 
+·th_key
+);
+
+245 
+l2_adj_v6_’Œy
+ *
+»Œ›ve_v6_l2_adj_’Œy
+(
+l2_adj_key_v6
+
+
+246 
+l2_adj_key
+);
+
+257 
+l2_adj_v6_’Œy
+ *
+pÝuϋ_v6_l2_adj
+(
+ušt8_t
+
+
+258 
+nh_
+[
+RTE_LPM_IPV6_ADDR_SIZE
+],
+
+259 
+ušt8_t
+ 
+pÜtid
+);
+
+272 
+g‘_de¡_mac_fÜ_ÃxthÝ_v6
+(
+ušt8_t
+ 
+nh_v6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+],
+
+273 
+ušt32_t
+ 
+out_phy_pÜt
+,
+
+274 
+‘h”_addr
+ *
+hw_addr
+);
+
+281 
+»move_v6_fib_l2_adj_’Œy
+(*
+’Œy
+);
+
+284 
+v6_l3_´ÙocÞ_ty³_add
+(
+ušt8_t
+ 
+´ÙocÞ_ty³
+,
+
+285 (*
+func
+è(
+¹e_mbuf
+ **, 
+ušt16_t
+, 
+ušt64_t
+,
+
+286 
+l2_phy_š‹rçû_t
+ *));
+
+289 
+	`v6_loÿl_d–iv”
+(
+¹e_mbuf
+ **, 
+ušt16_t
+, 
+ušt64_t
+,
+
+290 
+l2_phy_š‹rçû_t
+ *);
+
+293 
+	`v6_fÜw¬d_d–iv”
+(
+¹e_mbuf
+ **, 
+ušt16_t
+, 
+ušt64_t
+,
+
+294 
+l2_phy_š‹rçû_t
+ *);
+
+296 
+	`is_v®id_v6_pkt
+(
+v6_hdr
+ *
+pkt
+, 
+ušt32_t
+ 
+lšk_Ën
+);
+
+297 
+ušt8_t
+ 
+	`v6_hash_lßd_b®ªû
+(
+¹e_mbuf
+ *
+mbuf
+);
+
+311 
+	`»sÞve_v6_l2_adj
+(
+ušt8_t
+ 
+nh_
+[
+RTE_LPM_IPV6_ADDR_SIZE
+], ušt8_ˆ
+pÜtid
+,
+
+312 
+‘h”_addr
+ *
+hw_addr
+);
+
+314 
+	`v6_™”©e__hash_bË
+();
+
+	@VIL/l2l3_stack/l3fwd_main.c
+
+24 
+	~"l3fwd_commÚ.h
+"
+
+25 
+	~"l2_´Ùo.h
+"
+
+26 
+	~"l3fwd_Ím4.h
+"
+
+27 
+	~"l3fwd_Ím6.h
+"
+
+28 
+	~"š‹rçû.h
+"
+
+29 
+	~"lib_¬p.h
+"
+
+30 
+	~"lib_icmpv6.h
+"
+
+32 
+routšg_šfo
+ 
+	gšput_¬¿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 
+v6_routšg_šfo
+ 
+	gv6_šput_¬¿y
+[] = {
+
+81 
+	$l3fwd_š™
+()
+
+83 
+	`´štf
+(" *********** L3 Initialization START ************\n");
+
+84 ià(
+	`Ím_š™
+() == 0) {
+
+85 
+	`¹e_ex™
+(
+EXIT_FAILURE
+, "L3 Initialization IPv4 Failed\n");
+
+87 ià(
+	`Ím6_š™
+() == 0) {
+
+88 
+	`¹e_ex™
+(
+EXIT_FAILURE
+, "L3 Initialization for IPV6 Failed\n");
+
+91 
+	`li¡_add_ty³
+(
+ETHER_TYPE_IPv4
+, 
+l3fwd_rx_v4_·ck‘s
+);
+
+92 
+	`li¡_add_ty³
+(
+ETHER_TYPE_IPv6
+, 
+l3fwd_rx_v6_·ck‘s
+);
+
+94 
+	`l3_´ÙocÞ_ty³_add
+(
+IPPROTO_ICMP
+, 
+_loÿl_·ck‘s_´oûss
+);
+
+95 
+	`l3_´ÙocÞ_ty³_add
+(
+IPPROTO_TCP
+, 
+_fÜw¬d_d–iv”
+);
+
+96 
+	`l3_´ÙocÞ_ty³_add
+(
+IPPROTO_UDP
+, 
+_fÜw¬d_d–iv”
+);
+
+98 
+	`v6_l3_´ÙocÞ_ty³_add
+(
+IPPROTO_ICMPV6
+, 
+v6_loÿl_d–iv”
+);
+
+99 
+	`v6_l3_´ÙocÞ_ty³_add
+(
+IPPROTO_TCP
+, 
+v6_fÜw¬d_d–iv”
+);
+
+100 
+	`v6_l3_´ÙocÞ_ty³_add
+(
+IPPROTO_UDP
+, 
+v6_fÜw¬d_d–iv”
+);
+
+102 
+	}
+}
+
+104 
+	$pÝuϋ_Ím_rou‹s
+()
+
+106 
+	`pÝuϋ_Ím4_bË_rou‹s
+();
+
+108 
+	}
+}
+
+110 
+	$pÝuϋ_Ím4_bË_rou‹s
+()
+
+112 
+ušt8_t
+ 
+i
+;
+
+113 
+´štf
+
+
+115 
+i
+ = 0; i < 
+MAX_ROUTES
+; i++) {
+
+116 ià(
+	`Ím4_bË_rou‹_add
+(&
+šput_¬¿y
+[
+i
+])) {
+
+118 
+	`´štf
+("TÙ®„ou‹ Added# %d\n", 
+i
+ + 1);
+
+120 
+	`¹e_ex™
+(
+EXIT_FAILURE
+,
+
+122 
+i
+);
+
+125 
+´štf
+
+
+127 
+	}
+}
+
+129 
+	$pÝuϋ_Ím6_bË_rou‹s
+()
+
+131 
+ušt8_t
+ 
+i
+;
+
+132 
+´štf
+
+
+134 
+i
+ = 0; i < 2; i++) {
+
+135 ià(
+	`Ím6_bË_rou‹_add
+(&
+v6_šput_¬¿y
+[
+i
+])) {
+
+137 
+	`´štf
+("Added„ou‹ # %d\n", 
+i
+);
+
+139 
+	`¹e_ex™
+(
+EXIT_FAILURE
+,
+
+141 
+i
+);
+
+144 
+	`´štf
+(" *********** L3 IPV6 Route Initialization END ************\n");
+
+145 
+	}
+}
+
+	@VIL/l2l3_stack/lib_arp.c
+
+17 
+	~<execšfo.h
+>
+
+18 
+	~<¡dio.h
+>
+
+19 
+	~<¡dlib.h
+>
+
+20 
+	~<¡dšt.h
+>
+
+21 
+	~<¡ršg.h
+>
+
+22 
+	~<uni¡d.h
+>
+
+23 
+	~<¹e_commÚ.h
+>
+
+24 
+	~<¹e_m®loc.h
+>
+
+25 
+	~<¹e_.h
+>
+
+26 
+	~<¹e_by‹Üd”.h
+>
+
+27 
+	~<¹e_log.h
+>
+
+28 
+	~<¹e_bË_Ím.h
+>
+
+29 
+	~<¹e_bË_hash.h
+>
+
+30 
+	~<¹e_p–še.h
+>
+
+31 
+	~<¹e_¬p.h
+>
+
+32 
+	~<¹e_icmp.h
+>
+
+33 
+	~<¹e_hash.h
+>
+
+34 
+	~<¹e_jhash.h
+>
+
+35 
+	~<¹e_cyþes.h
+>
+
+36 
+	~<¹e_tim”.h
+>
+
+37 
+	~"š‹rçû.h
+"
+
+38 
+	~"l2_´Ùo.h
+"
+
+39 
+	~"lib_¬p.h
+"
+
+40 
+	~"l3fwd_Ím4.h
+"
+
+41 
+	~"vnf_commÚ.h
+"
+
+43 #ià(
+RTE_BYTE_ORDER
+ =ð
+RTE_LITTLE_ENDIAN
+)
+
+44 
+	#CHECK_ENDIAN_16
+(
+x
+è
+	`¹e_be_to_ýu_16
+(x)
+
+	)
+
+45 
+	#CHECK_ENDIAN_32
+(
+x
+è
+	`¹e_be_to_ýu_32
+(x)
+
+	)
+
+47 
+	#CHECK_ENDIAN_16
+(
+x
+è(x)
+
+	)
+
+48 
+	#CHECK_ENDIAN_32
+(
+x
+è(x)
+
+	)
+
+51 
+	#NB_ARPICMP_MBUF
+ 64
+
+	)
+
+52 
+	#NB_NDICMP_MBUF
+ 64
+
+	)
+
+53 
+	#IP_VERSION_4
+ 0x40
+
+	)
+
+54 
+	#IP_HDRLEN
+ 0x05
+
+	)
+
+55 
+	#IP_VHL_DEF
+ (
+IP_VERSION_4
+ | 
+IP_HDRLEN
+)
+
+	)
+
+57 
+	#is_muÉiÿ¡_v4_addr
+(
+v4_addr
+) \
+
+58 (((
+	`¹e_be_to_ýu_32
+((
+v4_addr
+)è>> 24è& 0x000000FFè=ð0xE0)
+
+	)
+
+60 
+ušt8_t
+ 
+´v_š_pÜt_a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+61 
+ušt32_t
+ 
+tim”_lcÜe
+;
+
+62 
+ušt32_t
+ 
+	g¬p_timeout
+ = 
+ARP_TIMER_EXPIRY
+;
+
+65 
+	#INADDRSZ
+ 4
+
+	)
+
+66 
+	#IN6ADDRSZ
+ 16
+
+	)
+
+67 
+my_š‘_±Ú_v6
+(
+af
+, cÚ¡ *
+¤c
+, *
+d¡
+);
+
+68 
+š‘_±Ú_v6
+(cÚ¡ *
+¤c
+, *
+d¡
+);
+
+69 
+š‘_±Ú_v4
+(cÚ¡ *
+¤c
+, *
+d¡
+);
+
+70 

+cÚv”t_´efixËn_to_Ãtmask_v6
+(
+ušt32_t
+ 
+d•th
+,
+
+71 
+ušt8_t
+ 
+Ãtmask_v6
+[]);
+
+73 
+ušt8_t
+ 
+	gvnf_commÚ_¬p_lib_š™
+;
+
+74 
+ušt8_t
+ 
+	gvnf_commÚ_nd_lib_š™
+;
+
+75 
+ušt8_t
+ 
+	glßdb_p–še_couÁ
+;
+
+77 
+ušt32_t
+ 
+	gARPICMP_DEBUG
+;
+
+78 
+ušt32_t
+ 
+	gNDIPV6_DEBUG
+;
+
+80 
+ušt32_t
+ 
+	g¬p_rou‹_tbl_šdex
+;
+
+81 
+ušt32_t
+ 
+	gnd_rou‹_tbl_šdex
+;
+
+82 
+ušt32_t
+ 
+	glšk_hw_addr_¬¿y_idx
+;
+
+84 
+ušt32_t
+ 
+	glib_¬p_g‘_mac_»q
+;
+
+85 
+ušt32_t
+ 
+	glib_¬p_nh_found
+;
+
+86 
+ušt32_t
+ 
+	glib_¬p_no_nh_found
+;
+
+87 
+ušt32_t
+ 
+	glib_¬p_¬p_’Œy_found
+;
+
+88 
+ušt32_t
+ 
+	glib_¬p_no_¬p_’Œy_found
+;
+
+89 
+ušt32_t
+ 
+	glib_¬p_pÝuϋ_ÿÎed
+;
+
+90 
+ušt32_t
+ 
+	glib_¬p_d–‘e_ÿÎed
+;
+
+91 
+ušt32_t
+ 
+	glib_¬p_du¶iÿ‹_found
+;
+
+93 
+ušt32_t
+ 
+	glib_nd_g‘_mac_»q
+;
+
+94 
+ušt32_t
+ 
+	glib_nd_nh_found
+;
+
+95 
+ušt32_t
+ 
+	glib_nd_no_nh_found
+;
+
+96 
+ušt32_t
+ 
+	glib_nd_nd_’Œy_found
+;
+
+97 
+ušt32_t
+ 
+	glib_nd_no_¬p_’Œy_found
+;
+
+98 
+ušt32_t
+ 
+	glib_nd_pÝuϋ_ÿÎed
+;
+
+99 
+ušt32_t
+ 
+	glib_nd_d–‘e_ÿÎed
+;
+
+100 
+ušt32_t
+ 
+	glib_nd_du¶iÿ‹_found
+;
+
+101 
+¹e_mempoÞ
+ *
+	glib_¬p_pktmbuf_tx_poÞ
+;
+
+102 
+¹e_mempoÞ
+ *
+	glib_nd_pktmbuf_tx_poÞ
+;
+
+104 
+¹e_mbuf
+ *
+	glib_¬p_pkt
+;
+
+105 
+¹e_mbuf
+ *
+	glib_nd_pkt
+;
+
+107 
+ušt8_t
+ 
+	gdeçuÉ_‘h”_addr
+[6] = { 0, 0, 0, 0, 1, 1 };
+
+108 
+ušt8_t
+ 
+	gdeçuÉ_
+[4] = { 0, 0, 1, 1 };
+
+110 
+¹e_hash_·¿m‘”s
+ 
+	g¬p_hash_·¿ms
+ = {
+
+111 .
+Çme
+ = "ARP",
+
+112 .
+	g’Œ›s
+ = 64,
+
+113 .
+	gȣrved
+ = 0,
+
+114 .
+	gkey_Ën
+ = (
+¬p_key_v4
+),
+
+115 .
+	ghash_func
+ = 
+¹e_jhash
+,
+
+116 .
+	ghash_func_š™_v®
+ = 0,
+
+119 
+¹e_hash_·¿m‘”s
+ 
+	gnd_hash_·¿ms
+ = {
+
+120 .
+Çme
+ = "ND",
+
+121 .
+	g’Œ›s
+ = 64,
+
+122 .
+	gȣrved
+ = 0,
+
+123 .
+	gkey_Ën
+ = (
+nd_key_v6
+),
+
+124 .
+	ghash_func
+ = 
+¹e_jhash
+,
+
+125 .
+	ghash_func_š™_v®
+ = 0,
+
+128 
+¹e_hash
+ *
+	g¬p_hash_hªdË
+;
+
+129 
+¹e_hash
+ *
+	gnd_hash_hªdË
+;
+
+131 
+´št_pkt1
+(
+¹e_mbuf
+ *
+pkt
+);
+
+133 
+­p_·¿ms
+ *
+	gmyAµ
+;
+
+134 
+¹e_p–še
+ *
+	gmyP
+;
+
+135 
+ušt8_t
+ 
+	gnum_vnf_th»ads
+;
+
+140 
+	s¬p_pÜt_add»ss
+ {
+
+141 
+ušt32_t
+ 
+	m
+;
+
+142 
+ušt8_t
+ 
+	mmac_addr
+[6];
+
+145 
+¬p_pÜt_add»ss
+ 
+	g¬p_pÜt_add»s£s
+[
+RTE_MAX_ETHPORTS
+];
+
+146 
+¹e_mempoÞ
+ *
+	gtim”_mempoÞ_¬p
+;
+
+148 
+	gtim”_objs_mempoÞ_couÁ
+ = 70000;
+
+150 
+	#MAX_NUM_ARP_ENTRIES
+ 64
+
+	)
+
+151 
+	#MAX_NUM_ND_ENTRIES
+ 64
+
+	)
+
+153 
+ušt32_t
+ 
+g‘_nh
+(uint32_t, uint32_t *);
+
+154 
+g‘_nh_v6
+(
+ušt8_t
+ 
+v6
+[], 
+ušt32_t
+ *
+pÜt
+, ušt8_ˆ
+nhv6
+[]);
+
+156 
+	#MAX_ARP_DATA_ENTRY_TABLE
+ 7
+
+	)
+
+158 
+bË_¬p_’Œy_d©a
+ 
+	g¬p_’Œy_d©a_bË
+[
+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 
+	#MAX_ND_DATA_ENTRY_TABLE
+ 7
+
+	)
+
+169 
+bË_nd_’Œy_d©a
+ 
+	gnd_’Œy_d©a_bË
+[
+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 
+lib_nd_rou‹_bË_’Œy
+ 
+	glib_nd_rou‹_bË
+[
+MAX_ND_RT_ENTRY
+] = {
+
+222 
+lib_¬p_rou‹_bË_’Œy
+ 
+	glib_¬p_rou‹_bË
+[
+MAX_ARP_RT_ENTRY
+] = {
+
+241 
+´št_Œaû
+();
+
+244 
+	$´št_Œaû
+()
+
+246 *
+¬¿y
+[10];
+
+247 
+size_t
+ 
+size
+;
+
+248 **
+¡ršgs
+;
+
+249 
+size_t
+ 
+i
+;
+
+251 
+size
+ = 
+	`backŒaû
+(
+¬¿y
+, 10);
+
+252 
+¡ršgs
+ = 
+	`backŒaû_symbÞs
+(
+¬¿y
+, 
+size
+);
+
+254 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "Obšed %zd sck f¿mes.\n", 
+size
+);
+
+256 
+i
+ = 0; i < 
+size
+; i++)
+
+257 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "%s\n", 
+¡ršgs
+[
+i
+]);
+
+259 
+	`ä“
+(
+¡ršgs
+);
+
+260 
+	}
+}
+
+262 
+ušt32_t
+ 
+	$g‘_nh
+(
+ušt32_t
+ 
+
+, ušt32_ˆ*
+pÜt
+)
+
+264 
+i
+ = 0;
+
+265 
+i
+ = 0; i < 
+MAX_ARP_RT_ENTRY
+; i++) {
+
+266 ià(((
+lib_¬p_rou‹_bË
+[
+i
+].
+
+267 
+
+ & 
+lib_¬p_rou‹_bË
+[
+i
+].
+mask
+) ==
+
+268 (
+
+ & 
+lib_¬p_rou‹_bË
+[
+i
+].
+mask
+))) {
+
+270 *
+pÜt
+ = 
+lib_¬p_rou‹_bË
+[
+i
+].port;
+
+271 
+lib_¬p_nh_found
+++;
+
+272  
+lib_¬p_rou‹_bË
+[
+i
+].
+nh
+;
+
+274 ià(
+ARPICMP_DEBUG
+)
+
+275 
+	`´štf
+("No‚h match ip 0x%x,…ort %u,_ip "
+
+277 
+
+, *
+pÜt
+, 
+lib_¬p_rou‹_bË
+[
+i
+].ip,
+
+278 
+lib_¬p_rou‹_bË
+[
+i
+].
+pÜt
+,
+
+279 
+lib_¬p_rou‹_bË
+[
+i
+].
+mask
+,
+
+280 (
+lib_¬p_rou‹_bË
+[
+i
+].
+
+ &
+
+281 
+lib_¬p_rou‹_bË
+[
+i
+].
+mask
+),
+
+282 (
+
+ & 
+lib_¬p_rou‹_bË
+[
+i
+].
+mask
+));
+
+284 ià(
+ARPICMP_DEBUG
+)
+
+285 
+	`´štf
+("NØNH - i°0x%x,…܈%u\n", 
+
+, *
+pÜt
+);
+
+286 
+lib_¬p_no_nh_found
+++;
+
+288 
+	}
+}
+
+291 
+	$g‘_nh_v6
+(
+ušt8_t
+ 
+v6
+[], 
+ušt32_t
+ *
+pÜt
+, ušt8_ˆ
+nhv6
+[])
+
+293 
+i
+ = 0;
+
+294 
+ušt8_t
+ 
+Ãtmask_v6
+[16], 
+Ãt_nd
+[16], 
+Ãt_š
+[16];
+
+295 
+ušt8_t
+ 
+k
+ = 0, 
+l
+ = 0, 
+d•thæags
+ = 0, 
+d•thæags1
+ = 0;
+
+296 
+	`mem£t
+(
+Ãtmask_v6
+, 0, (netmask_ipv6));
+
+297 
+	`mem£t
+(
+Ãt_nd
+, 0, (netip_nd));
+
+298 
+	`mem£t
+(
+Ãt_š
+, 0, (netip_in));
+
+299 ià(!
+v6
+)
+
+301 
+i
+ = 0; i < 
+MAX_ARP_RT_ENTRY
+; i++) {
+
+303 
+	`cÚv”t_´efixËn_to_Ãtmask_v6
+(
+lib_nd_rou‹_bË
+[
+i
+].
+d•th
+,
+
+304 
+Ãtmask_v6
+);
+
+306 
+k
+ = 0; k < 16; k++) {
+
+307 ià(
+lib_nd_rou‹_bË
+[
+i
+].
+v6
+[
+k
+] & 
+Ãtmask_v6
+[k]) {
+
+308 
+d•thæags
+++;
+
+309 
+Ãt_nd
+[
+k
+] = 
+lib_nd_rou‹_bË
+[
+i
+].
+v6
+[k];
+
+313 
+l
+ = 0;† < 16;†++) {
+
+314 ià(
+v6
+[
+l
+] & 
+Ãtmask_v6
+[l]) {
+
+315 
+d•thæags1
+++;
+
+316 
+Ãt_š
+[
+l
+] = 
+v6
+[l];
+
+319 
+j
+ = 0;
+
+320 ià((
+d•thæags
+ =ð
+d•thæags1
+)
+
+321 && (
+	`memcmp
+(
+Ãt_nd
+, 
+Ãt_š
+, (netip_nd)) == 0)) {
+
+323 *
+pÜt
+ = 
+lib_nd_rou‹_bË
+[
+i
+].port;
+
+324 
+lib_nd_nh_found
+++;
+
+326 
+j
+ = 0; j < 16; j++)
+
+327 
+nhv6
+[
+j
+] = 
+lib_nd_rou‹_bË
+[
+i
+].nhipv6[j];
+
+332 ià(
+NDIPV6_DEBUG
+)
+
+333 
+	`´štf
+("No‚h match\n");
+
+334 
+d•thæags
+ = 0;
+
+335 
+d•thæags1
+ = 0;
+
+337 ià(
+NDIPV6_DEBUG
+)
+
+338 
+	`´štf
+("NØNH - i°0x%x,…܈%u\n", 
+v6
+[0], *
+pÜt
+);
+
+339 
+lib_nd_no_nh_found
+++;
+
+340 
+	}
+}
+
+343 
+	$g‘_de¡_mac_addr_pÜt
+(cÚ¡ 
+ušt32_t
+ 
+addr
+,
+
+344 
+ušt32_t
+ *
+phy_pÜt
+, 
+‘h”_addr
+ *
+hw_addr
+)
+
+346 
+lib_¬p_g‘_mac_»q
+++;
+
+347 
+ušt32_t
+ 
+nh
+ = 0;
+
+349 
+nh
+ = 
+	`g‘_nh
+(
+addr
+, 
+phy_pÜt
+);
+
+350 ià(
+nh
+ == 0) {
+
+351 ià(
+ARPICMP_DEBUG
+)
+
+352 
+	`´štf
+("ARPICMP‚o‚h found for ip %x,…ort %d\n",
+
+353 
+addr
+, *
+phy_pÜt
+);
+
+355  
+NH_NOT_FOUND
+;
+
+358 
+¬p_’Œy_d©a
+ *
+»t_¬p_d©a
+ = 
+NULL
+;
+
+359 
+¬p_key_v4
+ 
+tmp_¬p_key
+;
+
+360 
+tmp_¬p_key
+.
+pÜt_id
+ = *
+phy_pÜt
+;
+
+361 
+tmp_¬p_key
+.
+
+ = 
+nh
+;
+
+363 ià(
+ARPICMP_DEBUG
+)
+
+364 
+	`´štf
+("%s:‚h: %x,…hypÜt: %d\n", 
+__FUNCTION__
+, 
+nh
+,
+
+365 *
+phy_pÜt
+);
+
+367 
+»t_¬p_d©a
+ = 
+	`»Œ›ve_¬p_’Œy
+(
+tmp_¬p_key
+);
+
+368 ià(
+»t_¬p_d©a
+ =ð
+NULL
+) {
+
+369 ià(
+ARPICMP_DEBUG
+) {
+
+370 
+´štf
+
+
+372 
+addr
+, *
+phy_pÜt
+);
+
+373 
+	`´št_¬p_bË
+();
+
+375 ià(
+nh
+ != 0) {
+
+376 ià(
+ARPICMP_DEBUG
+)
+
+377 
+	`´štf
+("CG-NAPT„equesting ARP for ip %x, "
+
+378 "p܈%d\n", 
+nh
+, *
+phy_pÜt
+);
+
+379 
+	`»que¡_¬p
+(*
+phy_pÜt
+, 
+nh
+);
+
+382 
+lib_¬p_no_¬p_’Œy_found
+++;
+
+383  
+ARP_NOT_FOUND
+;
+
+385 
+	`‘h”_addr_cÝy
+(&
+»t_¬p_d©a
+->
+‘h_addr
+, 
+hw_addr
+);
+
+386 
+lib_¬p_¬p_’Œy_found
+++;
+
+387 ià(
+ARPICMP_DEBUG
+)
+
+388 
+	`´štf
+("%s: ARPICMP hwadd¸found\n", 
+__FUNCTION__
+);
+
+389  
+ARP_FOUND
+;
+
+390 
+	}
+}
+
+392 
+	$g‘_de¡_mac_add»ss
+(cÚ¡ 
+ušt32_t
+ 
+addr
+, ušt32_ˆ*
+phy_pÜt
+,
+
+393 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt32_t
+ *
+nh
+)
+
+395 
+lib_¬p_g‘_mac_»q
+++;
+
+397 *
+nh
+ = 
+	`g‘_nh
+(
+addr
+, 
+phy_pÜt
+);
+
+398 ià(*
+nh
+ == 0) {
+
+399 ià(
+ARPICMP_DEBUG
+ && 
+addr
+)
+
+400 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+402 
+addr
+, *
+phy_pÜt
+);
+
+406 
+¬p_’Œy_d©a
+ *
+»t_¬p_d©a
+ = 
+NULL
+;
+
+407 
+¬p_key_v4
+ 
+tmp_¬p_key
+;
+
+408 
+tmp_¬p_key
+.
+pÜt_id
+ = *
+phy_pÜt
+;
+
+409 
+tmp_¬p_key
+.
+
+ = *
+nh
+;
+
+411 
+»t_¬p_d©a
+ = 
+	`»Œ›ve_¬p_’Œy
+(
+tmp_¬p_key
+);
+
+412 ià(
+»t_¬p_d©a
+ =ð
+NULL
+) {
+
+413 ià(
+ARPICMP_DEBUG
+ && 
+addr
+) {
+
+414 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+416 
+addr
+, *
+phy_pÜt
+);
+
+417 
+	`´št_¬p_bË
+();
+
+419 
+lib_¬p_no_¬p_’Œy_found
+++;
+
+422 
+	`‘h”_addr_cÝy
+(&
+»t_¬p_d©a
+->
+‘h_addr
+, 
+hw_addr
+);
+
+423 
+lib_¬p_¬p_’Œy_found
+++;
+
+426 
+	}
+}
+
+428 
+	$g‘_de¡_mac_addr
+(cÚ¡ 
+ušt32_t
+ 
+addr
+,
+
+429 
+ušt32_t
+ *
+phy_pÜt
+, 
+‘h”_addr
+ *
+hw_addr
+)
+
+431 
+lib_¬p_g‘_mac_»q
+++;
+
+432 
+ušt32_t
+ 
+nh
+ = 0;
+
+434 
+nh
+ = 
+	`g‘_nh
+(
+addr
+, 
+phy_pÜt
+);
+
+435 ià(
+nh
+ == 0) {
+
+436 ià(
+ARPICMP_DEBUG
+ && 
+addr
+)
+
+437 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+439 
+addr
+, *
+phy_pÜt
+);
+
+443 
+¬p_’Œy_d©a
+ *
+»t_¬p_d©a
+ = 
+NULL
+;
+
+444 
+¬p_key_v4
+ 
+tmp_¬p_key
+;
+
+445 
+tmp_¬p_key
+.
+pÜt_id
+ = *
+phy_pÜt
+;
+
+446 
+tmp_¬p_key
+.
+
+ = 
+nh
+;
+
+448 
+»t_¬p_d©a
+ = 
+	`»Œ›ve_¬p_’Œy
+(
+tmp_¬p_key
+);
+
+449 ià(
+»t_¬p_d©a
+ =ð
+NULL
+) {
+
+450 ià(
+ARPICMP_DEBUG
+ && 
+addr
+) {
+
+451 
+´štf
+
+
+453 
+addr
+, *
+phy_pÜt
+);
+
+454 
+	`´št_¬p_bË
+();
+
+457 ià(
+nh
+ != 0) {
+
+458 ià(
+ARPICMP_DEBUG
+ > 4)
+
+459 
+´štf
+
+
+461 
+nh
+, *
+phy_pÜt
+);
+
+462 ià(
+	`ifm_chk_pÜt_v4_’abËd
+(*
+phy_pÜt
+)) {
+
+463 
+	`»que¡_¬p
+(*
+phy_pÜt
+, 
+nh
+);
+
+465 ià(
+ARPICMP_DEBUG
+)
+
+466 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+468 
+__FUNCTION__
+, *
+phy_pÜt
+);
+
+472 
+lib_¬p_no_¬p_’Œy_found
+++;
+
+475 
+	`‘h”_addr_cÝy
+(&
+»t_¬p_d©a
+->
+‘h_addr
+, 
+hw_addr
+);
+
+476 
+lib_¬p_¬p_’Œy_found
+++;
+
+478 
+	}
+}
+
+480 
+	$g‘_de¡_mac_add»ss_v6_pÜt
+(
+ušt8_t
+ 
+v6addr
+[], 
+ušt32_t
+ *
+phy_pÜt
+,
+
+481 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt8_t
+ 
+nhv6
+[])
+
+483 
+i
+ = 0, 
+j
+ = 0, 
+æag
+ = 0;
+
+484 
+lib_nd_g‘_mac_»q
+++;
+
+486 
+	`g‘_nh_v6
+(
+v6addr
+, 
+phy_pÜt
+, 
+nhv6
+);
+
+487 
+j
+ = 0; j < 16; j++) {
+
+488 ià(
+nhv6
+[
+j
+])
+
+489 
+æag
+++;
+
+491 ià(
+æag
+ == 0) {
+
+492 ià(
+NDIPV6_DEBUG
+)
+
+493 
+	`´štf
+("NDIPV6‚o‚h found for ipv6 "
+
+496 
+v6addr
+[0], ipv6addr[1], ipv6addr[2],
+
+497 
+v6addr
+[3], ipv6addr[4], ipv6addr[5],
+
+498 
+v6addr
+[6], ipv6addr[7], ipv6addr[8],
+
+499 
+v6addr
+[9], ipv6addr[10], ipv6addr[11],
+
+500 
+v6addr
+[12], ipv6addr[13], ipv6addr[14],
+
+501 
+v6addr
+[15], *
+phy_pÜt
+);
+
+505 
+nd_’Œy_d©a
+ *
+»t_nd_d©a
+ = 
+NULL
+;
+
+506 
+nd_key_v6
+ 
+tmp_nd_key
+;
+
+507 
+tmp_nd_key
+.
+pÜt_id
+ = *
+phy_pÜt
+;
+
+509 
+i
+ = 0; i < 16; i++)
+
+510 
+tmp_nd_key
+.
+v6
+[
+i
+] = 
+nhv6
+[i];
+
+512 
+»t_nd_d©a
+ = 
+	`»Œ›ve_nd_’Œy
+(
+tmp_nd_key
+);
+
+513 ià(
+»t_nd_d©a
+ =ð
+NULL
+) {
+
+514 ià(
+NDIPV6_DEBUG
+) {
+
+515 
+	`´štf
+("NDIPV6‚o‚dƒntry found for ip %x,…ort %d\n",
+
+516 
+v6addr
+[0], *
+phy_pÜt
+);
+
+518 
+lib_nd_no_¬p_’Œy_found
+++;
+
+521 
+	`‘h”_addr_cÝy
+(&
+»t_nd_d©a
+->
+‘h_addr
+, 
+hw_addr
+);
+
+522 
+lib_nd_nd_’Œy_found
+++;
+
+524 
+	}
+}
+
+526 
+	$g‘_de¡_mac_add»ss_v6
+(
+ušt8_t
+ 
+v6addr
+[], 
+ušt32_t
+ *
+phy_pÜt
+,
+
+527 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt8_t
+ 
+nhv6
+[])
+
+529 
+i
+ = 0, 
+j
+ = 0, 
+æag
+ = 0;
+
+530 
+lib_nd_g‘_mac_»q
+++;
+
+532 
+	`g‘_nh_v6
+(
+v6addr
+, 
+phy_pÜt
+, 
+nhv6
+);
+
+533 
+j
+ = 0; j < 16; j++) {
+
+534 ià(
+nhv6
+[
+j
+]) {
+
+535 
+æag
+++;
+
+538 ià(
+æag
+ == 0) {
+
+539 ià(
+NDIPV6_DEBUG
+ && 
+v6addr
+)
+
+540 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+542 
+v6addr
+[0], *
+phy_pÜt
+);
+
+546 
+nd_’Œy_d©a
+ *
+»t_nd_d©a
+ = 
+NULL
+;
+
+547 
+nd_key_v6
+ 
+tmp_nd_key
+;
+
+548 
+tmp_nd_key
+.
+pÜt_id
+ = *
+phy_pÜt
+;
+
+550 
+i
+ = 0; i < 16; i++) {
+
+551 
+tmp_nd_key
+.
+v6
+[
+i
+] = 
+nhv6
+[i];
+
+554 
+»t_nd_d©a
+ = 
+	`»Œ›ve_nd_’Œy
+(
+tmp_nd_key
+);
+
+555 ià(
+»t_nd_d©a
+ =ð
+NULL
+) {
+
+556 ià(
+NDIPV6_DEBUG
+ && 
+v6addr
+) {
+
+557 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+559 
+v6addr
+[0], *
+phy_pÜt
+);
+
+561 ià(
+æag
+ != 0) {
+
+562 ià(
+ARPICMP_DEBUG
+ > 4)
+
+563 
+´štf
+
+
+565 *
+phy_pÜt
+);
+
+566 
+	`»que¡_nd
+(&
+nhv6
+[0], 
+	`ifm_g‘_pÜt
+(*
+phy_pÜt
+));
+
+570 
+lib_nd_no_¬p_’Œy_found
+++;
+
+573 
+	`‘h”_addr_cÝy
+(&
+»t_nd_d©a
+->
+‘h_addr
+, 
+hw_addr
+);
+
+574 
+lib_nd_nd_’Œy_found
+++;
+
+576 
+	}
+}
+
+582 
+	slib_¬p_¬p_bË_’Œy
+ {
+
+583 
+¹e_p–še_bË_’Œy
+ 
+	mh—d
+;
+
+584 
+ušt64_t
+ 
+	mmaÿddr
+;
+
+587 cÚ¡ *
+	$¬p_Ý_Çme
+(
+ušt16_t
+ 
+¬p_Ý
+)
+
+589 
+	`CHECK_ENDIAN_16
+(
+¬p_Ý
+)) {
+
+590 (
+ARP_OP_REQUEST
+):
+
+592 (
+ARP_OP_REPLY
+):
+
+594 (
+ARP_OP_REVREQUEST
+):
+
+596 (
+ARP_OP_REVREPLY
+):
+
+598 (
+ARP_OP_INVREQUEST
+):
+
+600 (
+ARP_OP_INVREPLY
+):
+
+606 
+	}
+}
+
+608 
+	$´št_icmp_·ck‘
+(
+icmp_hdr
+ *
+icmp_h
+)
+
+610 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, " ICMP:ype=%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’t
+),
+
+616 
+	`CHECK_ENDIAN_16
+(
+icmp_h
+->
+icmp_£q_nb
+));
+
+617 
+	}
+}
+
+619 
+	$´št_v4_h
+(
+v4_hdr
+ *
+_h
+)
+
+621 
+icmp_hdr
+ *
+icmp_h
+ =
+
+622 (
+icmp_hdr
+ *)((*)
+_h
+ + (
+v4_hdr
+));
+
+623 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, " IPv4: Version=%d HLEN=%d Type=%d Length=%d\n",
+
+624 (
+_h
+->
+v”siÚ_ihl
+ & 0xf0) >> 4, (ip_h->version_ihl & 0x0f),
+
+625 
+_h
+->
+ty³_of_£rviû
+, 
+	`¹e_ýu_to_be_16
+(_h->
+tÙ®_Ëngth
+));
+
+626 ià(
+_h
+->
+Ãxt_´Ùo_id
+ =ð
+IPPROTO_ICMP
+) {
+
+627 
+	`´št_icmp_·ck‘
+(
+icmp_h
+);
+
+629 
+	}
+}
+
+631 
+	$´št_¬p_·ck‘
+(
+¬p_hdr
+ *
+¬p_h
+)
+
+633 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, " ARP: hrd=%d…roto=0x%04x hln=%d "
+
+635 
+	`CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_hrd
+),
+
+636 
+	`CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_´o
+),‡½_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 } ià(
+	`CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_´o
+è!ð
+ETHER_TYPE_IPv4
+) {
+
+645 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+647 (
+¬p_h
+->
+¬p_´o
+));
+
+648 } ià(
+¬p_h
+->
+¬p_hÊ
+ != 6) {
+
+649 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+651 
+¬p_h
+->
+¬p_hÊ
+);
+
+652 } ià(
+¬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‹s
+[0],
+
+660 
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by‹s
+[1],
+
+661 
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by‹s
+[2],
+
+662 
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by‹s
+[3],
+
+663 
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by‹s
+[4],
+
+664 
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by‹s
+[5]);
+
+665 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, " sip=%d.%d.%d.%d\n",
+
+666 (
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+) >> 24) & 0xFF,
+
+667 (
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+) >> 16) & 0xFF,
+
+668 (
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+) >> 8) & 0xFF,
+
+669 
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+) & 0xFF);
+
+670 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+672 
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by‹s
+[0],
+
+673 
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by‹s
+[1],
+
+674 
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by‹s
+[2],
+
+675 
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by‹s
+[3],
+
+676 
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by‹s
+[4],
+
+677 
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by‹s
+[5]);
+
+678 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "ip=%d.%d.%d.%d\n",
+
+679 (
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+) >> 24) & 0xFF,
+
+680 (
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+) >> 16) & 0xFF,
+
+681 (
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+) >> 8) & 0xFF,
+
+682 
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+) & 0xFF);
+
+684 
+	}
+}
+
+686 
+	$´št_‘h
+(
+‘h”_hdr
+ *
+‘h_h
+)
+
+688 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, " ETH: src=%02X:%02X:%02X:%02X:%02X:%02X",
+
+689 
+‘h_h
+->
+s_addr
+.
+addr_by‹s
+[0],
+
+690 
+‘h_h
+->
+s_addr
+.
+addr_by‹s
+[1],
+
+691 
+‘h_h
+->
+s_addr
+.
+addr_by‹s
+[2],
+
+692 
+‘h_h
+->
+s_addr
+.
+addr_by‹s
+[3],
+
+693 
+‘h_h
+->
+s_addr
+.
+addr_by‹s
+[4],ƒth_h->s_addr.addr_bytes[5]);
+
+694 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, " dst=%02X:%02X:%02X:%02X:%02X:%02X\n",
+
+695 
+‘h_h
+->
+d_addr
+.
+addr_by‹s
+[0],
+
+696 
+‘h_h
+->
+d_addr
+.
+addr_by‹s
+[1],
+
+697 
+‘h_h
+->
+d_addr
+.
+addr_by‹s
+[2],
+
+698 
+‘h_h
+->
+d_addr
+.
+addr_by‹s
+[3],
+
+699 
+‘h_h
+->
+d_addr
+.
+addr_by‹s
+[4],ƒth_h->d_addr.addr_bytes[5]);
+
+701 
+	}
+}
+
+704 
+	$´št_mbuf
+(cÚ¡ *
+rx_tx
+, 
+ušt8_t
+ 
+pÜtid
+, 
+¹e_mbuf
+ *
+mbuf
+,
+
+705 
+lše
+)
+
+707 
+‘h”_hdr
+ *
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+mbuf
+, ether_hdr *);
+
+708 
+¬p_hdr
+ *
+¬p_h
+ =
+
+709 (
+¬p_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+710 
+v4_hdr
+ *
+v4_h
+ =
+
+711 (
+v4_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+713 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "%s(%d): on…ort %d…kt-len=%u‚b-segs=%u\n",
+
+714 
+rx_tx
+, 
+lše
+, 
+pÜtid
+, 
+mbuf
+->
+pkt_Ën
+, mbuf->
+nb_£gs
+);
+
+715 
+	`´št_‘h
+(
+‘h_h
+);
+
+716 
+	`¹e_ýu_to_be_16
+(
+‘h_h
+->
+‘h”_ty³
+)) {
+
+717 
+ETHER_TYPE_IPv4
+:
+
+718 
+	`´št_v4_h
+(
+v4_h
+);
+
+720 
+ETHER_TYPE_ARP
+:
+
+721 
+	`´št_¬p_·ck‘
+(
+¬p_h
+);
+
+724 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, " unknown…acketype\n");
+
+727 
+	`fæush
+(
+¡dout
+);
+
+728 
+	}
+}
+
+730 
+¬p_’Œy_d©a
+ *
+	$»Œ›ve_¬p_’Œy
+(
+¬p_key_v4
+ 
+¬p_key
+)
+
+732 
+¬p_’Œy_d©a
+ *
+»t_¬p_d©a
+ = 
+NULL
+;
+
+733 
+¬p_key
+.
+fžËr1
+ = 0;
+
+734 
+¬p_key
+.
+fžËr2
+ = 0;
+
+735 
+¬p_key
+.
+fžËr3
+ = 0;
+
+737 
+»t
+ = 
+	`¹e_hash_lookup_d©a
+(
+¬p_hash_hªdË
+, &
+¬p_key
+,
+
+738 (**)&
+»t_¬p_d©a
+);
+
+739 ià(
+»t
+ < 0) {
+
+743 ià(
+»t_¬p_d©a
+->
+mode
+ =ð
+DYNAMIC_ARP
+) {
+
+744 
+¬p_tim”_key
+ 
+ÿÎback_key
+;
+
+745 
+ÿÎback_key
+.
+pÜt_id
+ = 
+»t_¬p_d©a
+->
+pÜt
+;
+
+746 
+ÿÎback_key
+.
+
+ = 
+»t_¬p_d©a
+->ip;
+
+748 ià(
+	`¹e_tim”_»£t
+(
+»t_¬p_d©a
+->
+tim”
+,
+
+749 (
+¬p_timeout
+ * 
+	`¹e_g‘_tsc_hz
+()),
+
+750 
+SINGLE
+, 
+tim”_lcÜe
+,
+
+751 
+¬p_tim”_ÿÎback
+,
+
+752 &
+ÿÎback_key
+) < 0)
+
+753 ià(
+ARPICMP_DEBUG
+)
+
+754 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+758  
+»t_¬p_d©a
+;
+
+761  
+NULL
+;
+
+762 
+	}
+}
+
+764 
+nd_’Œy_d©a
+ *
+	$»Œ›ve_nd_’Œy
+(
+nd_key_v6
+ 
+nd_key
+)
+
+766 
+nd_’Œy_d©a
+ *
+»t_nd_d©a
+ = 
+NULL
+;
+
+767 
+nd_key
+.
+fžËr1
+ = 0;
+
+768 
+nd_key
+.
+fžËr2
+ = 0;
+
+769 
+nd_key
+.
+fžËr3
+ = 0;
+
+770 
+i
+ = 0;
+
+773 
+»t
+ = 
+	`¹e_hash_lookup_d©a
+(
+nd_hash_hªdË
+, &
+nd_key
+,
+
+774 (**)&
+»t_nd_d©a
+);
+
+775 ià(
+»t
+ < 0) {
+
+779 ià(
+»t_nd_d©a
+->
+mode
+ =ð
+DYNAMIC_ND
+) {
+
+780 
+nd_tim”_key
+ 
+ÿÎback_key
+;
+
+781 
+ÿÎback_key
+.
+pÜt_id
+ = 
+»t_nd_d©a
+->
+pÜt
+;
+
+783 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+784 
+ÿÎback_key
+.
+v6
+[
+i
+] = 
+»t_nd_d©a
+->ipv6[i];
+
+788 ià(
+¹e_tim”_»£t
+
+
+789 (
+»t_nd_d©a
+->
+tim”
+,
+
+790 (
+¬p_timeout
+ * 
+	`¹e_g‘_tsc_hz
+()), 
+SINGLE
+,
+
+791 
+tim”_lcÜe
+, 
+nd_tim”_ÿÎback
+, &
+ÿÎback_key
+) < 0)
+
+792 ià(
+ARPICMP_DEBUG
+)
+
+793 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+796  
+»t_nd_d©a
+;
+
+799  
+NULL
+;
+
+800 
+	}
+}
+
+802 
+	$´št_¬p_bË
+()
+
+804 cÚ¡ *
+Ãxt_key
+;
+
+805 *
+Ãxt_d©a
+;
+
+806 
+ušt32_t
+ 
+™”
+ = 0;
+
+808 
+´štf
+
+
+810 
+´štf
+
+
+812 
+	`´štf
+("\tport hw‡ddr status ip‡ddr\n");
+
+813 
+´štf
+
+
+816 
+	`¹e_hash_™”©e
+(
+¬p_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+™”
+)
+
+819 
+¬p_’Œy_d©a
+ *
+tmp_¬p_d©a
+ =
+
+820 (
+¬p_’Œy_d©a
+ *)
+Ãxt_d©a
+;
+
+821 
+¬p_key_v4
+ 
+tmp_¬p_key
+;
+
+822 
+	`memýy
+(&
+tmp_¬p_key
+, 
+Ãxt_key
+, (
+¬p_key_v4
+));
+
+823 
+´štf
+
+
+825 
+tmp_¬p_d©a
+->
+pÜt
+,mp_¬p_d©a->
+‘h_addr
+.
+addr_by‹s
+[0],
+
+826 
+tmp_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[1],
+
+827 
+tmp_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[2],
+
+828 
+tmp_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[3],
+
+829 
+tmp_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[4],
+
+830 
+tmp_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[5],
+
+831 
+tmp_¬p_d©a
+->
+¡©us
+ ==
+
+832 
+COMPLETE
+ ? "COMPLETE" : "INCOMPLETE",
+
+833 (
+tmp_¬p_d©a
+->
+
+ >> 24),
+
+834 ((
+tmp_¬p_d©a
+->
+
+ & 0x00ff0000) >> 16),
+
+835 ((
+tmp_¬p_d©a
+->
+
+ & 0x0000ff00) >> 8),
+
+836 ((
+tmp_¬p_d©a
+->
+
+ & 0x000000ff)));
+
+839 
+ušt32_t
+ 
+i
+ = 0;
+
+840 
+	`´štf
+("\nARP„outšgabË ha %dƒÁr›s\n", 
+¬p_rou‹_tbl_šdex
+);
+
+841 
+	`´štf
+("\nIP_Address Mask Port NH_IP_Address\n");
+
+842 
+i
+ = 0; i < 
+¬p_rou‹_tbl_šdex
+; i++) {
+
+843 
+	`´štf
+("0x%x 0x%x %d 0x%x\n",
+
+844 
+lib_¬p_rou‹_bË
+[
+i
+].
+
+,
+
+845 
+lib_¬p_rou‹_bË
+[
+i
+].
+mask
+,
+
+846 
+lib_¬p_rou‹_bË
+[
+i
+].
+pÜt
+,†ib_¬p_rou‹_bË[i].
+nh
+);
+
+849 
+´štf
+
+
+851 
+lib_¬p_g‘_mac_»q
+, 
+lib_¬p_nh_found
+, 
+lib_¬p_no_nh_found
+,
+
+852 
+lib_¬p_¬p_’Œy_found
+, 
+lib_¬p_no_¬p_’Œy_found
+,
+
+853 
+lib_¬p_pÝuϋ_ÿÎed
+, 
+lib_¬p_d–‘e_ÿÎed
+,
+
+854 
+lib_¬p_du¶iÿ‹_found
+);
+
+856 
+	`´štf
+("ARPabË key†’ i %lu\n", (
+¬p_key_v4
+));
+
+857 
+	}
+}
+
+860 
+	$´št_nd_bË
+()
+
+862 cÚ¡ *
+Ãxt_key
+;
+
+863 *
+Ãxt_d©a
+;
+
+864 
+ušt32_t
+ 
+™”
+ = 0;
+
+865 
+ušt8_t
+ 
+ii
+ = 0, 
+j
+ = 0, 
+k
+ = 0;
+
+866 
+´štf
+
+
+868 
+	`´štf
+("\tport hw‡ddr status ip‡ddr\n");
+
+870 
+´štf
+
+
+872 
+	`¹e_hash_™”©e
+(
+nd_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+™”
+) >=
+
+875 
+nd_’Œy_d©a
+ *
+tmp_nd_d©a
+ =
+
+876 (
+nd_’Œy_d©a
+ *)
+Ãxt_d©a
+;
+
+877 
+nd_key_v6
+ 
+tmp_nd_key
+;
+
+878 
+	`memýy
+(&
+tmp_nd_key
+, 
+Ãxt_key
+, (
+nd_key_v6
+));
+
+879 
+	`´štf
+("\t%4d %02X:%02X:%02X:%02X:%02X:%02X %10s\n",
+
+880 
+tmp_nd_d©a
+->
+pÜt
+,
+
+881 
+tmp_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[0],
+
+882 
+tmp_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[1],
+
+883 
+tmp_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[2],
+
+884 
+tmp_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[3],
+
+885 
+tmp_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[4],
+
+886 
+tmp_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[5],
+
+887 
+tmp_nd_d©a
+->
+¡©us
+ ==
+
+888 
+COMPLETE
+ ? "COMPLETE" : "INCOMPLETE");
+
+889 
+	`´štf
+("\t\t\t\t\t\t");
+
+890 
+ii
+ = 0; i˜< 
+ND_IPV6_ADDR_SIZE
+; ii += 2) {
+
+891 
+	`´štf
+("%02X%02X ", 
+tmp_nd_d©a
+->
+v6
+[
+ii
+],
+
+892 
+tmp_nd_d©a
+->
+v6
+[
+ii
+ + 1]);
+
+894 
+	`´štf
+("\n");
+
+897 
+ušt32_t
+ 
+i
+ = 0;
+
+898 
+	`´štf
+("\n\nND IPV6„outingable has %dƒntries\n",
+
+899 
+nd_rou‹_tbl_šdex
+);
+
+900 
+´štf
+
+
+902 
+i
+ = 0; i < 
+nd_rou‹_tbl_šdex
+; i++) {
+
+903 
+	`´štf
+("\n");
+
+905 
+j
+ = 0; j < 
+ND_IPV6_ADDR_SIZE
+; j += 2) {
+
+906 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "%02X%02X ",
+
+907 
+lib_nd_rou‹_bË
+[
+i
+].
+v6
+[
+j
+],
+
+908 
+lib_nd_rou‹_bË
+[
+i
+].
+v6
+[
+j
+ + 1]);
+
+911 
+´štf
+
+
+913 
+lib_nd_rou‹_bË
+[
+i
+].
+d•th
+,†ib_nd_rou‹_bË[i].
+pÜt
+);
+
+914 
+	`´štf
+("\t\t\t\t\t\t\t\t\t");
+
+915 
+k
+ = 0; k < 
+ND_IPV6_ADDR_SIZE
+; k += 2) {
+
+916 
+	`´štf
+("%02X%02X ", 
+lib_nd_rou‹_bË
+[
+i
+].
+nhv6
+[
+k
+],
+
+917 
+lib_nd_rou‹_bË
+[
+i
+].
+v6
+[
+k
+ + 1]);
+
+920 
+´štf
+
+
+922 
+lib_nd_g‘_mac_»q
+, 
+lib_nd_nh_found
+, 
+lib_nd_no_nh_found
+,
+
+923 
+lib_nd_nd_’Œy_found
+, 
+lib_nd_no_¬p_’Œy_found
+,
+
+924 
+lib_nd_pÝuϋ_ÿÎed
+, 
+lib_nd_d–‘e_ÿÎed
+,
+
+925 
+lib_nd_du¶iÿ‹_found
+);
+
+926 
+	`´štf
+("NDabË key†’ i %lu\n\n", (
+nd_key_v6
+));
+
+927 
+	}
+}
+
+929 
+	$»move_¬p_’Œy
+(
+ušt32_t
+ 
+addr
+, 
+ušt8_t
+ 
+pÜtid
+, *
+¬g
+)
+
+932 
+¬p_key_v4
+ 
+¬p_key
+;
+
+933 
+¬p_key
+.
+pÜt_id
+ = 
+pÜtid
+;
+
+934 
+¬p_key
+.
+
+ = 
+addr
+;
+
+935 
+¬p_key
+.
+fžËr1
+ = 0;
+
+936 
+¬p_key
+.
+fžËr2
+ = 0;
+
+937 
+¬p_key
+.
+fžËr3
+ = 0;
+
+939 
+lib_¬p_d–‘e_ÿÎed
+++;
+
+941 
+¬p_’Œy_d©a
+ *
+»t_¬p_d©a
+ = 
+NULL
+;
+
+943 
+»t
+ = 
+	`¹e_hash_lookup_d©a
+(
+¬p_hash_hªdË
+, &
+¬p_key
+,
+
+944 (**)&
+»t_¬p_d©a
+);
+
+945 ià(
+»t
+ < 0) {
+
+949 ià(
+»t_¬p_d©a
+->
+mode
+ =ð
+DYNAMIC_ARP
+) {
+
+950 ià(
+»t_¬p_d©a
+->
+»Œy_couÁ
+ == 3) {
+
+951 
+	`¹e_tim”_¡Ý
+(
+»t_¬p_d©a
+->
+tim”
+);
+
+952 
+	`¹e_ä“
+(
+»t_¬p_d©a
+->
+tim”_key
+);
+
+953 ià(
+ARPICMP_DEBUG
+) {
+
+954 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+956 (
+¬p_key
+.
+
+ >> 24),
+
+957 ((
+¬p_key
+.
+
+ & 0x00ff0000) >>
+
+959 ((
+¬p_key
+.
+
+ & 0x0000ff00) >>
+
+961 ((
+¬p_key
+.
+
+ & 0x000000ff)),
+
+962 
+¬p_key
+.
+pÜt_id
+);
+
+964 
+	`¹e_hash_d–_key
+(
+¬p_hash_hªdË
+, &
+¬p_key
+);
+
+967 
+»t_¬p_d©a
+->
+»Œy_couÁ
+++;
+
+968 ià(
+ARPICMP_DEBUG
+)
+
+969 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+971 
+»t_¬p_d©a
+->
+»Œy_couÁ
+);
+
+973 ià(
+ARPICMP_DEBUG
+)
+
+974 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+976 
+ARP_TIMER_EXPIRY
+);
+
+977 ià(
+ifm_chk_pÜt_v4_’abËd
+
+
+978 (
+»t_¬p_d©a
+->
+pÜt
+)) {
+
+979 
+	`»que¡_¬p
+(
+»t_¬p_d©a
+->
+pÜt
+,
+
+980 
+»t_¬p_d©a
+->
+
+);
+
+982 ià(
+ARPICMP_DEBUG
+)
+
+983 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+985 
+__FUNCTION__
+,
+
+986 
+»t_¬p_d©a
+->
+pÜt
+);
+
+988 ià(
+	`¹e_tim”_»£t
+(
+»t_¬p_d©a
+->
+tim”
+,
+
+989 (
+¬p_timeout
+ *
+
+990 
+	`¹e_g‘_tsc_hz
+()), 
+SINGLE
+,
+
+991 
+tim”_lcÜe
+,
+
+992 
+¬p_tim”_ÿÎback
+,
+
+993 
+¬g
+) < 0)
+
+994 ià(
+ARPICMP_DEBUG
+)
+
+995 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1000 
+	`¹e_hash_d–_key
+(
+¬p_hash_hªdË
+, &
+¬p_key
+);
+
+1003 
+	}
+}
+
+1006 
+	$»move_nd_’Œy_v6
+(
+ušt8_t
+ 
+v6addr
+[], ušt8_ˆ
+pÜtid
+)
+
+1008 
+i
+ = 0;
+
+1009 
+nd_’Œy_d©a
+ *
+»t_nd_d©a
+ = 
+NULL
+;
+
+1010 
+nd_key_v6
+ 
+nd_key
+;
+
+1011 
+nd_key
+.
+pÜt_id
+ = 
+pÜtid
+;
+
+1013 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+1014 
+nd_key
+.
+v6
+[
+i
+] = 
+v6addr
+[i];
+
+1017 
+nd_key
+.
+fžËr1
+ = 0;
+
+1018 
+nd_key
+.
+fžËr2
+ = 0;
+
+1019 
+nd_key
+.
+fžËr3
+ = 0;
+
+1021 
+lib_nd_d–‘e_ÿÎed
+++;
+
+1023 ià(
+NDIPV6_DEBUG
+) {
+
+1024 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1026 
+nd_key
+.
+pÜt_id
+);
+
+1027 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1028 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "%02X%02X ", 
+nd_key
+.
+v6
+[
+i
+],
+
+1029 
+nd_key
+.
+v6
+[
+i
+ + 1]);
+
+1032 
+nd_tim”_key
+ 
+ÿÎback_key
+;
+
+1033 
+ÿÎback_key
+.
+pÜt_id
+ = 
+pÜtid
+;
+
+1035 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+1036 
+ÿÎback_key
+.
+v6
+[
+i
+] = 
+v6addr
+[i];
+
+1039 
+»t
+ = 
+	`¹e_hash_lookup_d©a
+(
+¬p_hash_hªdË
+, &
+ÿÎback_key
+,
+
+1040 (**)&
+»t_nd_d©a
+);
+
+1041 ià(
+»t
+ < 0) {
+
+1044 ià(
+»t_nd_d©a
+->
+mode
+ =ð
+DYNAMIC_ND
+) {
+
+1045 
+	`¹e_tim”_¡Ý
+(
+»t_nd_d©a
+->
+tim”
+);
+
+1046 
+	`¹e_ä“
+(
+»t_nd_d©a
+->
+tim”
+);
+
+1049 
+	`¹e_hash_d–_key
+(
+nd_hash_hªdË
+, &
+nd_key
+);
+
+1050 
+	}
+}
+
+1053 
+	$pÝuϋ_¬p_’Œy
+(cÚ¡ 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt32_t
+ 
+addr
+,
+
+1054 
+ušt8_t
+ 
+pÜtid
+, ušt8_ˆ
+mode
+)
+
+1056 
+¬p_key_v4
+ 
+¬p_key
+;
+
+1057 
+¬p_key
+.
+pÜt_id
+ = 
+pÜtid
+;
+
+1058 
+¬p_key
+.
+
+ = 
+addr
+;
+
+1059 
+¬p_key
+.
+fžËr1
+ = 0;
+
+1060 
+¬p_key
+.
+fžËr2
+ = 0;
+
+1061 
+¬p_key
+.
+fžËr3
+ = 0;
+
+1063 
+lib_¬p_pÝuϋ_ÿÎed
+++;
+
+1065 ià(
+ARPICMP_DEBUG
+)
+
+1066 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "populate_arp_entry ip %x,…ort %d\n",
+
+1067 
+¬p_key
+.
+
+,‡½_key.
+pÜt_id
+);
+
+1069 
+¬p_’Œy_d©a
+ *
+Ãw_¬p_d©a
+ = 
+	`»Œ›ve_¬p_’Œy
+(
+¬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ƒntry‡lreadyƒxists(%d %d)\n",
+
+1075 
+Ãw_¬p_d©a
+->
+mode
+, mode);
+
+1080 ià(
+mode
+ =ð
+DYNAMIC_ARP
+) {
+
+1081 ià(
+Ãw_¬p_d©a
+
+
+1082 && 
+	`is_§me_‘h”_addr
+(&
+Ãw_¬p_d©a
+->
+‘h_addr
+, 
+hw_addr
+)) {
+
+1083 ià(
+ARPICMP_DEBUG
+) {
+
+1084 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1086 (
+¬p_key
+.
+
+ >> 24),
+
+1087 ((
+¬p_key
+.
+
+ & 0x00ff0000) >> 16),
+
+1088 ((
+¬p_key
+.
+
+ & 0x0000ff00) >> 8),
+
+1089 ((
+¬p_key
+.
+
+ & 0x000000ff)),
+
+1090 
+¬p_key
+.
+pÜt_id
+);
+
+1092 
+lib_¬p_du¶iÿ‹_found
+++;
+
+1093 
+Ãw_¬p_d©a
+->
+»Œy_couÁ
+ = 0;
+
+1094 ià(
+	`¹e_tim”_»£t
+(
+Ãw_¬p_d©a
+->
+tim”
+,
+
+1095 (
+¬p_timeout
+ * 
+	`¹e_g‘_tsc_hz
+()),
+
+1096 
+SINGLE
+, 
+tim”_lcÜe
+,
+
+1097 
+¬p_tim”_ÿÎback
+,
+
+1098 
+Ãw_¬p_d©a
+->
+tim”_key
+) < 0)
+
+1099 ià(
+ARPICMP_DEBUG
+)
+
+1100 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1105 
+ušt32_t
+ 
+size
+ =
+
+1106 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+¬p_’Œy_d©a
+));
+
+1107 
+Ãw_¬p_d©a
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+1108 
+Ãw_¬p_d©a
+->
+‘h_addr
+ = *
+hw_addr
+;
+
+1109 
+Ãw_¬p_d©a
+->
+¡©us
+ = 
+COMPLETE
+;
+
+1110 
+Ãw_¬p_d©a
+->
+pÜt
+ = 
+pÜtid
+;
+
+1111 
+Ãw_¬p_d©a
+->
+
+ = 
+addr
+;
+
+1112 
+Ãw_¬p_d©a
+->
+mode
+ = mode;
+
+1113 ià(
+¹e_mempoÞ_g‘
+
+
+1114 (
+tim”_mempoÞ_¬p
+, (**)&(
+Ãw_¬p_d©a
+->
+tim”
+)) < 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
+.
+
+ >> 24),
+
+1125 ((
+¬p_key
+.
+
+ & 0x00ff0000) >> 16),
+
+1126 ((
+¬p_key
+.
+
+ & 0x0000ff00) >> 8),
+
+1127 ((
+¬p_key
+.
+
+ & 0x000000ff)),‡½_key.
+pÜt_id
+);
+
+1130 
+	`»sÞve_l2_adj
+(
+addr
+, 
+pÜtid
+, 
+hw_addr
+);
+
+1132 
+	`¹e_tim”_š™
+(
+Ãw_¬p_d©a
+->
+tim”
+);
+
+1133 
+¬p_tim”_key
+ *
+ÿÎback_key
+ =
+
+1134 (
+¬p_tim”_key
+ *)
+	`¹e_m®loc
+(
+NULL
+,
+
+1136 
+¬p_tim”_key
+ *),
+
+1137 
+RTE_CACHE_LINE_SIZE
+);
+
+1138 
+ÿÎback_key
+->
+pÜt_id
+ = 
+pÜtid
+;
+
+1139 
+ÿÎback_key
+->
+
+ = 
+addr
+;
+
+1141 ià(
+ARPICMP_DEBUG
+)
+
+1142 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "TIMER STARTED FOR %u seconds\n",
+
+1143 
+ARP_TIMER_EXPIRY
+);
+
+1144 ià(
+¹e_tim”_»£t
+
+
+1145 (
+Ãw_¬p_d©a
+->
+tim”
+, (
+¬p_timeout
+ * 
+	`¹e_g‘_tsc_hz
+()),
+
+1146 
+SINGLE
+, 
+tim”_lcÜe
+, 
+¬p_tim”_ÿÎback
+, 
+ÿÎback_key
+) < 0)
+
+1147 ià(
+ARPICMP_DEBUG
+)
+
+1148 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1151 
+Ãw_¬p_d©a
+->
+tim”_key
+ = 
+ÿÎback_key
+;
+
+1153 ià(
+Ãw_¬p_d©a
+
+
+1154 && 
+	`is_§me_‘h”_addr
+(&
+Ãw_¬p_d©a
+->
+‘h_addr
+, 
+hw_addr
+)) {
+
+1155 ià(
+ARPICMP_DEBUG
+) {
+
+1156 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1158 (
+¬p_key
+.
+
+ >> 24),
+
+1159 ((
+¬p_key
+.
+
+ & 0x00ff0000) >> 16),
+
+1160 ((
+¬p_key
+.
+
+ & 0x0000ff00) >> 8),
+
+1161 ((
+¬p_key
+.
+
+ & 0x000000ff)),
+
+1162 
+¬p_key
+.
+pÜt_id
+);
+
+1164 
+lib_¬p_du¶iÿ‹_found
+++;
+
+1166 
+ušt32_t
+ 
+size
+ =
+
+1167 
+	`RTE_CACHE_LINE_ROUNDUP
+(
+
+1168 (
+¬p_’Œy_d©a
+));
+
+1169 
+Ãw_¬p_d©a
+ =
+
+1170 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+1171 
+Ãw_¬p_d©a
+->
+‘h_addr
+ = *
+hw_addr
+;
+
+1172 
+Ãw_¬p_d©a
+->
+¡©us
+ = 
+COMPLETE
+;
+
+1173 
+Ãw_¬p_d©a
+->
+pÜt
+ = 
+pÜtid
+;
+
+1174 
+Ãw_¬p_d©a
+->
+
+ = 
+addr
+;
+
+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
+.
+
+ >> 24),
+
+1183 ((
+¬p_key
+.
+
+ & 0x00ff0000) >> 16),
+
+1184 ((
+¬p_key
+.
+
+ & 0x0000ff00) >> 8),
+
+1185 ((
+¬p_key
+.
+
+ & 0x000000ff)),
+
+1186 
+¬p_key
+.
+pÜt_id
+);
+
+1189 
+	`»sÞve_l2_adj
+(
+addr
+, 
+pÜtid
+, 
+hw_addr
+);
+
+1192 ià(
+ARPICMP_DEBUG
+) {
+
+1194 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1196 
+Ãw_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[0],
+
+1197 
+Ãw_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[1],
+
+1198 
+Ãw_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[2],
+
+1199 
+Ãw_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[3],
+
+1200 
+Ãw_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[4],
+
+1201 
+Ãw_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[5],
+
+1202 (
+¬p_key
+.
+
+ >> 24), ((arp_key.ip & 0x00ff0000) >> 16),
+
+1203 ((
+¬p_key
+.
+
+ & 0x0000ff00) >> 8),
+
+1204 ((
+¬p_key
+.
+
+ & 0x000000ff)), 
+pÜtid
+);
+
+1205 
+	`puts
+("");
+
+1207 
+	}
+}
+
+1216 
+	$pÝuϋ_nd_’Œy
+(cÚ¡ 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt8_t
+ 
+v6
+[],
+
+1217 
+ušt8_t
+ 
+pÜtid
+, ušt8_ˆ
+mode
+)
+
+1222 
+ušt8_t
+ 
+i
+;
+
+1223 
+nd_key_v6
+ 
+nd_key
+;
+
+1224 
+nd_key
+.
+pÜt_id
+ = 
+pÜtid
+;
+
+1226 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+1227 
+nd_key
+.
+v6
+[
+i
+] = ipv6[i];
+
+1230 
+nd_key
+.
+fžËr1
+ = 0;
+
+1231 
+nd_key
+.
+fžËr2
+ = 0;
+
+1232 
+nd_key
+.
+fžËr3
+ = 0;
+
+1234 
+lib_nd_pÝuϋ_ÿÎed
+++;
+
+1237 
+nd_’Œy_d©a
+ *
+Ãw_nd_d©a
+ = 
+	`»Œ›ve_nd_’Œy
+(
+nd_key
+);
+
+1239 ià(
+mode
+ =ð
+DYNAMIC_ND
+) {
+
+1240 ià(
+Ãw_nd_d©a
+
+
+1241 && 
+	`is_§me_‘h”_addr
+(&
+Ãw_nd_d©a
+->
+‘h_addr
+, 
+hw_addr
+)) {
+
+1243 ià(
+NDIPV6_DEBUG
+) {
+
+1244 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1246 
+nd_key
+.
+pÜt_id
+);
+
+1247 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1249 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "%02X%02X ",
+
+1250 
+nd_key
+.
+v6
+[
+i
+],
+
+1251 
+nd_key
+.
+v6
+[
+i
+ + 1]);
+
+1255 
+lib_nd_du¶iÿ‹_found
+++;
+
+1256 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "nd_entryƒxists\n");
+
+1259 
+ušt32_t
+ 
+size
+ =
+
+1260 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+nd_’Œy_d©a
+));
+
+1261 
+Ãw_nd_d©a
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+1264 
+Ãw_nd_d©a
+->
+‘h_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‘
+
+
+1269 (
+tim”_mempoÞ_¬p
+, (**)&(
+Ãw_nd_d©a
+->
+tim”
+)) < 0) {
+
+1270 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1275 ià(
+NDIPV6_DEBUG
+)
+
+1276 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "populate_nd_entry ipv6=");
+
+1278 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+1279 
+Ãw_nd_d©a
+->
+v6
+[
+i
+] = ipv6[i];
+
+1282 ià(
+NDIPV6_DEBUG
+) {
+
+1283 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1285 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "%02X%02X ",
+
+1286 
+Ãw_nd_d©a
+->
+v6
+[
+i
+],
+
+1287 
+Ãw_nd_d©a
+->
+v6
+[
+i
+ + 1]);
+
+1292 
+	`¹e_hash_add_key_d©a
+(
+nd_hash_hªdË
+, &
+nd_key
+, 
+Ãw_nd_d©a
+);
+
+1296 
+	`¹e_tim”_š™
+(
+Ãw_nd_d©a
+->
+tim”
+);
+
+1297 
+nd_tim”_key
+ *
+ÿÎback_key
+ =
+
+1298 (
+nd_tim”_key
+ *)
+	`¹e_m®loc
+(
+NULL
+,
+
+1299 (
+nd_tim”_key
+
+
+1301 
+RTE_CACHE_LINE_SIZE
+);
+
+1302 
+ÿÎback_key
+->
+pÜt_id
+ = 
+pÜtid
+;
+
+1304 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+1305 
+ÿÎback_key
+->
+v6
+[
+i
+] = ipv6[i];
+
+1307 ià(
+¹e_tim”_»£t
+
+
+1308 (
+Ãw_nd_d©a
+->
+tim”
+, (
+¬p_timeout
+ * 
+	`¹e_g‘_tsc_hz
+()),
+
+1309 
+SINGLE
+, 
+tim”_lcÜe
+, 
+nd_tim”_ÿÎback
+, 
+ÿÎback_key
+) < 0)
+
+1310 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "Err : Timer‡lready„unning\n");
+
+1312 ià(
+Ãw_nd_d©a
+
+
+1313 && 
+	`is_§me_‘h”_addr
+(&
+Ãw_nd_d©a
+->
+‘h_addr
+, 
+hw_addr
+)) {
+
+1314 ià(
+NDIPV6_DEBUG
+) {
+
+1315 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1317 
+nd_key
+.
+pÜt_id
+);
+
+1318 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1320 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "%02X%02X ",
+
+1321 
+nd_key
+.
+v6
+[
+i
+],
+
+1322 
+nd_key
+.
+v6
+[
+i
+ + 1]);
+
+1326 
+lib_nd_du¶iÿ‹_found
+++;
+
+1328 
+ušt32_t
+ 
+size
+ =
+
+1329 
+	`RTE_CACHE_LINE_ROUNDUP
+(
+
+1330 (
+nd_’Œy_d©a
+));
+
+1331 
+Ãw_nd_d©a
+ =
+
+1332 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+1335 
+Ãw_nd_d©a
+->
+‘h_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 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+1340 
+Ãw_nd_d©a
+->
+v6
+[
+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 
+´štf
+
+
+1355 
+´štf
+
+
+1357 
+Ãw_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[0],
+
+1358 
+Ãw_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[1],
+
+1359 
+Ãw_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[2],
+
+1360 
+Ãw_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[3],
+
+1361 
+Ãw_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[4],
+
+1362 
+Ãw_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[5], 
+pÜtid
+);
+
+1363 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "\tipv6=");
+
+1364 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1365 
+Ãw_nd_d©a
+->
+v6
+[
+i
+] = ipv6[i];
+
+1366 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "%02X%02X ", 
+Ãw_nd_d©a
+->
+v6
+[
+i
+],
+
+1367 
+Ãw_nd_d©a
+->
+v6
+[
+i
+ + 1]);
+
+1370 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "\n");
+
+1372 
+	`puts
+("");
+
+1374 
+	}
+}
+
+1376 
+	$´št_pkt1
+(
+¹e_mbuf
+ *
+pkt
+)
+
+1378 
+ušt8_t
+ *
+rd
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+, 0);
+
+1379 
+i
+ = 0, 
+j
+ = 0;
+
+1380 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "\nPacket Contents...\n");
+
+1381 
+i
+ = 0; i < 20; i++) {
+
+1382 
+j
+ = 0; j < 20; j++)
+
+1383 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "%02x ", 
+rd
+[(20 * 
+i
+è+ 
+j
+]);
+
+1384 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "\n");
+
+1386 
+	}
+}
+
+1388 
+‘h”_addr
+ 
+	gbrßdÿ¡_‘h”_addr
+ = {
+
+1389 .
+addr_by‹s
+[0] = 0xFF,
+
+1390 .
+	gaddr_by‹s
+[1] = 0xFF,
+
+1391 .
+	gaddr_by‹s
+[2] = 0xFF,
+
+1392 .
+	gaddr_by‹s
+[3] = 0xFF,
+
+1393 .
+	gaddr_by‹s
+[4] = 0xFF,
+
+1394 .
+	gaddr_by‹s
+[5] = 0xFF,
+
+1397 cÚ¡ 
+‘h”_addr
+ 
+	gnuÎ_‘h”_addr
+ = {
+
+1398 .
+addr_by‹s
+[0] = 0x00,
+
+1399 .
+	gaddr_by‹s
+[1] = 0x00,
+
+1400 .
+	gaddr_by‹s
+[2] = 0x00,
+
+1401 .
+	gaddr_by‹s
+[3] = 0x00,
+
+1402 .
+	gaddr_by‹s
+[4] = 0x00,
+
+1403 .
+	gaddr_by‹s
+[5] = 0x00,
+
+1406 
+	#MAX_NUM_MAC_ADDRESS
+ 16
+
+	)
+
+1407 
+‘h”_addr
+ 
+	glšk_hw_addr
+[
+MAX_NUM_MAC_ADDRESS
+] = {
+
+1408 {.
+addr_by‹s
+ = {0x90, 0xe2, 0xba, 0x54, 0x67, 0xc8} },
+
+1409 {.
+	gaddr_by‹s
+ = {0x90, 0xe2, 0xba, 0x54, 0x67, 0xc9} },
+
+1410 {.
+	gaddr_by‹s
+ = {0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11} },
+
+1411 {.
+	gaddr_by‹s
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1412 {.
+	gaddr_by‹s
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1413 {.
+	gaddr_by‹s
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1414 {.
+	gaddr_by‹s
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1415 {.
+	gaddr_by‹s
+ = {0x90, 0xe2, 0xba, 0x54, 0x67, 0xc9} },
+
+1416 {.
+	gaddr_by‹s
+ = {0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11} },
+
+1417 {.
+	gaddr_by‹s
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1418 {.
+	gaddr_by‹s
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1419 {.
+	gaddr_by‹s
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1420 {.
+	gaddr_by‹s
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1421 {.
+	gaddr_by‹s
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1422 {.
+	gaddr_by‹s
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1423 {.
+	gaddr_by‹s
+ = {0x18, 0x19, 0x1a, 0x1b, 0xcd, 0xef} }
+
+1426 
+‘h”_addr
+ *
+	$g‘_lšk_hw_addr
+(
+ušt8_t
+ 
+out_pÜt
+)
+
+1428  &
+lšk_hw_addr
+[
+out_pÜt
+];
+
+1429 
+	}
+}
+
+1431 
+	$»que¡_¬p
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt32_t
+ 
+
+)
+
+1434 
+‘h”_hdr
+ *
+‘h_h
+;
+
+1435 
+¬p_hdr
+ *
+¬p_h
+;
+
+1437 
+l2_phy_š‹rçû_t
+ *
+lšk
+;
+
+1438 
+lšk
+ = 
+	`ifm_g‘_pÜt
+(
+pÜt_id
+);
+
+1439 
+¹e_mbuf
+ *
+¬p_pkt
+ = 
+lib_¬p_pkt
+;
+
+1441 ià(
+¬p_pkt
+ =ð
+NULL
+) {
+
+1442 ià(
+ARPICMP_DEBUG
+)
+
+1443 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1448 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+¬p_pkt
+, 
+‘h”_hdr
+ *);
+
+1450 
+	`‘h”_addr_cÝy
+(&
+brßdÿ¡_‘h”_addr
+, &
+‘h_h
+->
+d_addr
+);
+
+1451 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)
+
+1452 &
+lšk
+->
+maÿddr
+[0], &
+‘h_h
+->
+s_addr
+);
+
+1453 
+‘h_h
+->
+‘h”_ty³
+ = 
+	`CHECK_ENDIAN_16
+(
+ETHER_TYPE_ARP
+);
+
+1455 
+¬p_h
+ = (
+¬p_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_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
+ = (
+ušt32_t
+);
+
+1460 
+¬p_h
+->
+¬p_Ý
+ = 
+	`CHECK_ENDIAN_16
+(
+ARP_OP_REQUEST
+);
+
+1462 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)
+
+1463 &
+lšk
+->
+maÿddr
+[0], &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+);
+
+1464 ià(
+lšk
+ &&†šk->
+v4_li¡
+) {
+
+1465 
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+ =
+
+1466 (((
+v4li¡_t
+ *è(
+lšk
+->
+v4_li¡
+))->
+addr
+);
+
+1468 
+	`‘h”_addr_cÝy
+(&
+nuÎ_‘h”_addr
+, &
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+);
+
+1469 
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+ = 
+	`¹e_ýu_to_be_32
+(
+
+);
+
+1470 ià(
+ARPICMP_DEBUG
+)
+
+1471 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "arpip:%x‡rp sip :%x\n",
+
+1472 
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+,‡½_h->¬p_d©a.
+¬p_s
+);
+
+1474 
+¬p_pkt
+->
+pkt_Ën
+ = 42;
+
+1475 
+¬p_pkt
+->
+d©a_Ën
+ = 42;
+
+1477 ià(
+ARPICMP_DEBUG
+) {
+
+1478 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "Sending‡rp„equest\n");
+
+1479 
+	`´št_mbuf
+("TX", 
+pÜt_id
+, 
+¬p_pkt
+, 
+__LINE__
+);
+
+1481 ià(
+lšk
+)
+
+1482 
+lšk
+->
+	`Œªsm™_sšgË_pkt
+֚k, 
+¬p_pkt
+);
+
+1483 
+	}
+}
+
+1485 
+¹e_mbuf
+ *
+	$»que¡_echo
+(
+ušt32_t
+ 
+pÜt_id
+, ušt32_ˆ
+
+)
+
+1487 
+‘h”_hdr
+ *
+‘h_h
+;
+
+1488 
+v4_hdr
+ *
+_h
+;
+
+1489 
+icmp_hdr
+ *
+icmp_h
+;
+
+1490 
+l2_phy_š‹rçû_t
+ *
+pÜt
+ = 
+	`ifm_g‘_pÜt
+(
+pÜt_id
+);
+
+1492 
+¹e_mbuf
+ *
+icmp_pkt
+ = 
+lib_¬p_pkt
+;
+
+1493 ià(
+icmp_pkt
+ =ð
+NULL
+) {
+
+1494 ià(
+ARPICMP_DEBUG
+)
+
+1495 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1497  
+NULL
+;
+
+1500 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+icmp_pkt
+, 
+‘h”_hdr
+ *);
+
+1502 
+_h
+ = (
+v4_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+1503 
+icmp_h
+ = (
+icmp_hdr
+ *)((*)
+_h
+ + (
+v4_hdr
+));
+
+1505 
+_h
+->
+v”siÚ_ihl
+ = 
+IP_VHL_DEF
+;
+
+1506 
+_h
+->
+ty³_of_£rviû
+ = 0;
+
+1507 
+_h
+->
+tÙ®_Ëngth
+ =
+
+1508 
+	`¹e_ýu_to_be_16
+((
+v4_hdr
+è+ (
+icmp_hdr
+));
+
+1509 
+_h
+->
+·ck‘_id
+ = 0xaabb;
+
+1510 
+_h
+->
+äagm’t_off£t
+ = 0x0000;
+
+1511 
+_h
+->
+time_to_live
+ = 64;
+
+1512 
+_h
+->
+Ãxt_´Ùo_id
+ = 
+IPPROTO_ICMP
+;
+
+1513 ià(
+pÜt
+ &&…Üt->
+v4_li¡
+)
+
+1514 
+_h
+->
+¤c_addr
+ =
+
+1515 
+	`¹e_ýu_to_be_32
+(((
+v4li¡_t
+ *è
+pÜt
+->
+v4_li¡
+)->
+addr
+);
+
+1516 
+_h
+->
+d¡_addr
+ = 
+	`¹e_ýu_to_be_32
+(
+
+);
+
+1518 
+_h
+->
+hdr_checksum
+ = 0;
+
+1519 
+_h
+->
+hdr_checksum
+ = 
+	`¹e_v4_cksum
+(ip_h);
+
+1521 
+icmp_h
+->
+icmp_ty³
+ = 
+IP_ICMP_ECHO_REQUEST
+;
+
+1522 
+icmp_h
+->
+icmp_code
+ = 0;
+
+1523 
+icmp_h
+->
+icmp_id’t
+ = 0xdead;
+
+1524 
+icmp_h
+->
+icmp_£q_nb
+ = 0xbeef;
+
+1526 
+icmp_h
+->
+icmp_cksum
+ = ~
+	`¹e_¿w_cksum
+(icmp_h, (
+icmp_hdr
+));
+
+1528 
+icmp_pkt
+->
+pkt_Ën
+ =
+
+1529 (
+‘h”_hdr
+è+ (
+v4_hdr
+) +
+
+1530 (
+icmp_hdr
+);
+
+1531 
+icmp_pkt
+->
+d©a_Ën
+ = icmp_pkt->
+pkt_Ën
+;
+
+1533 
+	`´št_mbuf
+("TX", 0, 
+icmp_pkt
+, 
+__LINE__
+);
+
+1535  
+icmp_pkt
+;
+
+1536 
+	}
+}
+
+1543 
+¹e_mbuf
+ *
+	$£nd_icmp_de¡_uėchabË_msg
+(
+ušt32_t
+ 
+¤c_
+,
+
+1544 
+ušt32_t
+ 
+de¡_
+)
+
+1546 
+‘h”_hdr
+ *
+‘h_h
+;
+
+1547 
+v4_hdr
+ *
+_h
+;
+
+1548 
+icmp_hdr
+ *
+icmp_h
+;
+
+1549 
+¹e_mbuf
+ *
+icmp_pkt
+ = 
+lib_¬p_pkt
+;
+
+1551 ià(
+icmp_pkt
+ =ð
+NULL
+) {
+
+1552 ià(
+ARPICMP_DEBUG
+)
+
+1553 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1555  
+NULL
+;
+
+1558 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+icmp_pkt
+, 
+‘h”_hdr
+ *);
+
+1559 
+_h
+ = (
+v4_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+1560 
+icmp_h
+ = (
+icmp_hdr
+ *)((*)
+_h
+ + (
+v4_hdr
+));
+
+1562 
+_h
+->
+v”siÚ_ihl
+ = 
+IP_VHL_DEF
+;
+
+1563 
+_h
+->
+ty³_of_£rviû
+ = 0;
+
+1564 
+_h
+->
+tÙ®_Ëngth
+ =
+
+1565 
+	`¹e_ýu_to_be_16
+((
+v4_hdr
+è+ (
+icmp_hdr
+));
+
+1566 
+_h
+->
+·ck‘_id
+ = 0xaabb;
+
+1567 
+_h
+->
+äagm’t_off£t
+ = 0x0000;
+
+1568 
+_h
+->
+time_to_live
+ = 64;
+
+1569 
+_h
+->
+Ãxt_´Ùo_id
+ = 1;
+
+1571 
+_h
+->
+d¡_addr
+ = 
+	`¹e_bsw­32
+(
+de¡_
+);
+
+1572 
+_h
+->
+¤c_addr
+ = 
+	`¹e_bsw­32
+(
+¤c_
+);
+
+1574 
+_h
+->
+hdr_checksum
+ = 0;
+
+1575 
+_h
+->
+hdr_checksum
+ = 
+	`¹e_v4_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, (
+icmp_hdr
+));
+
+1582 
+icmp_pkt
+->
+pkt_Ën
+ = (
+‘h”_hdr
+è+ (
+v4_hdr
+) +
+
+1583 (
+icmp_hdr
+);
+
+1584 
+icmp_pkt
+->
+d©a_Ën
+ = icmp_pkt->
+pkt_Ën
+;
+
+1586  
+icmp_pkt
+;
+
+1587 
+	}
+}
+
+1590 
+	$´oûss_¬picmp_pkt_·r£
+(
+¹e_mbuf
+ **
+pkt
+, 
+ušt16_t
+ 
+pkt_num
+,
+
+1591 
+ušt64_t
+ 
+pkt_mask
+, 
+l2_phy_š‹rçû_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št64_t
+ 
+pkts_fÜ_´oûss
+ = 
+pkt_mask
+;
+
+1604 ; 
+pkts_fÜ_´oûss
+;) {
+
+1606 
+ušt8_t
+ 
+pos
+ = (ušt8_tè
+	`__bužtš_ùzÎ
+(
+pkts_fÜ_´oûss
+);
+
+1607 
+ušt64_t
+ 
+pkts_mask
+ = 1LLU << 
+pos
+;
+
+1608 
+pkts_fÜ_´oûss
+ &ð~
+pkts_mask
+;
+
+1609 
+	`´oûss_¬picmp_pkt
+(
+pkt
+[
+pos
+], 
+pÜt
+);
+
+1612 
+	}
+}
+
+1614 
+	$´oûss_¬picmp_pkt
+(
+¹e_mbuf
+ *
+pkt
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt
+)
+
+1616 
+ušt8_t
+ 
+š_pÜt_id
+ = 
+pkt
+->
+pÜt
+;
+
+1617 
+‘h”_hdr
+ *
+‘h_h
+;
+
+1618 
+¬p_hdr
+ *
+¬p_h
+;
+
+1619 
+v4_hdr
+ *
+_h
+;
+
+1620 
+icmp_hdr
+ *
+icmp_h
+;
+
+1622 
+ušt32_t
+ 
+cksum
+;
+
+1623 
+ušt32_t
+ 
+_addr
+;
+
+1625 
+ušt32_t
+ 
+»q_t
+;
+
+1627 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+pkt
+, 
+‘h”_hdr
+ *);
+
+1629 ià(
+‘h_h
+->
+‘h”_ty³
+ =ð
+	`¹e_ýu_to_be_16
+(
+ETHER_TYPE_ARP
+)) {
+
+1630 ià(
+ARPICMP_DEBUG
+)
+
+1631 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "%s,…ortid %u. Line %d\n\r",
+
+1632 
+__FUNCTION__
+, 
+pÜt
+->
+pmdid
+, 
+__LINE__
+);
+
+1633 
+¬p_h
+ =
+
+1634 (
+¬p_hdr
+ *)((*)
+‘h_h
+ +
+
+1635 (
+‘h”_hdr
+));
+
+1636 ià(
+	`CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_hrd
+è!ð
+ARP_HRD_ETHER
+)
+
+1637 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1639 ià(
+	`CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_´o
+è!ð
+ETHER_TYPE_IPv4
+)
+
+1640 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1642 ià(
+¬p_h
+->
+¬p_hÊ
+ != 6)
+
+1643 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1645 ià(
+¬p_h
+->
+¬p_¶n
+ != 4)
+
+1646 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1649 ià(
+pÜt
+->
+v4_li¡
+ =ð
+NULL
+) {
+
+1650 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1655 ià(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+ !=
+
+1656 ((
+v4li¡_t
+ *è(
+pÜt
+->
+v4_li¡
+))->
+addr
+) {
+
+1657 ià(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+ =ð¬p_h->¬p_d©a.
+¬p_s
+) {
+
+1658 
+	`pÝuϋ_¬p_’Œy
+(
+
+1659 (
+‘h”_addr
+ *)&
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+,
+
+1660 
+	`¹e_ýu_to_be_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+),
+
+1661 
+š_pÜt_id
+,
+
+1662 
+DYNAMIC_ARP
+);
+
+1665 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,"ARP„equested IP‡ddress mismatches interface IP - discarding\n");
+
+1670 ià(
+¬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 
+	`´št_mbuf
+("RX", 
+š_pÜt_id
+, 
+pkt
+,
+
+1684 
+__LINE__
+);
+
+1687 
+	`pÝuϋ_¬p_’Œy
+((
+‘h”_addr
+ *)
+
+1688 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+,
+
+1689 
+¹e_ýu_to_be_32
+
+
+1690 (
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+),
+
+1691 
+š_pÜt_id
+, 
+DYNAMIC_ARP
+);
+
+1694 
+»q_t
+ = 
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+;
+
+1695 
+	`‘h”_addr_cÝy
+(&
+‘h_h
+->
+s_addr
+, &‘h_h->
+d_addr
+);
+
+1696 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)&
+pÜt
+->
+maÿddr
+[0], &
+‘h_h
+->
+s_addr
+);
+
+1697 
+¬p_h
+->
+¬p_Ý
+ = 
+	`¹e_ýu_to_be_16
+(
+ARP_OP_REPLY
+);
+
+1698 
+	`‘h”_addr_cÝy
+(&
+‘h_h
+->
+s_addr
+,
+
+1699 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+);
+
+1700 
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+ =
+
+1701 
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+;
+
+1702 
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+ = 
+»q_t
+;
+
+1703 
+	`‘h”_addr_cÝy
+(&
+‘h_h
+->
+d_addr
+,
+
+1704 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+);
+
+1706 ià(
+ARPICMP_DEBUG
+)
+
+1707 
+	`´št_mbuf
+("TX ARP REPLY PKT",
+
+1708 
+pÜt
+->
+pmdid
+, 
+pkt
+, 
+__LINE__
+);
+
+1709 
+pÜt
+->
+	`Œªsm™_bulk_pkts
+ÕÜt, &
+pkt
+, 1);
+
+1710 ià(
+ARPICMP_DEBUG
+)
+
+1711 
+	`´št_mbuf
+("TX", 
+pÜt
+->
+pmdid
+, 
+pkt
+,
+
+1712 
+__LINE__
+);
+
+1715 } ià(
+¬p_h
+->
+¬p_Ý
+ ==
+
+1716 
+	`¹e_ýu_to_be_16
+(
+ARP_OP_REPLY
+)) {
+
+1717 ià(
+ARPICMP_DEBUG
+) {
+
+1718 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1720 
+	`´št_mbuf
+("RX", 
+pÜt
+->
+pmdid
+, 
+pkt
+,
+
+1721 
+__LINE__
+);
+
+1723 
+	`pÝuϋ_¬p_’Œy
+((
+‘h”_addr
+ *)
+
+1724 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+,
+
+1725 
+	`¹e_bsw­32
+(
+¬p_h
+->
+
+1726 
+¬p_d©a
+.
+¬p_s
+),
+
+1727 
+š_pÜt_id
+, 
+DYNAMIC_ARP
+);
+
+1731 ià(
+ARPICMP_DEBUG
+)
+
+1732 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1734 
+¬p_h
+->
+¬p_Ý
+);
+
+1738 
+	`¹e_pktmbuf_ä“
+(
+pkt
+);
+
+1740 
+_h
+ =
+
+1741 (
+v4_hdr
+ *)((*)
+‘h_h
+ +
+
+1742 (
+‘h”_hdr
+));
+
+1743 
+icmp_h
+ =
+
+1744 (
+icmp_hdr
+ *)((*)
+_h
+ + (
+v4_hdr
+));
+
+1746 ià(
+‘h_h
+->
+‘h”_ty³
+ =ð
+	`¹e_ýu_to_be_16
+(
+ETHER_TYPE_IPv4
+)) {
+
+1748 ià(
+_h
+->
+Ãxt_´Ùo_id
+ !ð
+IPPROTO_ICMP
+) {
+
+1749 ià(
+ARPICMP_DEBUG
+) {
+
+1750 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1753 } ià((
+_h
+->
+v”siÚ_ihl
+ & 0xf0è!ð
+IP_VERSION_4
+) {
+
+1754 ià(
+ARPICMP_DEBUG
+) {
+
+1755 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1758 } ià((
+_h
+->
+v”siÚ_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 
+	`´št_mbuf
+("RX", 
+š_pÜt_id
+,
+
+1768 
+pkt
+, 
+__LINE__
+);
+
+1770 
+_addr
+ = 
+_h
+->
+¤c_addr
+;
+
+1771 
+	`‘h”_addr_cÝy
+(&
+‘h_h
+->
+s_addr
+,
+
+1772 &
+‘h_h
+->
+d_addr
+);
+
+1773 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)
+
+1774 &
+pÜt
+->
+maÿddr
+[0],
+
+1775 &
+‘h_h
+->
+s_addr
+);
+
+1776 ià(
+ARPICMP_DEBUG
+)
+
+1777 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1779 
+__FUNCTION__
+,
+
+1780 
+pÜt
+->
+pmdid
+, 
+__LINE__
+);
+
+1782 ià(
+is_muÉiÿ¡_v4_addr
+
+
+1783 (
+_h
+->
+d¡_addr
+)) {
+
+1784 
+ušt32_t
+ 
+_¤c
+;
+
+1786 
+_¤c
+ =
+
+1787 
+	`¹e_be_to_ýu_32
+(
+_addr
+);
+
+1788 ià((
+_¤c
+ & 0x00000003) == 1)
+
+1789 
+_¤c
+ =
+
+1790 (
+_¤c
+ &
+
+1794 
+_¤c
+ =
+
+1795 (
+_¤c
+ &
+
+1798 
+_h
+->
+¤c_addr
+ =
+
+1799 
+	`¹e_ýu_to_be_32
+(
+_¤c
+);
+
+1800 
+_h
+->
+d¡_addr
+ = 
+_addr
+;
+
+1802 
+_h
+->
+hdr_checksum
+ = 0;
+
+1803 
+_h
+->
+hdr_checksum
+ =
+
+1804 ~
+	`¹e_¿w_cksum
+(
+_h
+,
+
+1806 
+v4_hdr
+));
+
+1808 ià(
+ARPICMP_DEBUG
+)
+
+1809 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1811 
+__FUNCTION__
+,
+
+1812 
+pÜt
+->
+pmdid
+,
+
+1813 
+__LINE__
+);
+
+1814 
+_h
+->
+¤c_addr
+ = ip_h->
+d¡_addr
+;
+
+1815 
+_h
+->
+d¡_addr
+ = 
+_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 
+´št_mbuf
+
+
+1833 
+š_pÜt_id
+, 
+pkt
+, 
+__LINE__
+);
+
+1834 
+pÜt
+->
+	`Œªsm™_bulk_pkts
+ÕÜt, &
+pkt
+, 1);
+
+1835 ià(
+ARPICMP_DEBUG
+)
+
+1836 
+	`´št_mbuf
+("TX", 
+pÜt
+->
+pmdid
+,
+
+1837 
+pkt
+, 
+__LINE__
+);
+
+1840 } ià(
+icmp_h
+->
+icmp_ty³
+ ==
+
+1841 
+IP_ICMP_ECHO_REPLY
+
+
+1842 && 
+icmp_h
+->
+icmp_code
+ == 0) {
+
+1843 ià(
+ARPICMP_DEBUG
+)
+
+1844 
+	`´št_mbuf
+("RX", 
+š_pÜt_id
+,
+
+1845 
+pkt
+, 
+__LINE__
+);
+
+1847 
+¬p_key_v4
+ 
+¬p_key
+;
+
+1848 
+¬p_key
+.
+pÜt_id
+ = 
+š_pÜt_id
+;
+
+1849 
+¬p_key
+.
+
+ =
+
+1850 
+	`¹e_bsw­32
+(
+_h
+->
+¤c_addr
+);
+
+1851 
+¬p_key
+.
+fžËr1
+ = 0;
+
+1852 
+¬p_key
+.
+fžËr2
+ = 0;
+
+1853 
+¬p_key
+.
+fžËr3
+ = 0;
+
+1855 
+¬p_’Œy_d©a
+ *
+¬p_’Œy
+ =
+
+1856 
+	`»Œ›ve_¬p_’Œy
+(
+¬p_key
+);
+
+1857 ià(
+¬p_’Œy
+ =ð
+NULL
+) {
+
+1858 ià(
+ARPICMP_DEBUG
+)
+
+1859 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+1861 
+¬p_key
+.
+
+,
+
+1862 
+¬p_key
+.
+pÜt_id
+);
+
+1865 
+¬p_’Œy
+->
+¡©us
+ = 
+COMPLETE
+;
+
+1870 
+	`¹e_pktmbuf_ä“
+(
+pkt
+);
+
+1872 
+	}
+}
+
+1885 
+	$my_š‘_±Ú_v6
+(
+af
+, cÚ¡ *
+¤c
+, *
+d¡
+)
+
+1887 
+af
+) {
+
+1888 
+AF_INET
+:
+
+1889  
+	`š‘_±Ú_v4
+(
+¤c
+, 
+d¡
+);
+
+1890 
+AF_INET6
+:
+
+1891  
+	`š‘_±Ú_v6
+(
+¤c
+, 
+d¡
+);
+
+1893 
+Ӽo
+ = 
+EAFNOSUPPORT
+;
+
+1897 
+	}
+}
+
+1909 
+	$š‘_±Ú_v4
+(cÚ¡ *
+¤c
+, *
+d¡
+)
+
+1911 cÚ¡ 
+dig™s
+[] = "0123456789";
+
+1912 
+§w_dig™
+, 
+où‘s
+, 
+ch
+;
+
+1913 
+tmp
+[
+INADDRSZ
+], *
+
+;
+
+1915 
+§w_dig™
+ = 0;
+
+1916 
+où‘s
+ = 0;
+
+1917 *(
+
+ = 
+tmp
+) = 0;
+
+1918 (
+ch
+ = *
+¤c
+++) != '\0') {
+
+1919 cÚ¡ *
+pch
+;
+
+1921 
+pch
+ = 
+	`¡rchr
+(
+dig™s
+, 
+ch
+);
+
+1922 ià(
+pch
+ !ð
+NULL
+) {
+
+1923 
+Ãw
+ = *
+
+ * 10 + (
+pch
+ - 
+dig™s
+);
+
+1925 ià(
+Ãw
+ > 255)
+
+1927 ià(!
+§w_dig™
+) {
+
+1928 ià(++
+où‘s
+ > 4)
+
+1930 
+§w_dig™
+ = 1;
+
+1932 *
+
+ = ()
+Ãw
+;
+
+1933 } ià(
+ch
+ =ð'.' && 
+§w_dig™
+) {
+
+1934 ià(
+où‘s
+ == 4)
+
+1936 *++
+
+ = 0;
+
+1937 
+§w_dig™
+ = 0;
+
+1941 ià(
+où‘s
+ < 4)
+
+1944 
+	`memýy
+(
+d¡
+, 
+tmp
+, 
+INADDRSZ
+);
+
+1946 
+	}
+}
+
+1961 
+	$š‘_±Ú_v6
+(cÚ¡ *
+¤c
+, *
+d¡
+)
+
+1963 cÚ¡ 
+xdig™s_l
+[] = "0123456789abcdef",
+
+1964 
+xdig™s_u
+[] = "0123456789ABCDEF";
+
+1965 
+tmp
+[
+IN6ADDRSZ
+], *
+
+ = 0, *
+’dp
+ = 0, *
+cÞÚp
+ = 0;
+
+1966 cÚ¡ *
+xdig™s
+ = 0, *
+cu¹ok
+ = 0;
+
+1967 
+ch
+ = 0, 
+§w_xdig™
+ = 0, 
+couÁ_xdig™
+ = 0;
+
+1968 
+v®
+ = 0;
+
+1969 
+dbloù_couÁ
+ = 0;
+
+1971 
+	`mem£t
+((
+
+ = 
+tmp
+), '\0', 
+IN6ADDRSZ
+);
+
+1972 
+’dp
+ = 
+
+ + 
+IN6ADDRSZ
+;
+
+1973 
+cÞÚp
+ = 
+NULL
+;
+
+1975 ià(*
+¤c
+ == ':')
+
+1976 ià(*++
+¤c
+ != ':')
+
+1978 
+cu¹ok
+ = 
+¤c
+;
+
+1979 
+§w_xdig™
+ = 
+couÁ_xdig™
+ = 0;
+
+1980 
+v®
+ = 0;
+
+1982 (
+ch
+ = *
+¤c
+++) != '\0') {
+
+1983 cÚ¡ *
+pch
+;
+
+1985 
+pch
+ = 
+	`¡rchr
+((
+xdig™s
+ = 
+xdig™s_l
+), 
+ch
+);
+
+1986 ià(
+pch
+ =ð
+NULL
+)
+
+1987 
+pch
+ = 
+	`¡rchr
+((
+xdig™s
+ = 
+xdig™s_u
+), 
+ch
+);
+
+1988 ià(
+pch
+ !ð
+NULL
+) {
+
+1989 ià(
+couÁ_xdig™
+ >= 4)
+
+1991 
+v®
+ <<= 4;
+
+1992 
+v®
+ |ð(
+pch
+ - 
+xdig™s
+);
+
+1993 ià(
+v®
+ > 0xffff)
+
+1995 
+§w_xdig™
+ = 1;
+
+1996 
+couÁ_xdig™
+++;
+
+1999 ià(
+ch
+ == ':') {
+
+2000 
+cu¹ok
+ = 
+¤c
+;
+
+2001 ià(!
+§w_xdig™
+) {
+
+2002 ià(
+cÞÚp
+)
+
+2004 
+cÞÚp
+ = 
+
+;
+
+2006 } ià(*
+¤c
+ == '\0') {
+
+2009 ià(
+
+ + (
+št16_t
+è> 
+’dp
+)
+
+2011 *
+
+++ = ()((
+v®
+ >> 8) & 0xff);
+
+2012 *
+
+++ = ()(
+v®
+ & 0xff);
+
+2013 
+§w_xdig™
+ = 0;
+
+2014 
+couÁ_xdig™
+ = 0;
+
+2015 
+v®
+ = 0;
+
+2016 
+dbloù_couÁ
+++;
+
+2019 ià(
+ch
+ =ð'.' && ((
+
+ + 
+INADDRSZ
+è<ð
+’dp
+) &&
+
+2020 
+	`š‘_±Ú_v4
+(
+cu¹ok
+, 
+
+) > 0) {
+
+2021 
+
+ +ð
+INADDRSZ
+;
+
+2022 
+§w_xdig™
+ = 0;
+
+2023 
+dbloù_couÁ
+ += 2;
+
+2028 ià(
+§w_xdig™
+) {
+
+2029 ià(
+
+ + (
+št16_t
+è> 
+’dp
+)
+
+2031 *
+
+++ = ()((
+v®
+ >> 8) & 0xff);
+
+2032 *
+
+++ = ()(
+v®
+ & 0xff);
+
+2033 
+dbloù_couÁ
+++;
+
+2035 ià(
+cÞÚp
+ !ð
+NULL
+) {
+
+2037 ià(
+dbloù_couÁ
+ == 8)
+
+2044 cÚ¡ 
+n
+ = 
+
+ - 
+cÞÚp
+;
+
+2045 
+i
+;
+
+2047 
+i
+ = 1; i <ð
+n
+; i++) {
+
+2048 
+’dp
+[-
+i
+] = 
+cÞÚp
+[
+n
+ - i];
+
+2049 
+cÞÚp
+[
+n
+ - 
+i
+] = 0;
+
+2051 
+
+ = 
+’dp
+;
+
+2053 ià(
+
+ !ð
+’dp
+)
+
+2055 
+	`memýy
+(
+d¡
+, 
+tmp
+, 
+IN6ADDRSZ
+);
+
+2057 
+	}
+}
+
+2059 
+	$¬p_·r£_¬gs
+(
+p–še_·¿ms
+ *
+·¿ms
+)
+
+2061 
+ušt32_t
+ 
+¬p_rou‹_tbl_´e£Á
+ = 0;
+
+2062 
+ušt32_t
+ 
+nd_rou‹_tbl_´e£Á
+ = 0;
+
+2063 
+ušt32_t
+ 
+pÜts_mac_li¡_´e£Á
+ = 0;
+
+2064 
+ušt32_t
+ 
+numArg
+;
+
+2065 
+ušt32_t
+ 
+n_vnf_th»ads_´e£Á
+ = 0;
+
+2067 
+ušt32_t
+ 
+pktq_š_´v_´e£Á
+ = 0;
+
+2068 
+ušt32_t
+ 
+´v_to_pub_m­_´e£Á
+ = 0;
+
+2070 
+ušt8_t
+ 
+n_´v_š_pÜt
+ = 0;
+
+2071 
+i
+;
+
+2072 
+i
+ = 0; i < 
+PIPELINE_MAX_PORT_IN
+; i++) {
+
+2073 
+š_pÜt_dœ_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‹_tbl_´e£Á
+);
+
+2080 
+	`RTE_SET_USED
+(
+¬p_rou‹_tbl_´e£Á
+);
+
+2081 
+numArg
+ = 0;‚umArg < 
+·¿ms
+->
+n_¬gs
+;‚umArg++) {
+
+2082 *
+¬g_Çme
+ = 
+·¿ms
+->
+¬gs_Çme
+[
+numArg
+];
+
+2083 *
+¬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_š_´v_´e£Á
+) {
+
+2093 
+´štf
+
+
+2097 
+pktq_š_´v_´e£Á
+ = 1;
+
+2099 
+rxpÜt
+ = 0, 
+j
+ = 0;
+
+2100 
+phy_pÜt_num
+[5];
+
+2101 *
+tok’
+ = 
+	`¡¹ok
+(
+¬g_v®ue
+, "RXQ");
+
+2102 
+tok’
+) {
+
+2103 
+j
+ = 0;
+
+2104 (
+j
+ < 4è&& (
+tok’
+[j] != '.')) {
+
+2105 
+phy_pÜt_num
+[
+j
+] = 
+tok’
+[j];
+
+2106 
+j
+++;
+
+2108 
+phy_pÜt_num
+[
+j
+] = '\0';
+
+2109 
+rxpÜt
+ = 
+	`©oi
+(
+phy_pÜt_num
+);
+
+2110 
+´v_š_pÜt_a
+[
+n_´v_š_pÜt
+++] = 
+rxpÜt
+;
+
+2111 ià(
+rxpÜt
+ < 0)
+
+2112 
+rxpÜt
+ = 0;
+
+2113 
+´štf
+
+
+2115 
+tok’
+, 
+phy_pÜt_num
+, 
+rxpÜt
+);
+
+2116 
+´v_š_pÜt_a
+[
+n_´v_š_pÜt
+++] = 
+rxpÜt
+;
+
+2117 if(
+rxpÜt
+ < 
+PIPELINE_MAX_PORT_IN
+)
+
+2118 
+š_pÜt_dœ_a
+[
+rxpÜt
+] = 1;
+
+2119 
+tok’
+ = 
+	`¡¹ok
+(
+NULL
+, "RXQ");
+
+2122 ià(
+n_´v_š_pÜt
+ == 0) {
+
+2123 
+´štf
+
+
+2131 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "prv_to_pub_map") == 0) {
+
+2132 ià(
+´v_to_pub_m­_´e£Á
+) {
+
+2133 
+´štf
+
+
+2137 
+´v_to_pub_m­_´e£Á
+ = 1;
+
+2139 
+rxpÜt
+ = 0, 
+txpÜt
+ = 0, 
+j
+ = 0, 
+k
+ = 0;
+
+2140 
+rx_phy_pÜt_num
+[5];
+
+2141 
+tx_phy_pÜt_num
+[5];
+
+2142 *
+tok’
+ = 
+	`¡¹ok
+(
+¬g_v®ue
+, "(");
+
+2143 
+tok’
+) {
+
+2144 
+j
+ = 0;
+
+2145 (
+j
+ < 4è&& (
+tok’
+[j] != ',')) {
+
+2146 
+rx_phy_pÜt_num
+[
+j
+] = 
+tok’
+[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 (
+k
+ < 4è&& (
+tok’
+[
+j
+ + k] != ')')) {
+
+2157 
+tx_phy_pÜt_num
+[
+k
+] = 
+tok’
+[
+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’
+, 
+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 (
+š_pÜt_dœ_a
+[
+rxpÜt
+] != 1)) {
+
+2174 
+´štf
+
+
+2176 
+rxpÜt
+, 
+txpÜt
+,
+
+2177 
+š_pÜt_dœ_a
+[
+rxpÜt
+]);
+
+2181 
+´v_to_pub_m­
+[
+rxpÜt
+] = 
+txpÜt
+;
+
+2182 
+pub_to_´v_m­
+[
+txpÜt
+] = 
+rxpÜt
+;
+
+2183 
+tok’
+ = 
+	`¡¹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 
+	`Œim
+(
+¬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št32_t
+ 
+i
+ = 0, 
+j
+ = 0, 
+k
+ = 0, 
+MAC_NUM_BYTES
+ = 6;
+
+2217 
+by‹SŒ
+[
+MAC_NUM_BYTES
+][3];
+
+2218 
+ušt32_t
+ 
+by‹
+[
+MAC_NUM_BYTES
+];
+
+2220 *
+tok’
+ = 
+	`¡¹ok
+(
+¬g_v®ue
+, " ");
+
+2221 
+tok’
+) {
+
+2222 
+k
+ = 0;
+
+2223 
+i
+ = 0; i < 
+MAC_NUM_BYTES
+; i++) {
+
+2224 
+j
+ = 0; j < 2; j++) {
+
+2225 
+by‹SŒ
+[
+i
+][
+j
+] = 
+tok’
+[
+k
+++];
+
+2227 
+by‹SŒ
+[
+i
+][
+j
+] = '\0';
+
+2228 
+k
+++;
+
+2231 
+i
+ = 0; i < 
+MAC_NUM_BYTES
+; i++) {
+
+2232 
+by‹
+[
+i
+] = 
+	`¡¹oul
+(
+by‹SŒ
+[i], 
+NULL
+, 16);
+
+2235 ià(
+ARPICMP_DEBUG
+) {
+
+2236 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "token: %s",
+
+2237 
+tok’
+);
+
+2238 
+i
+ = 0; i < 
+MAC_NUM_BYTES
+; i++)
+
+2239 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+2240 ", by‹[%u] %u", 
+i
+,
+
+2241 
+by‹
+[
+i
+]);
+
+2242 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "\n");
+
+2245 
+i
+ = 0; i < 
+MAC_NUM_BYTES
+; i++)
+
+2246 
+lšk_hw_addr
+
+
+2247 [
+lšk_hw_addr_¬¿y_idx
+].
+addr_by‹s
+
+
+2248 [
+i
+] = 
+by‹
+[i];
+
+2250 
+lšk_hw_addr_¬¿y_idx
+++;
+
+2251 
+tok’
+ = 
+	`¡¹ok
+(
+NULL
+, " ");
+
+2258 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "arp_route_tbl") == 0) {
+
+2259 
+¬p_rou‹_tbl_´e£Á
+ = 1;
+
+2261 
+ušt32_t
+ 
+de¡_
+ = 0, 
+mask
+ = 0, 
+tx_pÜt
+ = 0, 
+nh_
+ =
+
+2262 0, 
+i
+ = 0, 
+j
+ = 0, 
+k
+ = 0, 
+l
+ = 0;
+
+2263 
+ušt32_t
+ 
+¬p_rou‹_tbl_¡r_max_Ën
+ = 10;
+
+2264 
+de¡__¡r
+[
+¬p_rou‹_tbl_¡r_max_Ën
+];
+
+2265 
+mask_¡r
+[
+¬p_rou‹_tbl_¡r_max_Ën
+];
+
+2266 
+tx_pÜt_¡r
+[
+¬p_rou‹_tbl_¡r_max_Ën
+];
+
+2267 
+nh__¡r
+[
+¬p_rou‹_tbl_¡r_max_Ën
+];
+
+2268 *
+tok’
+ = 
+	`¡¹ok
+(
+¬g_v®ue
+, "(");
+
+2269 
+tok’
+) {
+
+2270 
+i
+ = 0;
+
+2271 (
+i
+ < (
+¬p_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2272 && (
+tok’
+[
+i
+] != ',')) {
+
+2273 
+de¡__¡r
+[
+i
+] = 
+tok’
+[i];
+
+2274 
+i
+++;
+
+2276 
+de¡__¡r
+[
+i
+] = '\0';
+
+2277 
+de¡_
+ = 
+	`¡¹oul
+(
+de¡__¡r
+, 
+NULL
+, 16);
+
+2279 
+i
+++;
+
+2280 
+j
+ = 0;
+
+2281 (
+j
+ < (
+¬p_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2282 && (
+tok’
+[
+i
+ + 
+j
+] != ',')) {
+
+2283 
+mask_¡r
+[
+j
+] = 
+tok’
+[
+i
+ + j];
+
+2284 
+j
+++;
+
+2286 
+mask_¡r
+[
+j
+] = '\0';
+
+2287 
+mask
+ = 
+	`¡¹oul
+(
+mask_¡r
+, 
+NULL
+, 16);
+
+2289 
+j
+++;
+
+2290 
+k
+ = 0;
+
+2291 (
+k
+ < (
+¬p_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2292 && (
+tok’
+[
+i
+ + 
+j
+ + 
+k
+] != ',')) {
+
+2293 
+tx_pÜt_¡r
+[
+k
+] = 
+tok’
+[
+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 (
+l
+ < (
+¬p_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2302 && (
+tok’
+[
+i
+ + 
+j
+ + 
+k
+ + 
+l
+] != ')')) {
+
+2303 
+nh__¡r
+[
+l
+] = 
+tok’
+[
+i
+ + 
+j
+ + 
+k
+ +†];
+
+2304 
+l
+++;
+
+2306 
+nh__¡r
+[
+l
+] = '\0';
+
+2307 
+nh_
+ = 
+	`¡¹oul
+(
+nh__¡r
+, 
+NULL
+, 16);
+
+2310 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "token: %s, "
+
+2315 
+tok’
+, 
+de¡__¡r
+, 
+de¡_
+,
+
+2316 
+mask_¡r
+, 
+mask
+, 
+tx_pÜt_¡r
+,
+
+2317 
+tx_pÜt
+, 
+nh__¡r
+, 
+nh_
+);
+
+2328 
+lib_¬p_rou‹_bË
+[
+¬p_rou‹_tbl_šdex
+].
+
+ =
+
+2329 
+de¡_
+;
+
+2330 
+lib_¬p_rou‹_bË
+[
+¬p_rou‹_tbl_šdex
+].
+mask
+ =
+
+2331 
+mask
+;
+
+2332 
+lib_¬p_rou‹_bË
+[
+¬p_rou‹_tbl_šdex
+].
+pÜt
+ =
+
+2333 
+tx_pÜt
+;
+
+2334 
+lib_¬p_rou‹_bË
+[
+¬p_rou‹_tbl_šdex
+].
+nh
+ =
+
+2335 
+nh_
+;
+
+2336 
+¬p_rou‹_tbl_šdex
+++;
+
+2337 
+tok’
+ = 
+	`¡¹ok
+(
+NULL
+, "(");
+
+2344 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "nd_route_tbl") == 0) {
+
+2345 
+nd_rou‹_tbl_´e£Á
+ = 1;
+
+2347 
+ušt8_t
+ 
+de¡_v6
+[16], 
+d•th
+ = 0, 
+tx_pÜt
+ =
+
+2348 0, 
+nh_v6
+[16], 
+i
+ = 0, 
+j
+ = 0, 
+k
+ = 0, 
+l
+ = 0;
+
+2349 
+ušt8_t
+ 
+nd_rou‹_tbl_¡r_max_Ën
+ = 128;
+
+2350 
+de¡_v6_¡r
+[
+nd_rou‹_tbl_¡r_max_Ën
+];
+
+2351 
+d•th_¡r
+[
+nd_rou‹_tbl_¡r_max_Ën
+];
+
+2352 
+tx_pÜt_¡r
+[
+nd_rou‹_tbl_¡r_max_Ën
+];
+
+2353 
+nh_v6_¡r
+[
+nd_rou‹_tbl_¡r_max_Ën
+];
+
+2354 *
+tok’
+ = 
+	`¡¹ok
+(
+¬g_v®ue
+, "(");
+
+2355 
+tok’
+) {
+
+2356 
+i
+ = 0;
+
+2357 (
+i
+ < (
+nd_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2358 && (
+tok’
+[
+i
+] != ',')) {
+
+2359 
+de¡_v6_¡r
+[
+i
+] = 
+tok’
+[i];
+
+2360 
+i
+++;
+
+2362 
+de¡_v6_¡r
+[
+i
+] = '\0';
+
+2363 
+	`my_š‘_±Ú_v6
+(
+AF_INET6
+, 
+de¡_v6_¡r
+,
+
+2364 &
+de¡_v6
+);
+
+2366 
+i
+++;
+
+2367 
+j
+ = 0;
+
+2368 (
+j
+ < (
+nd_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2369 && (
+tok’
+[
+i
+ + 
+j
+] != ',')) {
+
+2370 
+d•th_¡r
+[
+j
+] = 
+tok’
+[
+i
+ + j];
+
+2371 
+j
+++;
+
+2373 
+d•th_¡r
+[
+j
+] = '\0';
+
+2375 
+s
+;
+
+2376 
+s
+ = 0; 
+d•th_¡r
+[s] != '\0'; ++s)
+
+2377 
+d•th
+ = d•th * 10 + 
+d•th_¡r
+[
+s
+] - '0';
+
+2379 
+j
+++;
+
+2380 
+k
+ = 0;
+
+2381 (
+k
+ < (
+nd_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2382 && (
+tok’
+[
+i
+ + 
+j
+ + 
+k
+] != ',')) {
+
+2383 
+tx_pÜt_¡r
+[
+k
+] = 
+tok’
+[
+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 (
+l
+ < (
+nd_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2392 && (
+tok’
+[
+i
+ + 
+j
+ + 
+k
+ + 
+l
+] != ')')) {
+
+2393 
+nh_v6_¡r
+[
+l
+] = 
+tok’
+[
+i
+ + 
+j
+ + 
+k
+ +†];
+
+2394 
+l
+++;
+
+2396 
+nh_v6_¡r
+[
+l
+] = '\0';
+
+2397 
+	`my_š‘_±Ú_v6
+(
+AF_INET6
+, 
+nh_v6_¡r
+,
+
+2398 &
+nh_v6
+);
+
+2401 
+i
+ = 0; i < 16; i++) {
+
+2402 
+lib_nd_rou‹_bË
+
+
+2403 [
+nd_rou‹_tbl_šdex
+].
+v6
+[
+i
+] =
+
+2404 
+de¡_v6
+[
+i
+];
+
+2405 
+lib_nd_rou‹_bË
+
+
+2406 [
+nd_rou‹_tbl_šdex
+].
+nhv6
+[
+i
+] =
+
+2407 
+nh_v6
+[
+i
+];
+
+2409 
+lib_nd_rou‹_bË
+[
+nd_rou‹_tbl_šdex
+].
+d•th
+ =
+
+2410 
+d•th
+;
+
+2411 
+lib_nd_rou‹_bË
+[
+nd_rou‹_tbl_šdex
+].
+pÜt
+ =
+
+2412 
+tx_pÜt
+;
+
+2414 
+nd_rou‹_tbl_šdex
+++;
+
+2415 
+tok’
+ = 
+	`¡¹ok
+(
+NULL
+, "(");
+
+2434 
+	}
+}
+
+2436 
+	$lib_¬p_š™
+(
+p–še_·¿ms
+ *
+·¿ms
+,
+
+2437 
+__¹e_unu£d
+ 
+­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Þ_ü—‹
+("lib_¬p_mbuf_tx_poÞ", 
+NB_ARPICMP_MBUF
+, 32,
+
+2451 0, 
+RTE_MBUF_DEFAULT_BUF_SIZE
+,
+
+2452 
+	`¹e_sock‘_id
+());
+
+2454 ià(
+lib_¬p_pktmbuf_tx_poÞ
+ =ð
+NULL
+) {
+
+2455 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "ARP mbuf…ool 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†ib_arp_pkt‡lloc failed.\n");
+
+2465 
+¬p_hash_·¿ms
+.
+sock‘_id
+ = 
+	`¹e_sock‘_id
+();
+
+2466 
+¬p_hash_·¿ms
+.
+’Œ›s
+ = 
+MAX_NUM_ARP_ENTRIES
+;
+
+2467 
+¬p_hash_·¿ms
+.
+key_Ën
+ = (
+¬p_key_v4
+);
+
+2468 
+¬p_hash_hªdË
+ = 
+	`¹e_hash_ü—‹
+(&
+¬p_hash_·¿ms
+);
+
+2470 ià(
+¬p_hash_hªdË
+ =ð
+NULL
+) {
+
+2471 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+2473 
+¬p_hash_·¿ms
+.
+sock‘_id
+);
+
+2475 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "arp_hash_handle %p\n\n",
+
+2476 (*)
+¬p_hash_hªdË
+);
+
+2481 
+tim”_mempoÞ_¬p
+ = 
+	`¹e_mempoÞ_ü—‹
+("timer_mempool_arp",
+
+2482 
+tim”_objs_mempoÞ_couÁ
+,
+
+2483 (
+¹e_tim”
+),
+
+2485 
+NULL
+, NULL,
+
+2486 
+NULL
+, NULL, 
+	`¹e_sock‘_id
+(), 0);
+
+2487 ià(
+tim”_mempoÞ_¬p
+ =ð
+NULL
+) {
+
+2488 
+	`¹e_·nic
+("timer_mempool createƒrror\n");
+
+2490 
+	`¹e_tim”_subsy¡em_š™
+();
+
+2491 
+	`li¡_add_ty³
+(
+ETHER_TYPE_ARP
+, 
+´oûss_¬picmp_pkt_·r£
+);
+
+2494 
+nd_hash_·¿ms
+.
+sock‘_id
+ = 
+	`¹e_sock‘_id
+();
+
+2495 
+nd_hash_·¿ms
+.
+’Œ›s
+ = 
+MAX_NUM_ND_ENTRIES
+;
+
+2496 
+nd_hash_·¿ms
+.
+key_Ën
+ = (
+nd_key_v6
+);
+
+2497 
+nd_hash_hªdË
+ = 
+	`¹e_hash_ü—‹
+(&
+nd_hash_·¿ms
+);
+
+2498 ià(
+nd_hash_hªdË
+ =ð
+NULL
+) {
+
+2499 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+2501 
+nd_hash_·¿ms
+.
+sock‘_id
+);
+
+2503 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "nd_hash_handle %p\n\n",
+
+2504 (*)
+nd_hash_hªdË
+);
+
+2508 
+	}
+}
+
+2510 
+	$¬p_tim”_ÿÎback
+(
+¹e_tim”
+ *
+tim”
+, *
+¬g
+)
+
+2512 
+¬p_tim”_key
+ *
+»move_key
+ = (¬p_tim”_key *)
+¬g
+;
+
+2513 ià(
+ARPICMP_DEBUG
+)
+
+2514 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "ARP TIMER callback :ƒxpire :%d\n",
+
+2515 ()
+tim”
+->
+expœe
+);
+
+2516 ià(
+ARPICMP_DEBUG
+)
+
+2517 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+,
+
+2519 (
+»move_key
+->
+
+ >> 24),
+
+2520 ((
+»move_key
+->
+
+ & 0x00ff0000) >> 16),
+
+2521 ((
+»move_key
+->
+
+ & 0x0000ff00) >> 8),
+
+2522 ((
+»move_key
+->
+
+ & 0x000000ff)),„emove_key->
+pÜt_id
+);
+
+2523 
+	`»move_¬p_’Œy
+((
+ušt32_t
+è
+»move_key
+->
+
+,
+
+2524 (
+ušt8_t
+è
+»move_key
+->
+pÜt_id
+, 
+¬g
+);
+
+2526 
+	}
+}
+
+2528 
+	$nd_tim”_ÿÎback
+(
+¹e_tim”
+ *
+tim”
+, *
+¬g
+)
+
+2530 
+nd_tim”_key
+ *
+»move_key
+ = (nd_tim”_key *)
+¬g
+;
+
+2531 ià(
+ARPICMP_DEBUG
+)
+
+2532 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "ndime callback :ƒxpire :%d\n",
+
+2533 ()
+tim”
+->
+expœe
+);
+
+2534 
+	`»move_nd_’Œy_v6
+(
+»move_key
+->
+v6
+,„emove_key->
+pÜt_id
+);
+
+2536 
+	}
+}
+
+2538 
+	$ü—‹_¬p_bË
+()
+
+2541 
+i
+;
+
+2542 
+i
+ = 0; i < 
+MAX_ARP_DATA_ENTRY_TABLE
+; i++) {
+
+2543 
+	`pÝuϋ_¬p_’Œy
+((cÚ¡ 
+‘h”_addr
+ *)
+
+2544 &
+¬p_’Œy_d©a_bË
+[
+i
+].
+‘h_addr
+,
+
+2545 
+¬p_’Œy_d©a_bË
+[
+i
+].
+
+,
+
+2546 (
+ušt8_t
+è
+¬p_’Œy_d©a_bË
+[
+i
+].
+pÜt
+,
+
+2547 
+STATIC_ARP
+);
+
+2549 
+	`´št_¬p_bË
+();
+
+2551 
+	}
+}
+
+2553 
+	$ü—‹_nd_bË
+()
+
+2556 
+i
+;
+
+2557 
+i
+ = 0; i < 
+MAX_ND_DATA_ENTRY_TABLE
+; i++) {
+
+2558 
+	`pÝuϋ_nd_’Œy
+((cÚ¡ 
+‘h”_addr
+ *)
+
+2559 
+nd_’Œy_d©a_bË
+[
+i
+].
+‘h_addr
+,
+
+2560 
+nd_’Œy_d©a_bË
+[
+i
+].
+v6
+,
+
+2561 (
+ušt8_t
+è
+nd_’Œy_d©a_bË
+[
+i
+].
+pÜt
+,
+
+2562 
+STATIC_ND
+);
+
+2564 
+	`´št_nd_bË
+();
+
+2566 
+	}
+}
+
+2568 
+	$£nd_g¿tu™ous_¬p
+(
+l2_phy_š‹rçû_t
+ *
+pÜt
+)
+
+2570 
+‘h”_hdr
+ *
+‘h_h
+;
+
+2571 
+¬p_hdr
+ *
+¬p_h
+;
+
+2573 
+¹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 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+¬p_pkt
+, 
+‘h”_hdr
+ *);
+
+2590 
+	`‘h”_addr_cÝy
+(&
+brßdÿ¡_‘h”_addr
+, &
+‘h_h
+->
+d_addr
+);
+
+2591 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)
+
+2592 &
+pÜt
+->
+maÿddr
+[0], &
+‘h_h
+->
+s_addr
+);
+
+2593 
+‘h_h
+->
+‘h”_ty³
+ = 
+	`CHECK_ENDIAN_16
+(
+ETHER_TYPE_ARP
+);
+
+2595 
+¬p_h
+ = (
+¬p_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_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
+ = (
+ušt32_t
+);
+
+2600 
+¬p_h
+->
+¬p_Ý
+ = 
+	`CHECK_ENDIAN_16
+(
+ARP_OP_REQUEST
+);
+
+2602 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)
+
+2603 &
+pÜt
+->
+maÿddr
+[0], &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+);
+
+2604 ià(
+pÜt
+->
+v4_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
+ = (((
+v4li¡_t
+ *è(
+pÜt
+->
+v4_li¡
+))->
+addr
+);
+
+2611 
+	`‘h”_addr_cÝy
+(&
+nuÎ_‘h”_addr
+, &
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+);
+
+2613 
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+ = 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 
+	`´št_mbuf
+("TX", 
+pÜt
+->
+pmdid
+, 
+¬p_pkt
+, 
+__LINE__
+);
+
+2624 
+pÜt
+->
+	`Œªsm™_sšgË_pkt
+ÕÜt, 
+¬p_pkt
+);
+
+2625 
+	}
+}
+
+2627 
+	$£t_¬pdebug
+(
+æag
+)
+
+2629 ià(
+æag
+) {
+
+2630 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "Debugsurned on\n\r");
+
+2631 
+ARPICMP_DEBUG
+ = 1;
+
+2632 
+NDIPV6_DEBUG
+ = 1;
+
+2635 
+	`RTE_LOG
+(
+INFO
+, 
+LIBARP
+, "Debugsurned off\n\r");
+
+2636 
+ARPICMP_DEBUG
+ = 0;
+
+2637 
+NDIPV6_DEBUG
+ = 0;
+
+2639 
+	}
+}
+
+2641 
+	$£t_¬±imeout
+(
+ušt32_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:‡rp_timeout %u\n\r",
+
+2654 
+¬p_timeout
+);
+
+2655 
+	}
+}
+
+	@VIL/l2l3_stack/lib_arp.h
+
+17 #iâdeà
+__INCLUDE_LIB_ARP_H__
+
+
+18 
+	#__INCLUDE_LIB_ARP_H__
+
+
+	)
+
+20 
+	~<¹e_p–še.h
+>
+
+21 
+	~"¹e_‘h”.h
+"
+
+22 
+	~"l2_´Ùo.h
+"
+
+23 
+	~"­p.h
+"
+
+25 
+	#ND_IPV6_ADDR_SIZE
+ 16
+
+	)
+
+26 
+	#ND_IPV6_TIMER_EXPIRY
+ 300
+
+	)
+
+27 
+	#ARP_TIMER_EXPIRY
+ 1800
+
+	)
+
+28 
+	#TIMER_MILLISECOND
+ 1
+
+	)
+
+29 
+	#RTE_LOGTYPE_LIBARP
+ 
+RTE_LOGTYPE_USER1
+
+
+	)
+
+30 
+	#MAX_ND_RT_ENTRY
+ 16
+
+	)
+
+31 
+	#MAX_ARP_RT_ENTRY
+ 16
+
+	)
+
+37 
+	slib_¬p_rou‹_bË_’Œy
+ {
+
+38 
+ušt32_t
+ 
+	m
+;
+
+39 
+ušt32_t
+ 
+	mmask
+;
+
+40 
+ušt32_t
+ 
+	mpÜt
+;
+
+41 
+ušt32_t
+ 
+	mnh
+;
+
+48 
+	slib_nd_rou‹_bË_’Œy
+ {
+
+49 
+ušt8_t
+ 
+	mv6
+[16];
+
+50 
+ušt8_t
+ 
+	md•th
+;
+
+51 
+ušt32_t
+ 
+	mpÜt
+;
+
+52 
+ušt8_t
+ 
+	mnhv6
+[16];
+
+55 

+lib_nd_rou‹_bË_’Œy
+ 
+lib_nd_rou‹_bË
+[
+MAX_ND_RT_ENTRY
+];
+
+56 

+lib_¬p_rou‹_bË_’Œy
+ 
+lib_¬p_rou‹_bË
+[
+MAX_ARP_RT_ENTRY
+];
+
+59 
+	mARP_FOUND
+,
+
+60 
+	mARP_NOT_FOUND
+,
+
+61 
+	mNH_NOT_FOUND
+,
+
+64 
+	e¬p_key_ty³
+ {
+
+65 
+	mARP_IPV4
+,
+
+66 
+	mND_IPV6
+,
+
+69 
+	s¬p_key_v4
+ {
+
+70 
+ušt32_t
+ 
+	m
+;
+
+71 
+ušt8_t
+ 
+	mpÜt_id
+;
+
+72 
+ušt8_t
+ 
+	mfžËr1
+;
+
+73 
+ušt8_t
+ 
+	mfžËr2
+;
+
+74 
+ušt8_t
+ 
+	mfžËr3
+;
+
+80 
+	snd_key_v6
+ {
+
+81 
+ušt8_t
+ 
+	mv6
+[
+ND_IPV6_ADDR_SIZE
+];
+
+82 
+ušt8_t
+ 
+	mpÜt_id
+;
+
+83 
+ušt8_t
+ 
+	mfžËr1
+;
+
+84 
+ušt8_t
+ 
+	mfžËr2
+;
+
+85 
+ušt8_t
+ 
+	mfžËr3
+;
+
+91 
+	s¬p_key
+ {
+
+92 
+¬p_key_ty³
+ 
+	mty³
+;
+
+94 
+¬p_key_v4
+ 
+	mv4
+;
+
+95 } 
+	mkey
+;
+
+103 
+	snd_tim”_key
+ {
+
+104 
+ušt8_t
+ 
+	mv6
+[
+ND_IPV6_ADDR_SIZE
+];
+
+105 
+ušt8_t
+ 
+	mpÜt_id
+;
+
+106 } 
+	g__¹e_ÿche_®igÃd
+;
+
+112 
+	s¬p_tim”_key
+ {
+
+113 
+ušt32_t
+ 
+	m
+;
+
+114 
+ušt8_t
+ 
+	mpÜt_id
+;
+
+115 } 
+	g__¹e_ÿche_®igÃd
+;
+
+117 
+ušt32_t
+ 
+ARPICMP_DEBUG
+;
+
+119 
+	#COMPLETE
+ 1
+
+	)
+
+120 
+	#INCOMPLETE
+ 0
+
+	)
+
+122 
+ušt32_t
+ 
+NDIPV6_DEBUG
+;
+
+124 
+	#ICMPv6_COMPLETE
+ 1
+
+	)
+
+125 
+	#ICMPv6_INCOMPLETE
+ 0
+
+	)
+
+126 
+	#STATIC_ARP
+ 1
+
+	)
+
+127 
+	#DYNAMIC_ARP
+ 0
+
+	)
+
+128 
+	#STATIC_ND
+ 1
+
+	)
+
+129 
+	#DYNAMIC_ND
+ 0
+
+	)
+
+136 
+	s¬p_’Œy_d©a
+ {
+
+137 
+‘h”_addr
+ 
+	m‘h_addr
+;
+
+138 
+ušt32_t
+ 
+	m
+;
+
+139 
+ušt8_t
+ 
+	mpÜt
+;
+
+140 
+ušt8_t
+ 
+	m¡©us
+;
+
+141 
+ušt8_t
+ 
+	mmode
+;
+
+142 
+ušt8_t
+ 
+	m»Œy_couÁ
+;
+
+143 
+¹e_tim”
+ *
+	mtim”
+;
+
+144 
+¬p_tim”_key
+ *
+	mtim”_key
+;
+
+145 } 
+__©Œibu‹__
+ ((
+·cked
+));
+
+152 
+	sbË_¬p_’Œy_d©a
+ {
+
+153 
+ušt8_t
+ 
+	m‘h_addr
+[6];
+
+154 
+ušt8_t
+ 
+	mpÜt
+;
+
+155 
+ušt8_t
+ 
+	m¡©us
+;
+
+156 
+ušt32_t
+ 
+	m
+;
+
+157 } 
+__©Œibu‹__
+ ((
+·cked
+));
+
+164 
+	snd_’Œy_d©a
+ {
+
+165 
+‘h”_addr
+ 
+	m‘h_addr
+;
+
+166 
+ušt8_t
+ 
+	mpÜt
+;
+
+167 
+ušt8_t
+ 
+	m¡©us
+;
+
+168 
+ušt8_t
+ 
+	mmode
+;
+
+169 
+ušt8_t
+ 
+	mv6
+[
+ND_IPV6_ADDR_SIZE
+];
+
+170 
+¹e_tim”
+ *
+	mtim”
+;
+
+171 } 
+__©Œibu‹__
+ ((
+·cked
+));
+
+179 
+	sbË_nd_’Œy_d©a
+ {
+
+180 
+ušt8_t
+ 
+	m‘h_addr
+[6];
+
+181 
+ušt8_t
+ 
+	mpÜt
+;
+
+182 
+ušt8_t
+ 
+	m¡©us
+;
+
+183 
+ušt8_t
+ 
+	mv6
+[
+ND_IPV6_ADDR_SIZE
+];
+
+184 
+¹e_tim”
+ *
+	mtim”
+;
+
+185 } 
+__©Œibu‹__
+ ((
+·cked
+));
+
+201 
+g‘_de¡_mac_add»ss
+(cÚ¡ 
+ušt32_t
+ 
+addr
+, ušt32_ˆ*
+phy_pÜt
+,
+
+202 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt32_t
+ *
+nh
+);
+
+216 
+g‘_de¡_mac_addr_pÜt
+(cÚ¡ 
+ušt32_t
+ 
+addr
+,
+
+217 
+ušt32_t
+ *
+phy_pÜt
+, 
+‘h”_addr
+ *
+hw_addr
+);
+
+230 
+g‘_de¡_mac_addr
+(cÚ¡ 
+ušt32_t
+ 
+addr
+, ušt32_ˆ*
+phy_pÜt
+,
+
+231 
+‘h”_addr
+ *
+hw_addr
+);
+
+246 
+g‘_de¡_mac_add»ss_v6
+(
+ušt8_t
+ 
+v6addr
+[], 
+ušt32_t
+ *
+phy_pÜt
+,
+
+247 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt8_t
+ 
+nhv6
+[]);
+
+262 
+g‘_de¡_mac_add»ss_v6_pÜt
+(
+ušt8_t
+ 
+v6addr
+[], 
+ušt32_t
+ *
+phy_pÜt
+,
+
+263 
+‘h”_addr
+ *
+hw_addr
+,
+
+264 
+ušt8_t
+ 
+nhv6
+[]);
+
+272 
+‘h”_addr
+ *
+g‘_lšk_hw_addr
+(
+ušt8_t
+ 
+out_pÜt
+);
+
+279 
+´št_¬p_bË
+();
+
+286 
+´št_nd_bË
+();
+
+295 
+»move_¬p_’Œy
+(
+ušt32_t
+ 
+addr
+, 
+ušt8_t
+ 
+pÜtid
+, *
+¬g
+);
+
+305 
+»move_nd_’Œy_v6
+(
+ušt8_t
+ 
+v6addr
+[], ušt8_ˆ
+pÜtid
+);
+
+318 
+pÝuϋ_¬p_’Œy
+(cÚ¡ 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt32_t
+ 
+addr
+,
+
+319 
+ušt8_t
+ 
+pÜtid
+, ušt8_ˆ
+mode
+);
+
+333 
+pÝuϋ_nd_’Œy
+(cÚ¡ 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt8_t
+ 
+
+[],
+
+334 
+ušt8_t
+ 
+pÜtid
+, ušt8_ˆ
+mode
+);
+
+344 
+»que¡_¬p
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt32_t
+ 
+
+);
+
+353 
+¹e_mbuf
+ *
+»que¡_echo
+(
+ušt32_t
+ 
+pÜt_id
+, ušt32_ˆ
+
+);
+
+362 
+¹e_mbuf
+ *
+»que¡_icmpv6_echo
+(
+ušt8_t
+ 
+v6
+[], 
+l2_phy_š‹rçû_t
+ *
+pÜt
+);
+
+371 
+¹e_mbuf
+ *
+»que¡_nd
+(
+ušt8_t
+ 
+v6
+[], 
+l2_phy_š‹rçû_t
+ *
+pÜt
+);
+
+382 
+´oûss_¬picmp_pkt
+(
+¹e_mbuf
+ *
+pkt
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt
+);
+
+390 
+¬p_’Œy_d©a
+ *
+»Œ›ve_¬p_’Œy
+(cÚ¡ 
+¬p_key_v4
+ 
+¬p_key
+);
+
+399 
+nd_’Œy_d©a
+ *
+»Œ›ve_nd_’Œy
+(
+nd_key_v6
+ 
+nd_key
+);
+
+405 
+lib_¬p_š™
+(
+p–še_·¿ms
+ *
+·¿ms
+, 
+­p_·¿ms
+ *
+­p
+);
+
+407 
+£t_pÜt_to_lßdb_m­
+(
+ušt8_t
+ 
+p–še_num
+);
+
+412 
+ušt8_t
+ 
+g‘_pÜt_to_lßdb_m­
+(ušt8_ˆ
+phy_pÜt_id
+);
+
+414 
+£t_phy_špÜt_m­
+(
+ušt8_t
+ 
+p–še_num
+, ušt8_ˆ*
+m­
+);
+
+415 
+£t_phy_ouÜt_m­
+(
+ušt8_t
+ 
+p–še_num
+, ušt8_ˆ*
+m­
+);
+
+421 
+ušt8_t
+ 
+g‘_lßdb_ouÜt_id
+(ušt8_ˆ
+aùu®_phy_pÜt
+);
+
+422 
+ušt8_t
+ 
+g‘_vnf_£t_num
+(ušt8_ˆ
+p–še_num
+);
+
+424 
+p–šes_pÜt_šfo
+();
+
+425 
+p–šes_m­_šfo
+();
+
+434 
+¬p_tim”_ÿÎback
+(
+¹e_tim”
+ *, *
+¬g
+);
+
+443 
+nd_tim”_ÿÎback
+(
+¹e_tim”
+ *
+tim”
+, *
+¬g
+);
+
+449 
+ü—‹_¬p_bË
+();
+
+454 
+ü—‹_nd_bË
+();
+
+467 
+´oûss_¬picmp_pkt_·r£
+(
+¹e_mbuf
+ **
+pkt
+, 
+ušt16_t
+ 
+pkt_num
+,
+
+468 
+ušt64_t
+ 
+pkt_mask
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt
+);
+
+475 
+£nd_g¿tu™ous_¬p
+(
+l2_phy_š‹rçû_t
+ *
+pÜt
+);
+
+481 
+£t_¬pdebug
+(
+æag
+);
+
+487 
+£t_¬±imeout
+(
+ušt32_t
+ 
+timeout_v®
+);
+
+495 
+ušt32_t
+ 
+g‘_nh
+(uint32_t, uint32_t *);
+
+505 
+g‘_nh_v6
+(
+ušt8_t
+ 
+v6
+[], 
+ušt32_t
+ *
+pÜt
+, ušt8_ˆ
+nhv6
+[]);
+
+	@VIL/l2l3_stack/lib_icmpv6.c
+
+18 
+	~"lib_icmpv6.h
+"
+
+20 
+	$´št_pkt
+(
+ušt8_t
+ *
+rd
+)
+
+22 
+i
+ = 0, 
+j
+ = 0;
+
+24 
+	`´štf
+("Packet Contents:\n");
+
+26 
+i
+ = 0; i < 20; i++) {
+
+27 
+j
+ = 0; j < 20; j++)
+
+28 
+	`´štf
+("%02x ", 
+rd
+[(20 * 
+i
+è+ 
+j
+]);
+
+30 
+	`´štf
+("\n");
+
+32 
+	}
+}
+
+34 
+ušt16_t
+ 
+	$icmpv6_v6_nd_checksum
+(
+¹e_mbuf
+ *
+pkt
+)
+
+36 
+‘h”_hdr
+ *
+‘h_h
+;
+
+37 
+v6_hdr
+ *
+v6_h
+;
+
+38 
+icmpv6_hdr
+ *
+icmpv6_h
+;
+
+40 
+size_t
+ 
+tm¶’
+, 
+off£t
+;
+
+41 
+ušt8_t
+ *
+tmµack‘
+, *
+ack‘
+;
+
+43 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+pkt
+, 
+‘h”_hdr
+ *);
+
+44 
+v6_h
+ = (
+v6_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+45 
+icmpv6_h
+ =
+
+46 (
+icmpv6_hdr
+ *)((*)
+v6_h
+ + (
+v6_hdr
+));
+
+48 
+ušt32_t
+ 
+·ylßdËn
+ = 0x20;
+
+49 
+·ylßdËn
+ = 
+	`¹e_bsw­32
+(payloadlen);
+
+51 
+tm¶’
+ = 40 + (
+icmpv6_hdr
+è+ (
+icmpv6_nd_hdr
+);
+
+52 
+tm¶’
+ = 
+	`RTE_CACHE_LINE_ROUNDUP
+(tmplen);
+
+53 
+tmµack‘
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+tm¶’
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+54 
+ack‘
+ = 
+tmµack‘
+;
+
+56 
+off£t
+ = 16;
+
+57 
+	`memýy
+(
+ack‘
+, &
+v6_h
+->
+¤c_addr
+[0], 
+off£t
+);
+
+58 
+ack‘
+ +ð
+off£t
+;
+
+59 
+	`memýy
+(
+ack‘
+, &
+v6_h
+->
+d¡_addr
+[0], 
+off£t
+);
+
+60 
+ack‘
+ +ð
+off£t
+;
+
+61 *
+ack‘
+ = 0;
+
+62 
+ack‘
+++;
+
+63 *
+ack‘
+ = 0;
+
+64 
+ack‘
+++;
+
+65 *
+ack‘
+ = 0;
+
+66 
+ack‘
+++;
+
+67 
+	`memýy
+(
+ack‘
+, &
+v6_h
+->
+´Ùo
+, 1);
+
+68 
+ack‘
+++;
+
+69 
+	`memýy
+(
+ack‘
+, &
+·ylßdËn
+, 4);
+
+70 
+ack‘
+ += 4;
+
+71 
+	`memýy
+(
+ack‘
+, 
+icmpv6_h
+,
+
+72 (
+icmpv6_hdr
+è+ (
+icmpv6_nd_hdr
+));
+
+74 ià(
+ARPICMP_DEBUG
+)
+
+75 
+	`´št_pkt
+(
+tmµack‘
+);
+
+77  
+	`¹e_¿w_cksum
+(
+tmµack‘
+, 
+tm¶’
+);
+
+78 
+	}
+}
+
+80 
+ušt16_t
+ 
+	$icmpv6_v6_echo_checksum
+(
+¹e_mbuf
+ *
+pkt
+)
+
+82 
+‘h”_hdr
+ *
+‘h_h
+;
+
+83 
+v6_hdr
+ *
+v6_h
+;
+
+84 
+icmpv6_hdr
+ *
+icmpv6_h
+;
+
+86 
+size_t
+ 
+tm¶’
+, 
+off£t
+;
+
+87 
+ušt8_t
+ *
+tmµack‘
+, *
+ack‘
+;
+
+89 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+pkt
+, 
+‘h”_hdr
+ *);
+
+90 
+v6_h
+ = (
+v6_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+91 
+icmpv6_h
+ =
+
+92 (
+icmpv6_hdr
+ *)((*)
+v6_h
+ + (
+v6_hdr
+));
+
+94 
+ušt32_t
+ 
+·ylßdËn
+ = 
+	`¹e_bsw­16
+(
+v6_h
+->
+·ylßd_Ën
+);
+
+95 
+ušt32_t
+ 
+·ylßdËn_sw­
+ = 
+	`¹e_bsw­32
+(
+·ylßdËn
+);
+
+97 ià(
+ARPICMP_DEBUG
+)
+
+98 
+	`´štf
+("%s:…aylßdËn: %u\n", 
+__FUNCTION__
+, 
+·ylßdËn
+);
+
+100 
+tm¶’
+ = 40 + 
+·ylßdËn
+;
+
+101 
+tm¶’
+ = 
+	`RTE_CACHE_LINE_ROUNDUP
+(tmplen);
+
+102 
+tmµack‘
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+tm¶’
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+103 
+ack‘
+ = 
+tmµack‘
+;
+
+105 
+off£t
+ = 16;
+
+106 
+	`memýy
+(
+ack‘
+, &
+v6_h
+->
+¤c_addr
+[0], 
+off£t
+);
+
+107 
+ack‘
+ +ð
+off£t
+;
+
+108 
+	`memýy
+(
+ack‘
+, &
+v6_h
+->
+d¡_addr
+[0], 
+off£t
+);
+
+109 
+ack‘
+ +ð
+off£t
+;
+
+110 *
+ack‘
+ = 0;
+
+111 
+ack‘
+++;
+
+112 *
+ack‘
+ = 0;
+
+113 
+ack‘
+++;
+
+114 *
+ack‘
+ = 0;
+
+115 
+ack‘
+++;
+
+116 
+	`memýy
+(
+ack‘
+, &
+v6_h
+->
+´Ùo
+, 1);
+
+117 
+ack‘
+++;
+
+118 
+	`memýy
+(
+ack‘
+, &
+·ylßdËn_sw­
+, 4);
+
+119 
+ack‘
+ += 4;
+
+120 
+	`memýy
+(
+ack‘
+, 
+icmpv6_h
+, 
+·ylßdËn
+);
+
+122 ià(
+ARPICMP_DEBUG
+)
+
+123 
+	`´št_pkt
+(
+tmµack‘
+);
+
+125  
+	`¹e_¿w_cksum
+(
+tmµack‘
+, 
+tm¶’
+);
+
+126 
+	}
+}
+
+128 
+	$´oûss_icmpv6_pkt
+(
+¹e_mbuf
+ *
+pkt
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt
+)
+
+131 
+‘h”_hdr
+ *
+‘h_h
+;
+
+132 
+v6_hdr
+ *
+v6_h
+;
+
+133 
+icmpv6_hdr
+ *
+icmpv6_h
+;
+
+134 
+icmpv6_nd_hdr
+ *
+icmpv6_nd_h
+;
+
+135 
+ušt8_t
+ 
+v6_addr
+[16];
+
+136 
+ušt8_t
+ 
+i
+ = 0;
+
+137 
+ušt8_t
+ 
+»q_tv6
+[16];
+
+140 ià(
+pÜt
+ =ð
+NULL
+) {
+
+141 
+	`´štf
+("port is NULL");
+
+143 } ià(
+pÜt
+->
+v6_li¡
+ =ð
+NULL
+) {
+
+144 
+	`´štf
+("IPV6‡ddress‚ot configured on†ink\n");
+
+148 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+pkt
+, 
+‘h”_hdr
+ *);
+
+149 
+v6_h
+ = (
+v6_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+150 
+icmpv6_h
+ =
+
+151 (
+icmpv6_hdr
+ *)((*)
+v6_h
+ + (
+v6_hdr
+));
+
+153 ià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_ECHO_REQUEST
+)
+
+154 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+155 
+i
+ = 0; i < 16; i++) {
+
+156 
+v6_addr
+[
+i
+] = 
+v6_h
+->
+¤c_addr
+[i];
+
+159 
+	`‘h”_addr_cÝy
+(&
+‘h_h
+->
+s_addr
+, &‘h_h->
+d_addr
+);
+
+160 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)&
+pÜt
+->
+maÿddr
+[0],
+
+161 &
+‘h_h
+->
+s_addr
+);
+
+163 
+i
+ = 0; i < 16; i++)
+
+164 
+v6_h
+->
+¤c_addr
+[
+i
+] = ipv6_h->
+d¡_addr
+[i];
+
+165 
+i
+ = 0; i < 16; i++)
+
+166 
+v6_h
+->
+d¡_addr
+[
+i
+] = 
+v6_addr
+[i];
+
+168 
+icmpv6_h
+->
+icmpv6_ty³
+ = 
+ICMPV6_ECHO_REPLY
+;
+
+169 
+icmpv6_h
+->
+icmpv6_cksum
+ = 0;
+
+170 
+icmpv6_h
+->
+icmpv6_cksum
+ = ~
+	`icmpv6_v6_echo_checksum
+(
+pkt
+);
+
+171 
+pÜt
+->
+	`Œªsm™_bulk_pkts
+ÕÜt, &
+pkt
+, 1);
+
+174 } ià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_ECHO_REPLY
+)
+
+175 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+176 
+nd_key_v6
+ 
+nd_key
+;
+
+177 
+nd_key
+.
+pÜt_id
+ = 
+pÜt
+->
+pmdid
+;
+
+178 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+179 
+nd_key
+.
+v6
+[
+i
+] = 
+v6_h
+->
+¤c_addr
+[i];
+
+182 
+nd_key
+.
+fžËr1
+ = 0;
+
+183 
+nd_key
+.
+fžËr2
+ = 0;
+
+184 
+nd_key
+.
+fžËr3
+ = 0;
+
+187 
+nd_’Œy_d©a
+ *
+Ãw_nd_d©a
+ = 
+	`»Œ›ve_nd_’Œy
+(
+nd_key
+);
+
+188 ià(
+Ãw_nd_d©a
+ =ð
+NULL
+) {
+
+189 
+´štf
+
+
+191 
+nd_key
+.
+pÜt_id
+);
+
+192 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+193 
+	`´štf
+("%02X%02X ", 
+nd_key
+.
+v6
+[
+i
+],
+
+194 
+nd_key
+.
+v6
+[
+i
+ + 1]);
+
+199 
+Ãw_nd_d©a
+->
+¡©us
+ = 
+COMPLETE
+;
+
+200 } ià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_NEIGHBOR_SOLICITATION
+)
+
+201 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+203 
+icmpv6_nd_h
+ =
+
+204 (
+icmpv6_nd_hdr
+ *)((*)
+icmpv6_h
+ +
+
+205 (
+icmpv6_hdr
+));
+
+206 
+‘h”_addr
+ *
+¤c_hw_addr
+ = &
+‘h_h
+->
+s_addr
+;
+
+207 
+ušt8_t
+ 
+¤c_v6
+[16], 
+d¡_v6
+[16];
+
+208 
+ušt16_t
+ 
+muÉi_addr
+;
+
+210 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+211 
+¤c_v6
+[
+i
+] = 
+v6_h
+->
+¤c_addr
+[i];
+
+212 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+213 
+d¡_v6
+[
+i
+] = 
+v6_h
+->
+d¡_addr
+[i];
+
+215 
+muÉi_addr
+ = 
+d¡_v6
+[0];
+
+218 ià((
+IPV6_MULTICAST
+ & ((
+muÉi_addr
+ << 8è| 
+d¡_v6
+[1]))
+
+219 || !
+	`memcmp
+(&
+pÜt
+->
+maÿddr
+[0], &
+‘h_h
+->
+d_addr
+, 6)) {
+
+220 
+	`pÝuϋ_nd_’Œy
+(
+¤c_hw_addr
+, 
+¤c_v6
+, 
+pÜt
+->
+pmdid
+,
+
+221 
+DYNAMIC_ND
+);
+
+224 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+225 
+»q_tv6
+[
+i
+] = 
+icmpv6_nd_h
+->
+rg‘_v6
+[i];
+
+227 ià(!
+memcmp
+
+
+228 (&
+»q_tv6
+[0],
+
+229 &((
+v6li¡_t
+ *è
+pÜt
+->
+v6_li¡
+)->
+addr
+[0],
+
+232 
+	`‘h”_addr_cÝy
+(&
+‘h_h
+->
+s_addr
+, &‘h_h->
+d_addr
+);
+
+233 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)&
+pÜt
+->
+
+234 
+maÿddr
+[0], &
+‘h_h
+->
+s_addr
+);
+
+237 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+238 
+v6_h
+->
+d¡_addr
+[
+i
+] =
+
+239 
+v6_h
+->
+¤c_addr
+[
+i
+];
+
+240 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+241 
+v6_h
+->
+¤c_addr
+[
+i
+] = 
+»q_tv6
+[i];
+
+242 
+icmpv6_h
+->
+icmpv6_ty³
+ =
+
+243 
+ICMPV6_NEIGHBOR_ADVERTISEMENT
+;
+
+244 
+icmpv6_nd_h
+->
+ty³
+ = 
+e_T¬g‘_Lšk_Lay”_Add»ss
+;
+
+245 
+icmpv6_nd_h
+->
+Ëngth
+ = 1;
+
+246 
+	`memýy
+(&
+icmpv6_nd_h
+->
+lšk_Ïy”_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_v6_nd_checksum
+(
+pkt
+);
+
+257 
+pÜt
+->
+	`Œªsm™_bulk_pkts
+ÕÜt, &
+pkt
+, 1);
+
+259 } ià(
+ARPICMP_DEBUG
+) {
+
+260 
+´štf
+
+
+266 ià(
+ARPICMP_DEBUG
+) {
+
+267 
+´štf
+
+
+272 } ià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_NEIGHBOR_ADVERTISEMENT
+)
+
+273 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+274 
+‘h”_addr
+ *
+¤c_hw_addr
+ = &
+‘h_h
+->
+s_addr
+;
+
+275 
+ušt8_t
+ 
+v6
+[16];
+
+276 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+277 
+v6
+[
+i
+] = 
+v6_h
+->
+¤c_addr
+[i];
+
+280 
+	`pÝuϋ_nd_’Œy
+(
+¤c_hw_addr
+, 
+v6
+, 
+pÜt
+->
+pmdid
+, 
+DYNAMIC_ND
+);
+
+282 ià(
+ARPICMP_DEBUG
+) {
+
+283 
+	`´štf
+("ICMPv6 Type %d Not Supported yet !!!\n",
+
+284 
+icmpv6_h
+->
+icmpv6_ty³
+);
+
+288 
+	`¹e_pktmbuf_ä“
+(
+pkt
+);
+
+289 
+	}
+}
+
+291 
+¹e_mbuf
+ *
+	$»que¡_icmpv6_echo
+(
+ušt8_t
+ 
+v6
+[], 
+l2_phy_š‹rçû_t
+ *
+pÜt
+)
+
+293 
+‘h”_hdr
+ *
+‘h_h
+;
+
+294 
+v6_hdr
+ *
+v6_h
+;
+
+295 
+icmpv6_hdr
+ *
+icmpv6_h
+;
+
+296 
+icmpv6_šfo_hdr
+ *
+icmpv6_šfo_h
+;
+
+297 
+i
+;
+
+298 
+ušt8_t
+ *
+icmp_d©a
+;
+
+300 
+¹e_mbuf
+ *
+icmpv6_pkt
+ = 
+lib_icmpv6_pkt
+;
+
+301 ià(
+icmpv6_pkt
+ =ð
+NULL
+) {
+
+302 ià(
+ARPICMP_DEBUG
+)
+
+303 
+	`´štf
+("Error‡llocating icmpv6_pkt„te_mbuf\n");
+
+304  
+NULL
+;
+
+307 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+icmpv6_pkt
+, 
+‘h”_hdr
+ *);
+
+309 
+v6_h
+ = (
+v6_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+310 
+icmpv6_h
+ =
+
+311 (
+icmpv6_hdr
+ *)((*)
+v6_h
+ + (
+v6_hdr
+));
+
+312 
+icmpv6_šfo_h
+ =
+
+313 (
+icmpv6_šfo_hdr
+ *)((*)
+icmpv6_h
+ +
+
+314 (
+icmpv6_hdr
+));
+
+316 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)&
+pÜt
+->
+maÿddr
+[0], &
+‘h_h
+->
+s_addr
+);
+
+317 
+‘h_h
+->
+‘h”_ty³
+ = 
+	`¹e_bsw­16
+(0x86dd);
+
+318 
+i
+ = 0; i < 6; i++) {
+
+319 
+‘h_h
+->
+d_addr
+.
+addr_by‹s
+[
+i
+] = 0;
+
+322 
+v6_h
+->
+vtc_æow
+ = 
+	`¹e_bsw­32
+(0x60000000);
+
+323 
+v6_h
+->
+·ylßd_Ën
+ = 
+	`¹e_bsw­16
+(64);
+
+324 
+v6_h
+->
+´Ùo
+ = 58;
+
+325 
+v6_h
+->
+hÝ_lim™s
+ = 64;
+
+327 
+i
+ = 0; i < 16; i++) {
+
+328 
+v6_h
+->
+¤c_addr
+[
+i
+] = 0x0;
+
+329 
+v6_h
+->
+d¡_addr
+[
+i
+] = 
+v6
+[i];
+
+332 
+icmpv6_h
+->
+icmpv6_ty³
+ = 
+ICMPV6_ECHO_REQUEST
+;
+
+333 
+icmpv6_h
+->
+icmpv6_code
+ = 0;
+
+334 
+icmpv6_šfo_h
+->
+icmpv6_id’t
+ = 
+	`¹e_bsw­16
+(0x5151);
+
+335 
+icmpv6_šfo_h
+->
+icmpv6_£q_nb
+ = 
+	`¹e_bsw­16
+(0x1);
+
+337 
+icmp_d©a
+ = (
+ušt8_t
+ *è
+icmpv6_h
+ + 8;
+
+338 
+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_v6_echo_checksum
+(
+icmpv6_pkt
+);
+
+345 
+icmpv6_pkt
+->
+pkt_Ën
+ =
+
+346 (
+‘h”_hdr
+è+ (
+v6_hdr
+) + 64;
+
+347 
+icmpv6_pkt
+->
+d©a_Ën
+ = icmpv6_pkt->
+pkt_Ën
+;
+
+349  
+icmpv6_pkt
+;
+
+350 
+	}
+}
+
+352 
+¹e_mbuf
+ *
+	$»que¡_nd
+(
+ušt8_t
+ 
+v6
+[], 
+l2_phy_š‹rçû_t
+ *
+pÜt
+)
+
+354 
+‘h”_hdr
+ *
+‘h_h
+;
+
+355 
+v6_hdr
+ *
+v6_h
+;
+
+356 
+icmpv6_hdr
+ *
+icmpv6_h
+;
+
+357 
+icmpv6_nd_hdr
+ *
+icmpv6_nd_h
+;
+
+358 
+i
+;
+
+360 
+¹e_mbuf
+ *
+icmpv6_pkt
+ = 
+lib_icmpv6_pkt
+;
+
+361 ià(
+icmpv6_pkt
+ =ð
+NULL
+) {
+
+362 ià(
+ARPICMP_DEBUG
+)
+
+363 
+	`´štf
+("Error‡llocating icmpv6_pkt„te_mbuf\n");
+
+364  
+NULL
+;
+
+367 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+icmpv6_pkt
+, 
+‘h”_hdr
+ *);
+
+369 
+v6_h
+ = (
+v6_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+370 
+icmpv6_h
+ =
+
+371 (
+icmpv6_hdr
+ *)((*)
+v6_h
+ + (
+v6_hdr
+));
+
+372 
+icmpv6_nd_h
+ =
+
+373 (
+icmpv6_nd_hdr
+ *)((*)
+icmpv6_h
+ +
+
+374 (
+icmpv6_hdr
+));
+
+376 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)&
+pÜt
+->
+maÿddr
+[0], &
+‘h_h
+->
+s_addr
+);
+
+377 
+‘h_h
+->
+‘h”_ty³
+ = 
+	`¹e_bsw­16
+(0x86dd);
+
+378 
+i
+ = 0; i < 6; i++) {
+
+379 
+‘h_h
+->
+d_addr
+.
+addr_by‹s
+[
+i
+] = 0;
+
+382 
+v6_h
+->
+vtc_æow
+ = 0x60000000;
+
+383 
+v6_h
+->
+·ylßd_Ën
+ = 
+	`¹e_bsw­16
+(32);
+
+384 
+v6_h
+->
+´Ùo
+ = 58;
+
+385 
+v6_h
+->
+hÝ_lim™s
+ = 64;
+
+387 
+i
+ = 0; i < 16; i++) {
+
+388 
+v6_h
+->
+¤c_addr
+[
+i
+] = 0x0;
+
+389 
+v6_h
+->
+d¡_addr
+[
+i
+] = 
+v6
+[i];
+
+392 
+icmpv6_h
+->
+icmpv6_ty³
+ = 
+ICMPV6_NEIGHBOR_SOLICITATION
+;
+
+393 
+icmpv6_h
+->
+icmpv6_code
+ = 0;
+
+395 
+icmpv6_nd_h
+->
+icmpv6_ȣrved
+ = 0x0;
+
+396 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+397 
+icmpv6_nd_h
+->
+rg‘_v6
+[
+i
+] = 
+v6
+[i];
+
+398 
+icmpv6_nd_h
+->
+ty³
+ = 
+e_Sourû_Lšk_Lay”_Add»ss
+;
+
+399 
+icmpv6_nd_h
+->
+Ëngth
+ = 1;
+
+400 
+	`memýy
+(&
+icmpv6_nd_h
+->
+lšk_Ïy”_addr
+[0], &
+pÜt
+->
+maÿddr
+[0], 6);
+
+402 
+icmpv6_h
+->
+icmpv6_cksum
+ = 0;
+
+403 
+icmpv6_h
+->
+icmpv6_cksum
+ = ~
+	`icmpv6_v6_nd_checksum
+(
+icmpv6_pkt
+);
+
+405 
+icmpv6_pkt
+->
+pkt_Ën
+ =
+
+406 (
+‘h”_hdr
+è+ (
+v6_hdr
+) + 32;
+
+407 
+icmpv6_pkt
+->
+d©a_Ën
+ = icmpv6_pkt->
+pkt_Ën
+;
+
+409  
+icmpv6_pkt
+;
+
+410 
+	}
+}
+
+	@VIL/l2l3_stack/lib_icmpv6.h
+
+17 
+	~<¡dio.h
+>
+
+18 
+	~<¡dlib.h
+>
+
+19 
+	~<¡dšt.h
+>
+
+20 
+	~<¡ršg.h
+>
+
+21 
+	~<uni¡d.h
+>
+
+22 
+	~<¹e_commÚ.h
+>
+
+23 
+	~<¹e_m®loc.h
+>
+
+24 
+	~<¹e_.h
+>
+
+25 
+	~<¹e_by‹Üd”.h
+>
+
+26 
+	~<¹e_bË_Ím.h
+>
+
+27 
+	~<¹e_bË_hash.h
+>
+
+28 
+	~<¹e_p–še.h
+>
+
+29 
+	~<¹e_¬p.h
+>
+
+30 
+	~<¹e_icmp.h
+>
+
+31 
+	~<¹e_hash.h
+>
+
+32 
+	~<¹e_jhash.h
+>
+
+33 
+	~<¹e_cyþes.h
+>
+
+34 
+	~"lib_¬p.h
+"
+
+35 
+	~<¹e_p–še.h
+>
+
+36 
+	~"¹e_‘h”.h
+"
+
+42 
+	sicmpv6_hdr
+ {
+
+43 
+ušt8_t
+ 
+	micmpv6_ty³
+;
+
+44 
+ušt8_t
+ 
+	micmpv6_code
+;
+
+45 
+ušt16_t
+ 
+	micmpv6_cksum
+;
+
+46 } 
+__©Œibu‹__
+ ((
+__·cked__
+));
+
+51 
+	sicmpv6_šfo_hdr
+ {
+
+52 
+ušt16_t
+ 
+	micmpv6_id’t
+;
+
+53 
+ušt16_t
+ 
+	micmpv6_£q_nb
+;
+
+54 } 
+__©Œibu‹__
+ ((
+__·cked__
+));
+
+59 
+	sicmpv6_nd_hdr
+ {
+
+61 
+ušt32_t
+ 
+	micmpv6_ȣrved
+;
+
+63 
+ušt8_t
+ 
+	mrg‘_v6
+[16];
+
+64 
+ušt8_t
+ 
+	mty³
+;
+
+65 
+ušt8_t
+ 
+	mËngth
+;
+
+66 
+ušt8_t
+ 
+	mlšk_Ïy”_addr
+[6];
+
+67 } 
+__©Œibu‹__
+ ((
+__·cked__
+));
+
+70 
+	#ICMPV6_PROTOCOL_ID
+ 58
+
+	)
+
+71 
+	#ICMPV6_ECHO_REQUEST
+ 0x0080
+
+	)
+
+72 
+	#ICMPV6_ECHO_REPLY
+ 0x0081
+
+	)
+
+73 
+	#ICMPV6_NEIGHBOR_SOLICITATION
+ 0x0087
+
+	)
+
+74 
+	#ICMPV6_NEIGHBOR_ADVERTISEMENT
+ 0x0088
+
+	)
+
+75 
+	#IPV6_MULTICAST
+ 0xFF02
+
+	)
+
+77 
+	#NEIGHBOR_SOLICITATION_SET
+ 0x40000000
+
+	)
+
+78 
+	#NEIGHBOR_ROUTER_OVERRIDE_SET
+ 0xa0000000
+
+	)
+
+79 
+	eicmpv6_lšk_Ïy”_Add»ss_ty³
+ {
+
+80 
+	me_Sourû_Lšk_Lay”_Add»ss
+ = 1,
+
+81 
+	me_T¬g‘_Lšk_Lay”_Add»ss
+,
+
+82 
+	me_Lšk_Lay”_Add»ss
+
+
+88 
+ušt8_t
+ 
+is_muÉiÿ¡_v6_addr
+(ušt8_ˆ
+v6
+[]);
+
+93 
+	sicmpv6_pÜt_add»ss
+ {
+
+94 
+ušt32_t
+ 
+	mv6
+[16];
+
+95 
+ušt64_t
+ 
+	mmac_addr
+;
+
+101 
+icmpv6_pÜt_add»ss
+ 
+	gicmpv6_pÜt_add»s£s
+[
+RTE_MAX_ETHPORTS
+];
+
+103 
+	#MAX_NUM_ICMPv6_ENTRIES
+ 64
+
+	)
+
+104 
+¹e_mbuf
+ *
+	glib_icmpv6_pkt
+;
+
+113 
+´oûss_icmpv6_pkt
+(
+¹e_mbuf
+ *
+pkt
+, 
+l2_phy_š‹rçû_t
+ *
+pÜt
+);
+
+	@VIL/l2l3_stack/main_l2l3.c
+
+17 #iâdeà
+__INCLUDE_MAIN__
+
+
+18 
+	#__INCLUDE_MAIN_H__
+
+
+	)
+
+20 
+	~<¡dio.h
+>
+
+21 
+	~<¡dlib.h
+>
+
+22 
+	~<¡dšt.h
+>
+
+23 
+	~<š‰y³s.h
+>
+
+24 
+	~<sys/ty³s.h
+>
+
+25 
+	~<¡ršg.h
+>
+
+26 
+	~<sys/queue.h
+>
+
+27 
+	~<¡d¬g.h
+>
+
+28 
+	~<Ӽo.h
+>
+
+29 
+	~<g‘Ýt.h
+>
+
+30 
+	~<sigÇl.h
+>
+
+31 
+	~<¡dboÞ.h
+>
+
+33 
+	~<¹e_commÚ.h
+>
+
+34 
+	~<¹e_veù.h
+>
+
+35 
+	~<¹e_by‹Üd”.h
+>
+
+36 
+	~<¹e_log.h
+>
+
+37 
+	~<¹e_memÜy.h
+>
+
+38 
+	~<¹e_memýy.h
+>
+
+39 
+	~<¹e_memzÚe.h
+>
+
+40 
+	~<¹e_—l.h
+>
+
+41 
+	~<¹e_³r_lcÜe.h
+>
+
+42 
+	~<¹e_Ïunch.h
+>
+
+43 
+	~<¹e_©omic.h
+>
+
+44 
+	~<¹e_cyþes.h
+>
+
+45 
+	~<¹e_´eãtch.h
+>
+
+46 
+	~<¹e_lcÜe.h
+>
+
+47 
+	~<¹e_³r_lcÜe.h
+>
+
+48 
+	~<¹e_b¿nch_´ediùiÚ.h
+>
+
+49 
+	~<¹e_š‹¼u±s.h
+>
+
+50 
+	~<¹e_pci.h
+>
+
+51 
+	~<¹e_¿ndom.h
+>
+
+52 
+	~<¹e_debug.h
+>
+
+53 
+	~<¹e_‘h”.h
+>
+
+54 
+	~<¹e_‘hdev.h
+>
+
+55 
+	~<¹e_ršg.h
+>
+
+56 
+	~<¹e_mempoÞ.h
+>
+
+57 
+	~<¹e_mbuf.h
+>
+
+58 
+	~<¹e_.h
+>
+
+59 
+	~<¹e_tý.h
+>
+
+60 
+	~<¹e_udp.h
+>
+
+61 
+	~<¹e_¡ršg_âs.h
+>
+
+62 
+	~<¹e_ýuæags.h
+>
+
+63 
+	~<¹e_tim”.h
+>
+
+64 
+	~"lib_¬p.h
+"
+
+65 
+	~"l2_´Ùo.h
+"
+
+66 
+	~"š‹rçû.h
+"
+
+67 
+	~"l3fwd_commÚ.h
+"
+
+68 
+	~"l3fwd_Ím4.h
+"
+
+69 
+	~"l3fwd_Ím6.h
+"
+
+70 
+	#TIMER_RESOLUTION_CYCLES
+ 20000000ULL
+
+	)
+
+71 
+	glcÜe_id
+ = 1;
+
+72 
+cÚv”t_¡r_to_num”ic
+();
+
+73 
+sockaddr_š
+ 
+	gaddr1
+, 
+	gaddr2
+, 
+	gaddr3
+, 
+	gaddr4
+;
+
+74 
+ušt8_t
+ 
+	gv6_addr0
+[16] = {
+
+78 
+ušt8_t
+ 
+	gv6_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 + (
+¹e_mbuf
+) +
+
+92 
+RTE_PKTMBUF_HEADROOM
+,
+
+93 .
+	gpoÞ_size
+ = 32 * 1024,
+
+94 .
+	gÿche_size
+ = 256,
+
+95 .
+	gýu_sock‘_id
+ = 0,
+
+97 .
+	gpÜt_cÚf
+ = {
+
+98 .
+lšk_¥“ds
+ = 0,
+
+99 .
+	grxmode
+ = {
+
+100 .
+mq_mode
+ = 
+ETH_MQ_RX_NONE
+,
+
+101 .
+	gh—d”_¥l™
+ = 0,
+
+102 .
+	ghw__checksum
+ = 0,
+
+103 .
+	ghw_vÏn_fž‹r
+ = 0,
+
+104 .
+	ghw_vÏn_¡r
+ = 0,
+
+105 .
+	ghw_vÏn_ex‹nd
+ = 0,
+
+106 .
+	gjumbo_äame
+ = 0,
+
+107 .
+	ghw_¡r_üc
+ = 0,
+
+108 .
+	g’abË_sÿ‰”
+ = 0,
+
+109 .
+	gmax_rx_pkt_Ën
+ = 9000,
+
+110 .
+	g¥l™_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šŒ_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_ä“_th»sh
+ = 64,
+
+134 .
+	grx_drÝ_’
+ = 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_ä“_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 + (
+¹e_mbuf
+) +
+
+157 
+RTE_PKTMBUF_HEADROOM
+,
+
+158 .
+	gpoÞ_size
+ = 32 * 1024,
+
+159 .
+	gÿche_size
+ = 256,
+
+160 .
+	gýu_sock‘_id
+ = 0,
+
+162 .
+	gpÜt_cÚf
+ = {
+
+163 .
+lšk_¥“ds
+ = 0,
+
+164 .
+	grxmode
+ = {
+
+165 .
+mq_mode
+ = 
+ETH_MQ_RX_NONE
+,
+
+166 .
+	gh—d”_¥l™
+ = 0,
+
+167 .
+	ghw__checksum
+ = 0,
+
+168 .
+	ghw_vÏn_fž‹r
+ = 0,
+
+169 .
+	ghw_vÏn_¡r
+ = 0,
+
+170 .
+	ghw_vÏn_ex‹nd
+ = 0,
+
+171 .
+	gjumbo_äame
+ = 0,
+
+172 .
+	ghw_¡r_üc
+ = 0,
+
+173 .
+	g’abË_sÿ‰”
+ = 0,
+
+174 .
+	gmax_rx_pkt_Ën
+ = 9000,
+
+175 .
+	g¥l™_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šŒ_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_ä“_th»sh
+ = 64,
+
+199 .
+	grx_drÝ_’
+ = 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_ä“_th»sh
+ = 0,
+
+210 .
+	gtxq_æags
+ = 
+ETH_TXQ_FLAGS_NOMULTSEGS
+ | 
+ETH_TXQ_FLAGS_NOOFFLOADS
+,
+
+211 .
+	gtx_deã¼ed_¡¬t
+ = 0,
+
+216 
+__©Œibu‹__
+ ((
+nܑuº
+))
+
+217 
+lcÜe_mašloÝ
+ (
+__©Œibu‹__
+ ((
+unu£d
+))
+
+218 *
+¬g
+)
+
+220 
+l2_phy_š‹rçû_t
+ *
+	gpÜt
+;
+
+221 
+št8_t
+ 
+	gpÜtid
+;
+
+222 
+¹e_mbuf
+ *
+	gpkts_bur¡
+[
+IFM_BURST_SIZE
+];
+
+223 
+ušt32_t
+ 
+	gnb_tx
+, 
+	gnb_rx
+;
+
+224 cÚ¡ 
+ušt64_t
+ 
+	gd¿š_tsc
+ =
+
+225 (
+¹e_g‘_tsc_hz
+(è+ 
+US_PER_S
+ - 1è/ US_PER_S * 
+BURST_TX_DRAIN_US
+;
+
+226 
+ušt64_t
+ 
+	g´ev_tsc
+ = 0, 
+	gcur_tsc
+, 
+	gdiff_tsc
+;
+
+228 
+	gpÜt
+ = 
+ifm_g‘_fœ¡_pÜt
+();
+
+229 
+	gpÜt
+ !ð
+NULL
+) {
+
+230 
+¹e_tim”_mªage
+();
+
+231 
+	gpÜtid
+ = 
+pÜt
+->
+pmdid
+;
+
+232 
+	gcur_tsc
+ = 
+¹e_rdtsc
+();
+
+233 
+	gdiff_tsc
+ = 
+cur_tsc
+ - 
+´ev_tsc
+;
+
+236 ià(
+uÆik–y
+(
+diff_tsc
+ > 
+d¿š_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
+->
+»Œ›ve_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‘_Ãxt_pÜt
+(
+pÜtid
+);
+
+249 ià(
+	gpÜt
+ !ð
+NULL
+)
+
+250 
+´ev_tsc
+ = 
+cur_tsc
+;
+
+255 
+	$cÚv”t_¡r_to_num”ic
+()
+
+257 
+	`mem£t
+(&
+addr1
+, '\0', (
+sockaddr_š
+));
+
+258 
+addr1
+.
+sš_addr
+.
+s_addr
+ = 
+	`š‘_addr
+("30.0.0.10");
+
+259 
+	`mem£t
+(&
+addr2
+, '\0', (
+sockaddr_š
+));
+
+260 
+addr2
+.
+sš_addr
+.
+s_addr
+ = 
+	`š‘_addr
+("120.0.0.10");
+
+261 
+	}
+}
+
+263 
+	$maš
+(
+¬gc
+, **
+¬gv
+)
+
+265 
+»t
+ = 0;
+
+267 
+»t
+ = 
+	`¹e_—l_š™
+(
+¬gc
+, 
+¬gv
+);
+
+268 ià(
+»t
+ < 0)
+
+269 
+	`¹e_ex™
+(
+EXIT_FAILURE
+, "Invalid EAL…arameters\n");
+
+272 
+	`ifm_š™
+();
+
+273 
+	`ifm_cÚfigu»_pÜts
+(
+pÜtcÚf
+);
+
+278 
+	`ifm_add_v6_pÜt
+(0, 
+v6_addr0
+, 96);
+
+279 
+	`ifm_add_v6_pÜt
+(1, 
+v6_addr1
+, 96);
+
+280 
+	`´št_š‹rçû_d‘ažs
+();
+
+283 
+	`l3fwd_š™
+();
+
+284 
+	`ü—‹_¬p_bË
+();
+
+285 
+	`ü—‹_nd_bË
+();
+
+286 
+	`pÝuϋ_Ím_rou‹s
+();
+
+289 
+ii
+;
+
+290 
+ii
+ = 0; ii < 16; ii += 2) {
+
+291 
+	`´štf
+("%02X%02X ", 
+v6_addr0
+[
+ii
+], ipv6_addr0[ii + 1]);
+
+293 
+	`´štf
+("\n");
+
+294 
+ii
+ = 0; ii < 16; ii += 2) {
+
+295 
+	`´štf
+("%02X%02X ", 
+v6_addr1
+[
+ii
+], ipv6_addr1[ii + 1]);
+
+297 
+	`´štf
+("REMOTE LAUNCH STARTED........\n");
+
+298 
+	`¹e_—l_»mÙe_Ïunch
+(
+lcÜe_mašloÝ
+, 
+NULL
+, 
+lcÜe_id
+);
+
+299 
+	`´štf
+("REMOTE LAUNCH DONE.......\n");
+
+300 ià(
+	`¹e_—l_wa™_lcÜe
+(
+lcÜe_id
+) < 0) {
+
+303 
+	}
+}
+
+	@VIL/l2l3_stack/tsx.c
+
+17 
+	~<immšŒš.h
+>
+
+18 
+	~<¡dlib.h
+>
+
+19 
+	~<¡dio.h
+>
+
+20 
+	~<time.h
+>
+
+21 
+	~<¡dšt.h
+>
+
+22 
+	~"¹e_©omic.h
+"
+
+23 
+	~"tsx.h
+"
+
+24 
+	gmax_»Œ›s
+ = 3;
+
+27 
+	$run_ýuid
+ (
+ušt32_t
+ 
+—x
+, ušt32_ˆ
+ecx
+, ušt32_ˆ*
+abcd
+)
+
+29 
+ušt32_t
+ 
+ebx
+ = 0, 
+edx
+ = 0;
+
+31 #ià
+	`defšed
+(
+__i386__
+è&& defšed (
+__PIC__
+)
+
+33 
+	`__asm__
+ ("movÈ%%ebx, %%ed˜\n\ˆýuid \n\ˆxchgÈ%%ebx, %%edi":"=D" (
+ebx
+),
+
+35 
+	`__asm__
+ ("ýuid":"+b" (
+ebx
+),
+
+37 "+a" (
+—x
+), "+c" (
+ecx
+), "=d" (
+edx
+));
+
+38 
+abcd
+[0] = 
+—x
+;
+
+39 
+abcd
+[1] = 
+ebx
+;
+
+40 
+abcd
+[2] = 
+ecx
+;
+
+41 
+abcd
+[3] = 
+edx
+;
+
+42 
+	}
+}
+
+45 
+	$check_xü0_ymm
+ ()
+
+47 
+ušt32_t
+ 
+xü0
+;
+
+48 
+	`__asm__
+ ("xg‘bv" : "÷" (
+xü0
+) : "c" (0) : "%edx");
+
+49  ((
+xü0
+ & 6) == 6);
+
+50 
+	}
+}
+
+53 
+	$check_4th_g’_š‹l_cÜe_ã©u»s
+ ()
+
+55 
+ušt32_t
+ 
+abcd
+[4];
+
+56 
+ušt32_t
+ 
+fma_movbe_osx§ve_mask
+ = ((1 << 12) | (1 << 22) | (1 << 27));
+
+57 
+ušt32_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 
+	`´štf
+ ("Failing in if cond-1\n");
+
+67 ià(!
+	`check_xü0_ymm
+ ()) {
+
+68 
+	`´štf
+ ("Failing in if cond-2\n");
+
+75 
+	`run_ýuid
+ (7, 0, 
+abcd
+);
+
+76 ià((
+abcd
+[1] & 
+avx2_bmi12_mask
+) !=‡vx2_bmi12_mask) {
+
+77 
+	`´štf
+ ("Failing in if cond-3\n");
+
+81 
+	`run_ýuid
+ (0x80000001, 0, 
+abcd
+);
+
+82 ià((
+abcd
+[2] & (1 << 5)) == 0) {
+
+83 
+	`´štf
+ ("Failing in if cond-4\n");
+
+87 
+	`run_ýuid
+ (7, 0, 
+abcd
+);
+
+88 ià((
+abcd
+[1] & (1 << 11)) == 0) {
+
+89 
+	`´štf
+ ("Failing in if cond-5\n");
+
+93 
+	`run_ýuid
+ (7, 0, 
+abcd
+);
+
+94 ià((
+abcd
+[1] & (1 << 4)) == 0) {
+
+95 
+	`´štf
+ ("Failing in if cond-6\n");
+
+99 
+	}
+}
+
+102 
+	$ÿn_u£_š‹l_cÜe_4th_g’_ã©u»s
+ ()
+
+104 
+the_4th_g’_ã©u»s_avažabË
+ = -1;
+
+106 ià(
+the_4th_g’_ã©u»s_avažabË
+ < 0)
+
+107 
+the_4th_g’_ã©u»s_avažabË
+ = 
+	`check_4th_g’_š‹l_cÜe_ã©u»s
+ ();
+
+108  
+the_4th_g’_ã©u»s_avažabË
+;
+
+109 
+	}
+}
+
+112 
+	$¹m_š™
+ ()
+
+114 
+Çb܋d
+ = (
+¹e_©omic64_t
+è
+	`RTE_ATOMIC64_INIT
+ (0);
+
+117 
+	}
+} 
+
+119 
+	$¹m_lock
+ ()
+
+121 
+đr›s
+ = 0;
+
+123 ++
+đr›s
+;
+
+124 
+¡©us
+ = 
+	`_xbegš
+ ();
+
+125 ià(
+¡©us
+ =ð
+_XBEGIN_STARTED
+) {
+
+126 ià(!
+	`is_hË_locked
+ ())
+
+130 
+	`_xabÜt
+ (0xff);
+
+133 
+	`¹e_©omic64_šc
+ (&
+Çb܋d
+);
+
+134 
+´štf
+
+
+136 
+đr›s
+, 
+¡©us
+);
+
+138 ià((
+¡©us
+ & 
+_XABORT_EXPLICIT
+)
+
+139 && 
+	`_XABORT_CODE
+ (
+¡©us
+è=ð0xfà&& !(¡©u & 
+_XABORT_NESTED
+)) {
+
+140 
+	`is_hË_locked
+ ())
+
+141 
+	`_mm_·u£
+ ();
+
+143 ià(!(
+¡©us
+ & 
+_XABORT_RETRY
+))
+
+145 ià(
+đr›s
+ >ð
+max_»Œ›s
+)
+
+148 
+	`hË_lock
+ ();
+
+150 
+	}
+}
+
+153 
+	$¹m_uÆock
+ ()
+
+155 ià(
+	`is_hË_locked
+ ())
+
+156 
+	`hË_»Ëa£
+ ();
+
+159 
+	`_x’d
+ ();
+
+161 
+	}
+}
+
+164 
+	$is_¹m_locked
+ ()
+
+166  ((è
+	`_x‹¡
+ ());
+
+167 
+	}
+}
+
+	@VIL/l2l3_stack/tsx.h
+
+16 #iâdeà
+_TSX_H_
+
+
+17 
+	#_RSX_H_
+
+
+	)
+
+18 
+	~<¹e_©omic.h
+>
+
+19 
+	#TRUE
+ 1
+
+	)
+
+20 
+	#FALSE
+ 0
+
+	)
+
+22 vÞ©ž
+	gmu‹x_v®
+;
+
+24 
+¹e_©omic64_t
+ 
+	gÇb܋d
+;
+
+26 
+hË_š™
+();
+
+27 
+hË_lock
+();
+
+28 
+hË_»Ëa£
+();
+
+29 
+is_hË_locked
+();
+
+31 
+¹m_š™
+();
+
+32 
+¹m_lock
+();
+
+33 
+¹m_uÆock
+();
+
+34 
+is_¹m_locked
+();
+
+36 
+ÿn_u£_š‹l_cÜe_4th_g’_ã©u»s
+();
+
+	@VIL/pipeline_arpicmp/pipeline_arpicmp.c
+
+17 
+	~<cmdlše_·r£.h
+>
+
+18 
+	~<cmdlše_·r£_num.h
+>
+
+19 
+	~<cmdlše_·r£_¡ršg.h
+>
+
+20 
+	~<cmdlše_·r£_addr.h
+>
+
+21 
+	~<cmdlše_·r£_‘h”addr.h
+>
+
+23 
+	~"­p.h
+"
+
+24 
+	~"p–še_commÚ_ã.h
+"
+
+25 
+	~"p–še_¬picmp_be.h
+"
+
+26 
+	~"p–še_¬picmp.h
+"
+
+27 
+	~"vnf_commÚ.h
+"
+
+29 
+	~"­p.h
+"
+
+30 
+	~"vnf_commÚ.h
+"
+
+31 #iâdeà
+VNF_ACL
+
+
+32 
+	~"lib_¬p.h
+"
+
+35 
+	~<¹e_.h
+>
+
+36 
+	~<¹e_udp.h
+>
+
+37 
+	~<¹e_¡ršg_âs.h
+>
+
+39 
+ušt16_t
+ 
+	gv”bo£_Ëv–
+ = 1;
+
+40 
+ušt16_t
+ 
+	gnb_pkt_³r_bur¡
+ = 
+DEF_PKT_BURST
+;
+
+46 #ifdeà
+__GCC__
+
+
+47 
+	#RTE_BE_TO_CPU_16
+(
+be_16_v
+è
+	`¹e_be_to_ýu_16
+((be_16_v))
+
+	)
+
+48 
+	#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 
+	#RTE_BE_TO_CPU_16
+(
+be_16_v
+è(be_16_v)
+
+	)
+
+52 
+	#RTE_CPU_TO_BE_16
+(
+ýu_16_v
+è(ýu_16_v)
+
+	)
+
+54 
+	#RTE_BE_TO_CPU_16
+(
+be_16_v
+) \
+
+55 ((
+ušt16_t
+è((((
+be_16_v
+è& 0xFFè<< 8è| ((be_16_vè>> 8)))
+
+	)
+
+56 
+	#RTE_CPU_TO_BE_16
+(
+ýu_16_v
+) \
+
+57 ((
+ušt16_t
+è((((
+ýu_16_v
+è& 0xFFè<< 8è| ((ýu_16_vè>> 8)))
+
+	)
+
+65 
+	scmd_¬p_add_»suÉ
+ {
+
+66 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+67 
+ušt32_t
+ 
+	mp
+;
+
+68 
+cmdlše_fixed_¡ršg_t
+ 
+	m¬·dd_¡ršg
+;
+
+69 
+ušt32_t
+ 
+	mpÜt_id
+;
+
+70 
+cmdlše_addr_t
+ 
+	m
+;
+
+71 
+‘h”_addr
+ 
+	mmaÿddr
+;
+
+76 
+	$cmd_¬p_add_·r£d
+(*
+·r£d_»suÉ
+,
+
+77 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+, __¹e_unu£d *
+d©a
+)
+
+79 
+cmd_¬p_add_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+80 
+ušt8_t
+ 
+v6
+[16];
+
+83 
+p–še_¬p_icmp_¬p_key
+ 
+key
+;
+
+84 
+key
+.
+ty³
+ = 
+PIPELINE_ARP_ICMP_ARP_IPV4
+;
+
+85 
+key
+.key.
+v4
+.
+pÜt_id
+ = 
+·¿ms
+->port_id;
+
+86 
+key
+.key.
+v4
+.
+
+ = 
+	`¹e_ýu_to_be_32
+(
+·¿ms
+->.
+addr
+.v4.
+s_addr
+);
+
+87 
+	`pÝuϋ_¬p_’Œy
+(&
+»q
+->
+maÿddr
+, 
+	`¹e_bsw­32
+Ôeq->
+key
+.key.
+v4
+.
+
+),
+
+88 
+»q
+->
+key
+.key.
+v4
+.
+pÜt_id
+);
+
+90 ià(
+·¿ms
+->
+
+.
+çmžy
+ =ð
+AF_INET
+) {
+
+91 
+	`pÝuϋ_¬p_’Œy
+(&
+·¿ms
+->
+maÿddr
+,
+
+92 
+	`¹e_ýu_to_be_32
+(
+·¿ms
+->
+
+.
+addr
+.
+
+93 
+v4
+.
+s_addr
+),
+
+94 
+·¿ms
+->
+pÜt_id
+
+
+95 #iâdeà
+VNF_ACL
+
+
+96 , 
+STATIC_ARP
+
+
+100 
+	`memýy
+(
+v6
+, 
+·¿ms
+->
+
+.
+addr
+.v6.
+s6_addr
+, 16);
+
+101 
+	`pÝuϋ_nd_’Œy
+(&
+·¿ms
+->
+maÿddr
+, 
+v6
+,…¬ams->
+pÜt_id
+
+
+102 #iâdeà
+VNF_ACL
+
+
+103 , 
+STATIC_ND
+
+
+107 
+	}
+}
+
+109 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_add_p_¡ršg
+ =
+
+110 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_add_»suÉ
+, 
+p_¡ršg
+,
+
+113 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¬p_add_p
+ =
+
+114 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¬p_add_»suÉ
+, 
+p
+, 
+UINT32
+);
+
+116 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_add_¬p_¡ršg
+ =
+
+117 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_add_»suÉ
+, 
+¬·dd_¡ršg
+, "arpadd");
+
+119 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¬p_add_pÜt_id
+ =
+
+120 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¬p_add_»suÉ
+, 
+pÜt_id
+, 
+UINT32
+);
+
+122 
+cmdlše_·r£_tok’_addr_t
+ 
+	gcmd_¬p_add_
+ =
+
+123 
+TOKEN_IPADDR_INITIALIZER
+(
+cmd_¬p_add_»suÉ
+, 
+
+);
+
+125 
+cmdlše_·r£_tok’_‘h”addr_t
+ 
+	gcmd_¬p_add_maÿddr
+ =
+
+126 
+TOKEN_ETHERADDR_INITIALIZER
+(
+cmd_¬p_add_»suÉ
+, 
+maÿddr
+);
+
+128 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_¬p_add
+ = {
+
+129 .
+f
+ = 
+cmd_¬p_add_·r£d
+,
+
+130 .
+	gd©a
+ = 
+NULL
+,
+
+131 .
+	gh–p_¡r
+ = "ARP‡dd",
+
+132 .
+	gtok’s
+ = {
+
+133 (*)&
+cmd_¬p_add_p_¡ršg
+,
+
+134 (*)&
+cmd_¬p_add_p
+,
+
+135 (*)&
+cmd_¬p_add_¬p_¡ršg
+,
+
+136 (*)&
+cmd_¬p_add_pÜt_id
+,
+
+137 (*)&
+cmd_¬p_add_
+,
+
+138 (*)&
+cmd_¬p_add_maÿddr
+,
+
+139 
+NULL
+,
+
+147 
+	scmd_¬p_d–_»suÉ
+ {
+
+148 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+149 
+ušt32_t
+ 
+	mp
+;
+
+150 
+cmdlše_fixed_¡ršg_t
+ 
+	m¬p_¡ršg
+;
+
+151 
+ušt32_t
+ 
+	mpÜt_id
+;
+
+152 
+cmdlše_addr_t
+ 
+	m
+;
+
+156 
+	$cmd_¬p_d–_·r£d
+(*
+·r£d_»suÉ
+,
+
+157 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+, __¹e_unu£d *
+d©a
+)
+
+159 
+cmd_¬p_d–_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+160 
+ušt8_t
+ 
+v6
+[16];
+
+163 
+p–še_¬p_icmp_¬p_key
+ 
+key
+;
+
+164 
+key
+.
+ty³
+ = 
+PIPELINE_ARP_ICMP_ARP_IPV4
+;
+
+165 
+key
+.key.
+v4
+.
+
+ = 
+	`¹e_ýu_to_be_32
+(
+·¿ms
+->.
+addr
+.v4.
+s_addr
+);
+
+166 
+key
+.key.
+v4
+.
+pÜt_id
+ = 
+·¿ms
+->port_id;
+
+167 
+	`»move_¬p_’Œy
+(
+	`¹e_bsw­32
+(
+»q
+->
+key
+.key.
+v4
+.
+
+),
+
+168 
+»q
+->
+key
+.key.
+v4
+.
+pÜt_id
+);
+
+170 ià(
+·¿ms
+->
+
+.
+çmžy
+ =ð
+AF_INET
+) {
+
+171 
+	`»move_¬p_’Œy
+(
+	`¹e_ýu_to_be_32
+(
+·¿ms
+->
+
+.
+addr
+.
+v4
+.
+s_addr
+),
+
+172 
+·¿ms
+->
+pÜt_id
+
+
+173 #iâdeà
+VNF_ACL
+
+
+174 , 
+NULL
+
+
+178 
+	`memýy
+(
+v6
+, 
+·¿ms
+->
+
+.
+addr
+.v6.
+s6_addr
+, 16);
+
+179 
+	`»move_nd_’Œy_v6
+(
+v6
+, 
+·¿ms
+->
+pÜt_id
+);
+
+181 
+	}
+}
+
+183 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_d–_p_¡ršg
+ =
+
+184 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_d–_»suÉ
+, 
+p_¡ršg
+,
+
+187 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¬p_d–_p
+ =
+
+188 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¬p_d–_»suÉ
+, 
+p
+, 
+UINT32
+);
+
+190 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_d–_¬p_¡ršg
+ =
+
+191 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_d–_»suÉ
+, 
+¬p_¡ršg
+, "arpdel");
+
+193 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¬p_d–_pÜt_id
+ =
+
+194 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¬p_d–_»suÉ
+, 
+pÜt_id
+, 
+UINT32
+);
+
+196 
+cmdlše_·r£_tok’_addr_t
+ 
+	gcmd_¬p_d–_
+ =
+
+197 
+TOKEN_IPADDR_INITIALIZER
+(
+cmd_¬p_d–_»suÉ
+, 
+
+);
+
+199 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_¬p_d–
+ = {
+
+200 .
+f
+ = 
+cmd_¬p_d–_·r£d
+,
+
+201 .
+	gd©a
+ = 
+NULL
+,
+
+202 .
+	gh–p_¡r
+ = "ARP delete",
+
+203 .
+	gtok’s
+ = {
+
+204 (*)&
+cmd_¬p_d–_p_¡ršg
+,
+
+205 (*)&
+cmd_¬p_d–_p
+,
+
+206 (*)&
+cmd_¬p_d–_¬p_¡ršg
+,
+
+207 (*)&
+cmd_¬p_d–_pÜt_id
+,
+
+208 (*)&
+cmd_¬p_d–_
+,
+
+209 
+NULL
+,
+
+220 
+	$cmd_¬p_»q_·r£d
+(*
+·r£d_»suÉ
+,
+
+221 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+, __¹e_unu£d *
+d©a
+)
+
+223 
+cmd_¬p_d–_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+226 
+¬p_key_v4
+ 
+key
+;
+
+232 
+key
+.
+
+ = 
+	`¹e_ýu_to_be_32
+(
+·¿ms
+->.
+addr
+.
+v4
+.
+s_addr
+);
+
+233 
+key
+.
+pÜt_id
+ = 
+·¿ms
+->port_id;
+
+234 
+key
+.
+fžËr1
+ = 0;
+
+235 
+key
+.
+fžËr2
+ = 0;
+
+236 
+key
+.
+fžËr3
+ = 0;
+
+238 
+¬p_’Œy_d©a
+ *
+¬p_d©a
+ = 
+	`»Œ›ve_¬p_’Œy
+(
+key
+);
+
+240 ià(
+¬p_d©a
+) {
+
+241 ià(
+ARPICMP_DEBUG
+)
+
+242 
+	`´štf
+("ARPƒntryƒxists for ip 0x%x,…ort %d\n",
+
+243 
+·¿ms
+->
+
+.
+addr
+.
+v4
+.
+s_addr
+,…¬ams->
+pÜt_id
+);
+
+247 ià(
+ARPICMP_DEBUG
+)
+
+248 
+	`´štf
+("ARP -„equesting‡rp for ip 0x%x,…ort %d\n",
+
+249 
+·¿ms
+->
+
+.
+addr
+.
+v4
+.
+s_addr
+,…¬ams->
+pÜt_id
+);
+
+251 #ifdeà
+VNF_ACL
+
+
+252 
+	`»que¡_¬p_w¿p
+(
+·¿ms
+->
+pÜt_id
+,…¬ams->
+
+.
+addr
+.
+v4
+.
+s_addr
+);
+
+254 
+	`»que¡_¬p
+(
+·¿ms
+->
+pÜt_id
+,…¬ams->
+
+.
+addr
+.
+v4
+.
+s_addr
+);
+
+257 
+	}
+}
+
+259 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_»q_¡ršg
+ =
+
+260 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_d–_»suÉ
+, 
+¬p_¡ršg
+, "arpreq");
+
+262 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_¬p_»q
+ = {
+
+263 .
+f
+ = 
+cmd_¬p_»q_·r£d
+,
+
+264 .
+	gd©a
+ = 
+NULL
+,
+
+265 .
+	gh–p_¡r
+ = "ARP„equest",
+
+266 .
+	gtok’s
+ = {
+
+267 (*)&
+cmd_¬p_d–_p_¡ršg
+,
+
+268 (*)&
+cmd_¬p_d–_p
+,
+
+269 (*)&
+cmd_¬p_»q_¡ršg
+,
+
+270 (*)&
+cmd_¬p_d–_pÜt_id
+,
+
+271 (*)&
+cmd_¬p_d–_
+,
+
+272 
+NULL
+,
+
+283 
+	$cmd_icmp_echo_»q_·r£d
+(*
+·r£d_»suÉ
+,
+
+284 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+285 
+__¹e_unu£d
+ *
+d©a
+)
+
+287 
+cmd_¬p_d–_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+289 ià(
+ARPICMP_DEBUG
+)
+
+290 
+	`´štf
+("Echo Req Handler ip %x,…ort %d\n",
+
+291 
+·¿ms
+->
+
+.
+addr
+.
+v4
+.
+s_addr
+,…¬ams->
+pÜt_id
+);
+
+293 
+	`»que¡_echo
+(
+·¿ms
+->
+pÜt_id
+,…¬ams->
+
+.
+addr
+.
+v4
+.
+s_addr
+);
+
+294 
+	}
+}
+
+296 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_icmp_echo_»q_¡ršg
+ =
+
+297 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_d–_»suÉ
+, 
+¬p_¡ršg
+, "icmpecho");
+
+299 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_icmp_echo_»q
+ = {
+
+300 .
+f
+ = 
+cmd_icmp_echo_»q_·r£d
+,
+
+301 .
+	gd©a
+ = 
+NULL
+,
+
+302 .
+	gh–p_¡r
+ = "ICMPƒcho„equest",
+
+303 .
+	gtok’s
+ = {
+
+304 (*)&
+cmd_¬p_d–_p_¡ršg
+,
+
+305 (*)&
+cmd_¬p_d–_p
+,
+
+306 (*)&
+cmd_icmp_echo_»q_¡ršg
+,
+
+307 (*)&
+cmd_¬p_d–_pÜt_id
+,
+
+308 (*)&
+cmd_¬p_d–_
+,
+
+309 
+NULL
+,
+
+317 
+	scmd_¬p_ls_»suÉ
+ {
+
+318 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+319 
+ušt32_t
+ 
+	mp
+;
+
+320 
+cmdlše_fixed_¡ršg_t
+ 
+	m¬p_¡ršg
+;
+
+324 
+	$cmd_¬p_ls_·r£d
+(
+__¹e_unu£d
+ *
+·r£d_»suÉ
+,
+
+325 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+, __¹e_unu£d *
+d©a
+)
+
+327 
+	`´štf
+("\nARPable ...\n");
+
+328 
+	`´štf
+("-------------\n");
+
+329 
+	`´št_¬p_bË
+();
+
+331 
+´štf
+
+
+334 
+	`´štf
+("\nND IPv6able:\n");
+
+335 
+	`´štf
+("--------------\n");
+
+336 
+	`´št_nd_bË
+();
+
+337 
+	}
+}
+
+339 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_ls_p_¡ršg
+ =
+
+340 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_ls_»suÉ
+, 
+p_¡ršg
+,
+
+343 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¬p_ls_p
+ =
+
+344 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¬p_ls_»suÉ
+, 
+p
+, 
+UINT32
+);
+
+346 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_ls_¬p_¡ršg
+ =
+
+347 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_ls_»suÉ
+, 
+¬p_¡ršg
+,
+
+350 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_¬p_ls
+ = {
+
+351 .
+f
+ = 
+cmd_¬p_ls_·r£d
+,
+
+352 .
+	gd©a
+ = 
+NULL
+,
+
+353 .
+	gh–p_¡r
+ = "ARP†ist",
+
+354 .
+	gtok’s
+ = {
+
+355 (*)&
+cmd_¬p_ls_p_¡ršg
+,
+
+356 (*)&
+cmd_¬p_ls_p
+,
+
+357 (*)&
+cmd_¬p_ls_¬p_¡ršg
+,
+
+358 
+NULL
+,
+
+366 
+	scmd_show_pÜts_šfo_»suÉ
+ {
+
+367 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+368 
+ušt32_t
+ 
+	mp
+;
+
+369 
+cmdlše_fixed_¡ršg_t
+ 
+	m¬p_¡ršg
+;
+
+373 
+	$cmd_show_pÜts_šfo_·r£d
+(
+__¹e_unu£d
+ *
+·r£d_»suÉ
+,
+
+374 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+375 
+__¹e_unu£d
+ *
+d©a
+)
+
+377 
+	`show_pÜts_šfo
+();
+
+378 
+	}
+}
+
+380 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_show_pÜts_šfo_¡ršg
+ =
+
+381 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_ls_»suÉ
+, 
+¬p_¡ršg
+,
+
+384 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_show_pÜts_šfo
+ = {
+
+385 .
+f
+ = 
+cmd_show_pÜts_šfo_·r£d
+,
+
+386 .
+	gd©a
+ = 
+NULL
+,
+
+387 .
+	gh–p_¡r
+ = "show…orts info",
+
+388 .
+	gtok’s
+ = {
+
+389 (*)&
+cmd_¬p_ls_p_¡ršg
+,
+
+390 (*)&
+cmd_¬p_ls_p
+,
+
+391 (*)&
+cmd_show_pÜts_šfo_¡ršg
+,
+
+392 
+NULL
+,
+
+396 #iâdeà
+VNF_ACL
+
+
+397 
+	scmd_¬p_dbg_»suÉ
+ {
+
+398 
+cmdlše_fixed_¡ršg_t
+ 
+	m¬pdbg_¡r
+;
+
+399 
+ušt32_t
+ 
+	mæag
+;
+
+402 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_dbg_¡ršg
+ =
+
+403 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_dbg_»suÉ
+, 
+¬pdbg_¡r
+,
+
+405 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¬p_dbg_æag
+ =
+
+406 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¬p_dbg_»suÉ
+, 
+æag
+, 
+UINT32
+);
+
+409 
+cmd_¬p_dbg_·r£
+(
+
+410 *
+·r£d_»suÉ
+,
+
+411 
+__©Œibu‹__
+((
+unu£d
+)è
+cmdlše
+ *
+þ
+,
+
+412 
+__¹e_unu£d
+ *
+d©a
+)
+
+414 
+cmd_¬p_dbg_»suÉ
+ *
+	g·¿ms
+ = 
+·r£d_»suÉ
+;
+
+415 if(
+	g·¿ms
+)
+
+417 
+£t_¬pdebug
+(
+·¿ms
+->
+æag
+);
+
+421 
+´štf
+("%s: P¬am i NULL",
+__FUNCTION__
+);
+
+425 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_¬p_dbg
+ = {
+
+426 .
+f
+ = 
+cmd_¬p_dbg_·r£
+,
+
+427 .
+	gd©a
+ = 
+NULL
+,
+
+428 .
+	gh–p_¡r
+ = "Turn on/off(1/0)‡rp debug",
+
+429 .
+	gtok’s
+ = {
+
+430 (*)&
+cmd_¬p_dbg_¡ršg
+,
+
+431 (*)&
+cmd_¬p_dbg_æag
+,
+
+432 
+NULL
+,
+
+436 
+	scmd_¬p_tim”_»suÉ
+ {
+
+437 
+cmdlše_fixed_¡ršg_t
+ 
+	m¬±im”_¡r
+;
+
+438 
+ušt32_t
+ 
+	m¬±im”_v®
+;
+
+441 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_tim”_¡ršg
+ =
+
+442 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_tim”_»suÉ
+, 
+¬±im”_¡r
+,
+
+444 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¬p_tim”_v®
+ =
+
+445 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¬p_tim”_»suÉ
+, 
+¬±im”_v®
+, 
+UINT32
+);
+
+448 
+cmd_¬p_tim”_·r£
+(
+
+449 *
+·r£d_»suÉ
+,
+
+450 
+__©Œibu‹__
+((
+unu£d
+)è
+cmdlše
+ *
+þ
+,
+
+451 
+__¹e_unu£d
+ *
+d©a
+)
+
+453 
+cmd_¬p_tim”_»suÉ
+ *
+	g·¿ms
+ = 
+·r£d_»suÉ
+;
+
+454 if(
+	g·¿ms
+)
+
+456 
+£t_¬±imeout
+(
+·¿ms
+->
+¬±im”_v®
+);
+
+460 
+´štf
+("%s: P¬am i NULL",
+__FUNCTION__
+);
+
+464 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_¬p_tim”
+ = {
+
+465 .
+f
+ = 
+cmd_¬p_tim”_·r£
+,
+
+466 .
+	gd©a
+ = 
+NULL
+,
+
+467 .
+	gh–p_¡r
+ = "Timerƒxpiry val by def 10 sec",
+
+468 .
+	gtok’s
+ = {
+
+469 (*)&
+cmd_¬p_tim”_¡ršg
+,
+
+470 (*)&
+cmd_¬p_tim”_v®
+,
+
+471 
+NULL
+,
+
+483 
+	$pkt_bur¡_io_fÜw¬d
+(
+fwd_¡»am
+ *
+fs
+)
+
+485 
+¹e_mbuf
+ *
+pkts_bur¡
+[
+MAX_PKT_BURST
+];
+
+486 
+ušt16_t
+ 
+nb_rx
+;
+
+487 
+ušt16_t
+ 
+nb_tx
+;
+
+489 #ifdeà
+RTE_TEST_PMD_RECORD_CORE_CYCLES
+
+
+490 
+ušt64_t
+ 
+¡¬t_tsc
+;
+
+491 
+ušt64_t
+ 
+’d_tsc
+;
+
+492 
+ušt64_t
+ 
+cÜe_cyþes
+;
+
+495 #ifdeà
+RTE_TEST_PMD_RECORD_CORE_CYCLES
+
+
+496 
+¡¬t_tsc
+ = 
+	`¹e_rdtsc
+();
+
+502 
+nb_rx
+ = 
+	`¹e_‘h_rx_bur¡
+(
+fs
+->
+rx_pÜt
+, fs->
+rx_queue
+, 
+pkts_bur¡
+,
+
+503 
+nb_pkt_³r_bur¡
+);
+
+504 ià(
+	`uÆik–y
+(
+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‘s
+ +ð
+nb_rx
+;
+
+512 
+nb_tx
+ = 
+	`¹e_‘h_tx_bur¡
+(
+fs
+->
+tx_pÜt
+, fs->
+tx_queue
+, 
+pkts_bur¡
+, 
+nb_rx
+);
+
+513 
+fs
+->
+tx_·ck‘s
+ +ð
+nb_tx
+;
+
+515 #ifdeà
+RTE_TEST_PMD_RECORD_BURST_STATS
+
+
+516 
+fs
+->
+tx_bur¡_¡©s
+.
+pkt_bur¡_¥»ad
+[
+nb_tx
+]++;
+
+519 ià(
+	`uÆik–y
+(
+nb_tx
+ < 
+nb_rx
+)) {
+
+520 
+fs
+->
+fwd_drݳd
+ +ð(
+nb_rx
+ - 
+nb_tx
+);
+
+522 
+	`¹e_pktmbuf_ä“
+(
+pkts_bur¡
+[
+nb_tx
+]);
+
+523 } ++
+nb_tx
+ < 
+nb_rx
+);
+
+526 #ifdeà
+RTE_TEST_PMD_RECORD_CORE_CYCLES
+
+
+527 
+’d_tsc
+ = 
+	`¹e_rdtsc
+();
+
+528 
+cÜe_cyþes
+ = (
+’d_tsc
+ - 
+¡¬t_tsc
+);
+
+529 
+fs
+->
+cÜe_cyþes
+ = (
+ušt64_t
+) (fs->core_cycles + core_cycles);
+
+531 
+	}
+}
+
+534 
+fwd_’gše
+ 
+	gio_fwd_’gše
+ = {
+
+535 .
+fwd_mode_Çme
+ = "io",
+
+536 .
+	gpÜt_fwd_begš
+ = 
+NULL
+,
+
+537 .
+	gpÜt_fwd_’d
+ = 
+NULL
+,
+
+538 .
+	g·ck‘_fwd
+ = 
+pkt_bur¡_io_fÜw¬d
+,
+
+541 
+šlše
+ 
+	$´št_‘h”_addr
+(
+
+542 cÚ¡ *
+wh©
+,
+
+543 
+‘h”_addr
+ *
+‘h_addr
+)
+
+545 
+buf
+[
+ETHER_ADDR_FMT_SIZE
+];
+
+546 
+	`‘h”_fÜm©_addr
+(
+buf
+, 
+ETHER_ADDR_FMT_SIZE
+, 
+‘h_addr
+);
+
+547 
+	`´štf
+("%s%s", 
+wh©
+, 
+buf
+);
+
+548 
+	}
+}
+
+554 
+	$pkt_bur¡_»ûive
+(
+fwd_¡»am
+ *
+fs
+)
+
+556 
+¹e_mbuf
+ *
+pkts_bur¡
+[
+MAX_PKT_BURST
+];
+
+557 
+¹e_mbuf
+ *
+mb
+;
+
+558 
+‘h”_hdr
+ *
+‘h_hdr
+;
+
+559 
+ušt16_t
+ 
+‘h_ty³
+;
+
+560 
+ušt64_t
+ 
+Þ_æags
+;
+
+561 
+ušt16_t
+ 
+nb_rx
+;
+
+562 
+ušt16_t
+ 
+i
+, 
+·ck‘_ty³
+;
+
+563 
+ušt16_t
+ 
+is_’ÿpsuÏtiÚ
+;
+
+565 #ifdeà
+RTE_TEST_PMD_RECORD_CORE_CYCLES
+
+
+566 
+ušt64_t
+ 
+¡¬t_tsc
+;
+
+567 
+ušt64_t
+ 
+’d_tsc
+;
+
+568 
+ušt64_t
+ 
+cÜe_cyþes
+;
+
+571 #ifdeà
+RTE_TEST_PMD_RECORD_CORE_CYCLES
+
+
+572 
+¡¬t_tsc
+ = 
+	`¹e_rdtsc
+();
+
+578 
+nb_rx
+ = 
+	`¹e_‘h_rx_bur¡
+(
+fs
+->
+rx_pÜt
+, fs->
+rx_queue
+, 
+pkts_bur¡
+,
+
+579 
+nb_pkt_³r_bur¡
+);
+
+580 ià(
+	`uÆik–y
+(
+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‘s
+ +ð
+nb_rx
+;
+
+592 ià(
+v”bo£_Ëv–
+ > 0)
+
+593 
+	`´štf
+("port %u/queue %u:„eceived %u…ackets\n",
+
+594 (è
+fs
+->
+rx_pÜt
+,
+
+595 (è
+fs
+->
+rx_queue
+,
+
+596 (è
+nb_rx
+);
+
+597 
+i
+ = 0; i < 
+nb_rx
+; i++) {
+
+598 
+mb
+ = 
+pkts_bur¡
+[
+i
+];
+
+599 ià(
+v”bo£_Ëv–
+ == 0) {
+
+600 
+	`¹e_pktmbuf_ä“
+(
+mb
+);
+
+603 
+‘h_hdr
+ = 
+	`¹e_pktmbuf_mtod
+(
+mb
+, 
+‘h”_hdr
+ *);
+
+604 
+‘h_ty³
+ = 
+	`RTE_BE_TO_CPU_16
+(
+‘h_hdr
+->
+‘h”_ty³
+);
+
+605 
+Þ_æags
+ = 
+mb
+->ol_flags;
+
+606 
+·ck‘_ty³
+ = 
+mb
+->packet_type;
+
+607 
+is_’ÿpsuÏtiÚ
+ = 
+	`RTE_ETH_IS_TUNNEL_PKT
+(
+·ck‘_ty³
+);
+
+609 
+	`´št_‘h”_addr
+(" src=", &
+‘h_hdr
+->
+s_addr
+);
+
+610 
+	`´št_‘h”_addr
+(" - d¡=", &
+‘h_hdr
+->
+d_addr
+);
+
+611 
+	`´štf
+(" -ype=0x%04x -†ength=%u -‚b_segs=%d",
+
+612 
+‘h_ty³
+, (è
+mb
+->
+pkt_Ën
+,
+
+613 ()
+mb
+->
+nb_£gs
+);
+
+614 ià(
+Þ_æags
+ & 
+PKT_RX_RSS_HASH
+) {
+
+615 
+	`´štf
+(" - RSS hash=0x%x", ()
+
+616 
+mb
+->
+hash
+.
+rss
+);
+
+617 
+	`´štf
+(" - RSS queue=0x%x", ()
+
+618 
+fs
+->
+rx_queue
+);
+
+619 } ià(
+Þ_æags
+ & 
+PKT_RX_FDIR
+) {
+
+620 
+	`´štf
+(" - FDIR matched ");
+
+621 ià(
+Þ_æags
+ & 
+PKT_RX_FDIR_ID
+)
+
+622 
+	`´štf
+("ID=0x%x",
+
+623 
+mb
+->
+hash
+.
+fdœ
+.
+hi
+);
+
+624 ià(
+Þ_æags
+ & 
+PKT_RX_FDIR_FLX
+)
+
+625 
+	`´štf
+("flex bytes=0x%08x %08x",
+
+626 
+mb
+->
+hash
+.
+fdœ
+.
+hi
+, mb->hash.fdœ.
+lo
+);
+
+628 
+	`´štf
+("hash=0x%x ID=0x%x ",
+
+629 
+mb
+->
+hash
+.
+fdœ
+.hash, mb->hash.fdœ.
+id
+);
+
+631 ià(
+Þ_æags
+ & 
+PKT_RX_VLAN_PKT
+)
+
+632 
+	`´štf
+(" - VLANci=0x%x", 
+mb
+->
+vÏn_tci
+);
+
+633 ià(
+Þ_æags
+ & 
+PKT_RX_QINQ_PKT
+)
+
+634 
+	`´štf
+(" - QinQ VLANci=0x%x, VLANci outer=0x%x",
+
+635 
+mb
+->
+vÏn_tci
+, mb->
+vÏn_tci_ou‹r
+);
+
+636 ià(
+mb
+->
+·ck‘_ty³
+) {
+
+637 
+ušt32_t
+ 
+±y³
+;
+
+640 
+±y³
+ = 
+mb
+->
+·ck‘_ty³
+ & 
+RTE_PTYPE_L2_MASK
+;
+
+641 
+±y³
+) {
+
+642 
+RTE_PTYPE_L2_ETHER
+:
+
+643 
+	`´štf
+(" - (outer) L2ype: ETHER");
+
+645 
+RTE_PTYPE_L2_ETHER_TIMESYNC
+:
+
+646 
+	`´štf
+(" - (outer) L2ype: ETHER_Timesync");
+
+648 
+RTE_PTYPE_L2_ETHER_ARP
+:
+
+649 
+	`´štf
+(" - (outer) L2ype: ETHER_ARP");
+
+651 
+RTE_PTYPE_L2_ETHER_LLDP
+:
+
+652 
+	`´štf
+(" - (outer) L2ype: ETHER_LLDP");
+
+655 
+	`´štf
+(" - (outer) L2ype: Unknown");
+
+660 
+±y³
+ = 
+mb
+->
+·ck‘_ty³
+ & 
+RTE_PTYPE_L3_MASK
+;
+
+661 
+±y³
+) {
+
+662 
+RTE_PTYPE_L3_IPV4
+:
+
+663 
+	`´štf
+(" - (outer) L3ype: IPV4");
+
+665 
+RTE_PTYPE_L3_IPV4_EXT
+:
+
+666 
+	`´štf
+(" - (outer) L3ype: IPV4_EXT");
+
+668 
+RTE_PTYPE_L3_IPV6
+:
+
+669 
+	`´štf
+(" - (outer) L3ype: IPV6");
+
+671 
+RTE_PTYPE_L3_IPV4_EXT_UNKNOWN
+:
+
+672 
+	`´štf
+(" - (outer) L3ype: IPV4_EXT_UNKNOWN");
+
+674 
+RTE_PTYPE_L3_IPV6_EXT
+:
+
+675 
+	`´štf
+(" - (outer) L3ype: IPV6_EXT");
+
+677 
+RTE_PTYPE_L3_IPV6_EXT_UNKNOWN
+:
+
+678 
+	`´štf
+(" - (outer) L3ype: IPV6_EXT_UNKNOWN");
+
+681 
+	`´štf
+(" - (outer) L3ype: Unknown");
+
+686 
+±y³
+ = 
+mb
+->
+·ck‘_ty³
+ & 
+RTE_PTYPE_L4_MASK
+;
+
+687 
+±y³
+) {
+
+688 
+RTE_PTYPE_L4_TCP
+:
+
+689 
+	`´štf
+(" - (outer) L4ype: TCP");
+
+691 
+RTE_PTYPE_L4_UDP
+:
+
+692 
+	`´štf
+(" - (outer) L4ype: UDP");
+
+694 
+RTE_PTYPE_L4_FRAG
+:
+
+695 
+	`´štf
+(" - (outer) L4ype: L4_FRAG");
+
+697 
+RTE_PTYPE_L4_SCTP
+:
+
+698 
+	`´štf
+(" - (outer) L4ype: SCTP");
+
+700 
+RTE_PTYPE_L4_ICMP
+:
+
+701 
+	`´štf
+(" - (outer) L4ype: ICMP");
+
+703 
+RTE_PTYPE_L4_NONFRAG
+:
+
+704 
+	`´štf
+(" - (outer) L4ype: L4_NONFRAG");
+
+707 
+	`´štf
+(" - (outer) L4ype: Unknown");
+
+712 
+±y³
+ = 
+mb
+->
+·ck‘_ty³
+ & 
+RTE_PTYPE_TUNNEL_MASK
+;
+
+713 
+±y³
+) {
+
+714 
+RTE_PTYPE_TUNNEL_IP
+:
+
+715 
+	`´štf
+(" - Tunnelype: IP");
+
+717 
+RTE_PTYPE_TUNNEL_GRE
+:
+
+718 
+	`´štf
+(" - Tunnelype: GRE");
+
+720 
+RTE_PTYPE_TUNNEL_VXLAN
+:
+
+721 
+	`´štf
+(" - Tunnelype: VXLAN");
+
+723 
+RTE_PTYPE_TUNNEL_NVGRE
+:
+
+724 
+	`´štf
+(" - Tunnelype: NVGRE");
+
+726 
+RTE_PTYPE_TUNNEL_GENEVE
+:
+
+727 
+	`´štf
+(" - Tunnelype: GENEVE");
+
+729 
+RTE_PTYPE_TUNNEL_GRENAT
+:
+
+730 
+	`´štf
+(" - Tunnelype: GRENAT");
+
+733 
+	`´štf
+(" - Tunnelype: Unknown");
+
+738 
+±y³
+ = 
+mb
+->
+·ck‘_ty³
+ & 
+RTE_PTYPE_INNER_L2_MASK
+;
+
+739 
+±y³
+) {
+
+740 
+RTE_PTYPE_INNER_L2_ETHER
+:
+
+741 
+	`´štf
+(" - Inner L2ype: ETHER");
+
+743 
+RTE_PTYPE_INNER_L2_ETHER_VLAN
+:
+
+744 
+	`´štf
+(" - Inner L2ype: ETHER_VLAN");
+
+747 
+	`´štf
+(" - Inner L2ype: Unknown");
+
+751 
+±y³
+ = 
+mb
+->
+·ck‘_ty³
+ & 
+RTE_PTYPE_INNER_L3_MASK
+;
+
+752 
+±y³
+) {
+
+753 
+RTE_PTYPE_INNER_L3_IPV4
+:
+
+754 
+	`´štf
+(" - Inner L3ype: IPV4");
+
+756 
+RTE_PTYPE_INNER_L3_IPV4_EXT
+:
+
+757 
+	`´štf
+(" - Inner L3ype: IPV4_EXT");
+
+759 
+RTE_PTYPE_INNER_L3_IPV6
+:
+
+760 
+	`´štf
+(" - Inner L3ype: IPV6");
+
+762 
+RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN
+:
+
+763 
+	`´štf
+(" - Inner L3ype: "
+
+766 
+RTE_PTYPE_INNER_L3_IPV6_EXT
+:
+
+767 
+	`´štf
+(" - Inner L3ype: IPV6_EXT");
+
+769 
+RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN
+:
+
+770 
+	`´štf
+(" - Inner L3ype: "
+
+774 
+	`´štf
+(" - Inner L3ype: Unknown");
+
+779 
+±y³
+ = 
+mb
+->
+·ck‘_ty³
+ & 
+RTE_PTYPE_INNER_L4_MASK
+;
+
+780 
+±y³
+) {
+
+781 
+RTE_PTYPE_INNER_L4_TCP
+:
+
+782 
+	`´štf
+(" - Inner L4ype: TCP");
+
+784 
+RTE_PTYPE_INNER_L4_UDP
+:
+
+785 
+	`´štf
+(" - Inner L4ype: UDP");
+
+787 
+RTE_PTYPE_INNER_L4_FRAG
+:
+
+788 
+	`´štf
+(" - Inner L4ype: L4_FRAG");
+
+790 
+RTE_PTYPE_INNER_L4_SCTP
+:
+
+791 
+	`´štf
+(" - Inner L4ype: SCTP");
+
+793 
+RTE_PTYPE_INNER_L4_ICMP
+:
+
+794 
+	`´štf
+(" - Inner L4ype: ICMP");
+
+796 
+RTE_PTYPE_INNER_L4_NONFRAG
+:
+
+797 
+	`´štf
+(" - Inner L4ype: L4_NONFRAG");
+
+800 
+	`´štf
+(" - Inner L4ype: Unknown");
+
+803 
+	`´štf
+("\n");
+
+805 
+	`´štf
+("Unknown…acketype\n");
+
+806 ià(
+is_’ÿpsuÏtiÚ
+) {
+
+807 
+v4_hdr
+ *ipv4_hdr;
+
+808 
+v6_hdr
+ *ipv6_hdr;
+
+809 
+udp_hdr
+ *udp_hdr;
+
+810 
+ušt8_t
+ 
+l2_Ën
+;
+
+811 
+ušt8_t
+ 
+l3_Ën
+;
+
+812 
+ušt8_t
+ 
+l4_Ën
+;
+
+813 
+ušt8_t
+ 
+l4_´Ùo
+;
+
+814 
+vxÏn_hdr
+ *vxlan_hdr;
+
+816 
+l2_Ën
+ = (
+‘h”_hdr
+);
+
+819 ià(
+	`RTE_ETH_IS_IPV4_HDR
+(
+·ck‘_ty³
+)) {
+
+820 
+l3_Ën
+ = (
+v4_hdr
+);
+
+821 
+v4_hdr
+ = 
+	`¹e_pktmbuf_mtod_off£t
+(
+mb
+,
+
+822 
+v4_hdr
+ *,
+
+823 
+l2_Ën
+);
+
+824 
+l4_´Ùo
+ = 
+v4_hdr
+->
+Ãxt_´Ùo_id
+;
+
+826 
+l3_Ën
+ = (
+v6_hdr
+);
+
+827 
+v6_hdr
+ = 
+	`¹e_pktmbuf_mtod_off£t
+(
+mb
+,
+
+828 
+v6_hdr
+ *,
+
+829 
+l2_Ën
+);
+
+830 
+l4_´Ùo
+ = 
+v6_hdr
+->
+´Ùo
+;
+
+832 ià(
+l4_´Ùo
+ =ð
+IPPROTO_UDP
+) {
+
+833 
+udp_hdr
+ = 
+	`¹e_pktmbuf_mtod_off£t
+(
+mb
+,
+
+834 
+udp_hdr
+ *,
+
+835 
+l2_Ën
+ + 
+l3_Ën
+);
+
+836 
+l4_Ën
+ = (
+udp_hdr
+);
+
+837 
+vxÏn_hdr
+ = 
+	`¹e_pktmbuf_mtod_off£t
+(
+mb
+,
+
+838 
+vxÏn_hdr
+ *,
+
+839 
+l2_Ën
+ + 
+l3_Ën
+ + 
+l4_Ën
+);
+
+841 
+	`´štf
+(" - VXLAN…acket:…acketype =%d, "
+
+843 
+·ck‘_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 
+	`´štf
+(" - Reûivqueue=0x%x", (è
+fs
+->
+rx_queue
+);
+
+850 
+	`´štf
+("\n");
+
+851 ià(
+Þ_æags
+ != 0) {
+
+852 
+rxf
+;
+
+853 cÚ¡ *
+Çme
+;
+
+855 
+rxf
+ = 0;„xà< (
+mb
+->
+Þ_æags
+) * 8;„xf++) {
+
+856 ià((
+Þ_æags
+ & (1ULL << 
+rxf
+)) == 0)
+
+858 
+Çme
+ = 
+	`¹e_g‘_rx_Þ_æag_Çme
+(1ULL << 
+rxf
+);
+
+859 ià(
+Çme
+ =ð
+NULL
+)
+
+861 
+	`´štf
+(" %s\n", 
+Çme
+);
+
+864 
+	`¹e_pktmbuf_ä“
+(
+mb
+);
+
+867 #ifdeà
+RTE_TEST_PMD_RECORD_CORE_CYCLES
+
+
+868 
+’d_tsc
+ = 
+	`¹e_rdtsc
+();
+
+869 
+cÜe_cyþes
+ = (
+’d_tsc
+ - 
+¡¬t_tsc
+);
+
+870 
+fs
+->
+cÜe_cyþes
+ = (
+ušt64_t
+) (fs->core_cycles + core_cycles);
+
+872 
+	}
+}
+
+874 
+fwd_’gše
+ 
+	grx_Úly_’gše
+ = {
+
+875 .
+fwd_mode_Çme
+ = "rxonly",
+
+876 .
+	gpÜt_fwd_begš
+ = 
+NULL
+,
+
+877 .
+	gpÜt_fwd_’d
+ = 
+NULL
+,
+
+878 .
+	g·ck‘_fwd
+ = 
+pkt_bur¡_»ûive
+,
+
+882 
+	scmd_£t_fwd_mode_»suÉ
+ {
+
+883 
+cmdlše_fixed_¡ršg_t
+ 
+	m£t
+;
+
+884 
+cmdlše_fixed_¡ršg_t
+ 
+	mfwd
+;
+
+885 
+cmdlše_fixed_¡ršg_t
+ 
+	mmode
+;
+
+891 
+fwd_’gše
+ *
+	gfwd_’gšes
+[] = {
+
+892 &
+io_fwd_’gše
+,
+
+894 &
+mac_fwd_’gše
+,
+
+895 &
+mac_»Œy_fwd_’gše
+,
+
+896 &
+mac_sw­_’gše
+,
+
+897 &
+æow_g’_’gše
+,
+
+899 &
+rx_Úly_’gše
+,
+
+901 &
+tx_Úly_’gše
+,
+
+902 &
+csum_fwd_’gše
+,
+
+903 &
+icmp_echo_’gše
+,
+
+904 #ifdeà
+RTE_LIBRTE_IEEE1588
+
+
+905 &
+›“1588_fwd_’gše
+,
+
+908 
+NULL
+,
+
+911 
+fwd_’gše
+ *
+	gcur_fwd_’g
+ = &
+io_fwd_’gše
+;
+
+913 
+	$£t_pkt_fÜw¬dšg_mode
+(cÚ¡ *
+fwd_mode_Çme
+)
+
+915 
+fwd_’gše
+ *
+fwd_’g
+;
+
+916 
+i
+;
+
+918 
+i
+ = 0;
+
+919 (
+fwd_’g
+ = 
+fwd_’gšes
+[
+i
+]è!ð
+NULL
+) {
+
+920 ià(!
+	`¡rcmp
+(
+fwd_’g
+->
+fwd_mode_Çme
+, fwd_mode_name)) {
+
+921 
+	`´štf
+("Set %s…acket forwarding mode\n",
+
+922 
+fwd_mode_Çme
+);
+
+923 
+cur_fwd_’g
+ = 
+fwd_’g
+;
+
+926 
+i
+++;
+
+928 
+	`´štf
+("Inv®id % ·ck‘ fÜw¬dšg mode\n", 
+fwd_mode_Çme
+);
+
+929 
+	}
+}
+
+931 
+cmd_£t_fwd_mode_·r£d
+(*
+·r£d_»suÉ
+,
+
+932 
+__©Œibu‹__
+((
+unu£d
+)è
+cmdlše
+ *
+þ
+,
+
+933 
+__©Œibu‹__
+((
+unu£d
+)è*
+d©a
+)
+
+935 
+cmd_£t_fwd_mode_»suÉ
+ *
+	g»s
+ = 
+·r£d_»suÉ
+;
+
+937 
+£t_pkt_fÜw¬dšg_mode
+(
+»s
+->
+mode
+);
+
+940 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£tfwd_£t
+ =
+
+941 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_fwd_mode_»suÉ
+, 
+£t
+, "set");
+
+942 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£tfwd_fwd
+ =
+
+943 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_fwd_mode_»suÉ
+, 
+fwd
+, "fwd");
+
+944 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£tfwd_mode
+ =
+
+945 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_fwd_mode_»suÉ
+, 
+mode
+,
+
+948 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_£t_fwd_mode
+ = {
+
+949 .
+f
+ = 
+cmd_£t_fwd_mode_·r£d
+,
+
+950 .
+	gd©a
+ = 
+NULL
+,
+
+951 .
+	gh–p_¡r
+ = 
+NULL
+,
+
+952 .
+	gtok’s
+ = {
+
+953 (*)&
+cmd_£tfwd_£t
+,
+
+954 (*)&
+cmd_£tfwd_fwd
+,
+
+955 (*)&
+cmd_£tfwd_mode
+,
+
+956 
+NULL
+,
+
+962 
+ušt16_t
+
+
+963 
+	$¡r2æowty³
+(*
+¡ršg
+)
+
+965 
+ušt8_t
+ 
+i
+ = 0;
+
+967 
+¡r
+[32];
+
+968 
+ušt16_t
+ 
+ty³
+;
+
+969 } 
+æowty³_¡r
+[] = {
+
+970 {"¿w", 
+RTE_ETH_FLOW_RAW
+},
+
+971 {"v4", 
+RTE_ETH_FLOW_IPV4
+},
+
+972 {"v4-äag", 
+RTE_ETH_FLOW_FRAG_IPV4
+},
+
+973 {"v4-tý", 
+RTE_ETH_FLOW_NONFRAG_IPV4_TCP
+},
+
+974 {"v4-udp", 
+RTE_ETH_FLOW_NONFRAG_IPV4_UDP
+},
+
+975 {"v4-sùp", 
+RTE_ETH_FLOW_NONFRAG_IPV4_SCTP
+},
+
+976 {"v4-Ùh”", 
+RTE_ETH_FLOW_NONFRAG_IPV4_OTHER
+},
+
+977 {"v6", 
+RTE_ETH_FLOW_IPV6
+},
+
+978 {"v6-äag", 
+RTE_ETH_FLOW_FRAG_IPV6
+},
+
+979 {"v6-tý", 
+RTE_ETH_FLOW_NONFRAG_IPV6_TCP
+},
+
+980 {"v6-udp", 
+RTE_ETH_FLOW_NONFRAG_IPV6_UDP
+},
+
+981 {"v6-sùp", 
+RTE_ETH_FLOW_NONFRAG_IPV6_SCTP
+},
+
+982 {"v6-Ùh”", 
+RTE_ETH_FLOW_NONFRAG_IPV6_OTHER
+},
+
+983 {"l2_·ylßd", 
+RTE_ETH_FLOW_L2_PAYLOAD
+},
+
+986 
+i
+ = 0; i < 
+	`RTE_DIM
+(
+æowty³_¡r
+); i++) {
+
+987 ià(!
+	`¡rcmp
+(
+æowty³_¡r
+[
+i
+].
+¡r
+, 
+¡ršg
+))
+
+988  
+æowty³_¡r
+[
+i
+].
+ty³
+;
+
+990  
+RTE_ETH_FLOW_UNKNOWN
+;
+
+991 
+	}
+}
+
+993 
+šlše
+ 
+
+994 
+	$·r£_æexby‹s
+(cÚ¡ *
+q_¬g
+, 
+ušt8_t
+ *
+æexby‹s
+, 
+ušt16_t
+ 
+max_num
+)
+
+996 
+s
+[256];
+
+997 cÚ¡ *
+p
+, *
+p0
+ = 
+q_¬g
+;
+
+998 *
+’d
+;
+
+999 
+št_æd
+;
+
+1000 *
+¡r_æd
+[
+max_num
+];
+
+1001 
+i
+;
+
+1002 
+size
+;
+
+1003 
+»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
+ >ð(
+s
+))
+
+1017 
+	`¢´štf
+(
+s
+, (s), "%.*s", 
+size
+, 
+p
+);
+
+1018 
+»t
+ = 
+	`¹e_¡r¥l™
+(
+s
+, (s), 
+¡r_æd
+, 
+max_num
+, ',');
+
+1019 ià(
+»t
+ < 0 ||„‘ > 
+max_num
+)
+
+1021 
+i
+ = 0; i < 
+»t
+; i++) {
+
+1022 
+Ӽo
+ = 0;
+
+1023 
+št_æd
+ = 
+	`¡¹oul
+(
+¡r_æd
+[
+i
+], &
+’d
+, 0);
+
+1024 ià(
+Ӽo
+ !ð0 || *
+’d
+ !ð'\0' || 
+št_æd
+ > 
+UINT8_MAX
+)
+
+1026 
+æexby‹s
+[
+i
+] = (
+ušt8_t
+)
+št_æd
+;
+
+1028  
+»t
+;
+
+1029 
+	}
+}
+
+1032 
+	scmd_æow_dœeùÜ_»suÉ
+ {
+
+1033 
+cmdlše_fixed_¡ršg_t
+ 
+	mæow_dœeùÜ_fž‹r
+;
+
+1034 
+ušt8_t
+ 
+	mpÜt_id
+;
+
+1035 
+cmdlše_fixed_¡ršg_t
+ 
+	mmode
+;
+
+1036 
+cmdlše_fixed_¡ršg_t
+ 
+	mmode_v®ue
+;
+
+1037 
+cmdlše_fixed_¡ršg_t
+ 
+	mÝs
+;
+
+1038 
+cmdlše_fixed_¡ršg_t
+ 
+	mæow
+;
+
+1039 
+cmdlše_fixed_¡ršg_t
+ 
+	mæow_ty³
+;
+
+1040 
+cmdlše_fixed_¡ršg_t
+ 
+	m‘h”
+;
+
+1041 
+ušt16_t
+ 
+	m‘h”_ty³
+;
+
+1042 
+cmdlše_fixed_¡ršg_t
+ 
+	m¤c
+;
+
+1043 
+cmdlše_addr_t
+ 
+	m_¤c
+;
+
+1044 
+ušt16_t
+ 
+	mpÜt_¤c
+;
+
+1045 
+cmdlše_fixed_¡ršg_t
+ 
+	md¡
+;
+
+1046 
+cmdlše_addr_t
+ 
+	m_d¡
+;
+
+1047 
+ušt16_t
+ 
+	mpÜt_d¡
+;
+
+1048 
+cmdlše_fixed_¡ršg_t
+ 
+	mv”ify_g
+;
+
+1049 
+ušt32_t
+ 
+	mv”ify_g_v®ue
+;
+
+1050 
+cmdlše_addr_t
+ 
+	mtos
+;
+
+1051 
+ušt8_t
+ 
+	mtos_v®ue
+;
+
+1052 
+cmdlše_addr_t
+ 
+	m´Ùo
+;
+
+1053 
+ušt8_t
+ 
+	m´Ùo_v®ue
+;
+
+1054 
+cmdlše_addr_t
+ 
+	m‰l
+;
+
+1055 
+ušt8_t
+ 
+	m‰l_v®ue
+;
+
+1056 
+cmdlše_fixed_¡ršg_t
+ 
+	mvÏn
+;
+
+1057 
+ušt16_t
+ 
+	mvÏn_v®ue
+;
+
+1058 
+cmdlše_fixed_¡ršg_t
+ 
+	mæexby‹s
+;
+
+1059 
+cmdlše_fixed_¡ršg_t
+ 
+	mæexby‹s_v®ue
+;
+
+1060 
+cmdlše_fixed_¡ršg_t
+ 
+	mpf_vf
+;
+
+1061 
+cmdlše_fixed_¡ršg_t
+ 
+	mdrÝ
+;
+
+1062 
+cmdlše_fixed_¡ršg_t
+ 
+	mqueue
+;
+
+1063 
+ušt16_t
+ 
+	mqueue_id
+;
+
+1064 
+cmdlše_fixed_¡ršg_t
+ 
+	mfd_id
+;
+
+1065 
+ušt32_t
+ 
+	mfd_id_v®ue
+;
+
+1066 
+cmdlše_fixed_¡ršg_t
+ 
+	mmac
+;
+
+1067 
+‘h”_addr
+ 
+	mmac_addr
+;
+
+1068 
+cmdlše_fixed_¡ršg_t
+ 
+	mtu–
+;
+
+1069 
+cmdlše_fixed_¡ršg_t
+ 
+	mtu–_ty³
+;
+
+1070 
+cmdlše_fixed_¡ršg_t
+ 
+	mtu–_id
+;
+
+1071 
+ušt32_t
+ 
+	mtu–_id_v®ue
+;
+
+1075 
+cmd_æow_dœeùÜ_fž‹r_·r£d
+(*
+·r£d_»suÉ
+,
+
+1076 
+__©Œibu‹__
+((
+unu£d
+)è
+cmdlše
+ *
+þ
+,
+
+1077 
+__©Œibu‹__
+((
+unu£d
+)è*
+d©a
+)
+
+1079 
+cmd_æow_dœeùÜ_»suÉ
+ *
+	g»s
+ = 
+·r£d_»suÉ
+;
+
+1080 
+¹e_‘h_fdœ_fž‹r
+ 
+	g’Œy
+;
+
+1081 
+ušt8_t
+ 
+	gæexby‹s
+[
+RTE_ETH_FDIR_MAX_FLEXLEN
+];
+
+1082 *
+	g’d
+;
+
+1083 
+	gvf_id
+;
+
+1084 
+	g»t
+ = 0;
+
+1086 ià(
+	g’abË_hwlb
+) {
+
+1087 
+´štf
+("Hash Filter is‡lready Defined !\n");
+
+1088 
+´štf
+("Please undefine HWLD flag‡nd define "
+
+1093 
+	g»t
+ = 
+¹e_‘h_dev_fž‹r_suµÜ‹d
+(
+»s
+->
+pÜt_id
+, 
+RTE_ETH_FILTER_FDIR
+);
+
+1094 ià(
+	g»t
+ < 0) {
+
+1095 
+´štf
+("flow director is‚ot supported on…ort %u.\n",
+
+1096 
+»s
+->
+pÜt_id
+);
+
+1099 
+mem£t
+(
+æexby‹s
+, 0, (flexbytes));
+
+1100 
+mem£t
+(&
+’Œy
+, 0, (
+¹e_‘h_fdœ_fž‹r
+));
+
+1102 ià(
+	gfdœ_cÚf
+.
+	gmode
+ =ð
+RTE_FDIR_MODE_PERFECT_MAC_VLAN
+) {
+
+1103 ià(
+¡rcmp
+(
+»s
+->
+mode_v®ue
+, "MAC-VLAN")) {
+
+1104 
+´štf
+("Please set modeo MAC-VLAN.\n");
+
+1107 } ià(
+	gfdœ_cÚf
+.
+	gmode
+ =ð
+RTE_FDIR_MODE_PERFECT_TUNNEL
+) {
+
+1108 ià(
+¡rcmp
+(
+»s
+->
+mode_v®ue
+, "Tunnel")) {
+
+1109 
+´štf
+("Please set modeo Tunnel.\n");
+
+1113 ià(
+¡rcmp
+(
+»s
+->
+mode_v®ue
+, "IP")) {
+
+1114 
+´štf
+("Please set modeo IP.\n");
+
+1119 
+	g’Œy
+.
+	gšput
+.
+	gæow_ty³
+ = 
+¡r2æowty³
+(
+»s
+->
+æow_ty³
+);
+
+1122 
+	g»t
+ = 
+·r£_æexby‹s
+(
+»s
+->
+æexby‹s_v®ue
+,
+
+1123 
+æexby‹s
+,
+
+1124 
+RTE_ETH_FDIR_MAX_FLEXLEN
+);
+
+1125 ià(
+	g»t
+ < 0) {
+
+1126 
+´štf
+("error: Cannot…arse flexbytes input.\n");
+
+1130 
+	g’Œy
+.
+	gšput
+.
+	gæow_ty³
+) {
+
+1131 
+	gRTE_ETH_FLOW_FRAG_IPV4
+:
+
+1132 
+RTE_ETH_FLOW_NONFRAG_IPV4_OTHER
+:
+
+1133 
+’Œy
+.
+šput
+.
+æow
+.
+4_æow
+.
+´Ùo
+ = 
+»s
+->
+´Ùo_v®ue
+;
+
+1134 
+	gRTE_ETH_FLOW_NONFRAG_IPV4_UDP
+:
+
+1135 
+RTE_ETH_FLOW_NONFRAG_IPV4_TCP
+:
+
+1136 
+IPV4_ADDR_TO_UINT
+(
+»s
+->
+_d¡
+,
+
+1137 
+’Œy
+.
+šput
+.
+æow
+.
+4_æow
+.
+d¡_
+);
+
+1138 
+IPV4_ADDR_TO_UINT
+(
+»s
+->
+_¤c
+,
+
+1139 
+’Œy
+.
+šput
+.
+æow
+.
+4_æow
+.
+¤c_
+);
+
+1140 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	g4_æow
+.
+	gtos
+ = 
+»s
+->
+tos_v®ue
+;
+
+1141 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	g4_æow
+.
+	g‰l
+ = 
+»s
+->
+‰l_v®ue
+;
+
+1143 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gudp4_æow
+.
+	gd¡_pÜt
+ =
+
+1144 
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_d¡
+);
+
+1145 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gudp4_æow
+.
+	g¤c_pÜt
+ =
+
+1146 
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_¤c
+);
+
+1149 
+	gRTE_ETH_FLOW_NONFRAG_IPV4_SCTP
+:
+
+1150 
+IPV4_ADDR_TO_UINT
+(
+»s
+->
+_d¡
+,
+
+1151 
+’Œy
+.
+šput
+.
+æow
+.
+sùp4_æow
+.
+
+.
+d¡_
+);
+
+1152 
+IPV4_ADDR_TO_UINT
+(
+»s
+->
+_¤c
+,
+
+1153 
+’Œy
+.
+šput
+.
+æow
+.
+sùp4_æow
+.
+
+.
+¤c_
+);
+
+1154 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	g4_æow
+.
+	gtos
+ = 
+»s
+->
+tos_v®ue
+;
+
+1155 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	g4_æow
+.
+	g‰l
+ = 
+»s
+->
+‰l_v®ue
+;
+
+1157 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gsùp4_æow
+.
+	gd¡_pÜt
+ =
+
+1158 
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_d¡
+);
+
+1159 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gsùp4_æow
+.
+	g¤c_pÜt
+ =
+
+1160 
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_¤c
+);
+
+1161 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gsùp4_æow
+.
+	gv”ify_g
+ =
+
+1162 
+¹e_ýu_to_be_32
+(
+»s
+->
+v”ify_g_v®ue
+);
+
+1165 
+	gRTE_ETH_FLOW_FRAG_IPV6
+:
+
+1166 
+RTE_ETH_FLOW_NONFRAG_IPV6_OTHER
+:
+
+1167 
+’Œy
+.
+šput
+.
+æow
+.
+v6_æow
+.
+´Ùo
+ = 
+»s
+->
+´Ùo_v®ue
+;
+
+1168 
+	gRTE_ETH_FLOW_NONFRAG_IPV6_UDP
+:
+
+1169 
+RTE_ETH_FLOW_NONFRAG_IPV6_TCP
+:
+
+1170 
+IPV6_ADDR_TO_ARRAY
+(
+»s
+->
+_d¡
+,
+
+1171 
+’Œy
+.
+šput
+.
+æow
+.
+v6_æow
+.
+d¡_
+);
+
+1172 
+IPV6_ADDR_TO_ARRAY
+(
+»s
+->
+_¤c
+,
+
+1173 
+’Œy
+.
+šput
+.
+æow
+.
+v6_æow
+.
+¤c_
+);
+
+1174 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gv6_æow
+.
+	gtc
+ = 
+»s
+->
+tos_v®ue
+;
+
+1175 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gv6_æow
+.
+	ghÝ_lim™s
+ = 
+»s
+->
+‰l_v®ue
+;
+
+1177 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gudp6_æow
+.
+	gd¡_pÜt
+ =
+
+1178 
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_d¡
+);
+
+1179 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gudp6_æow
+.
+	g¤c_pÜt
+ =
+
+1180 
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_¤c
+);
+
+1183 
+	gRTE_ETH_FLOW_NONFRAG_IPV6_SCTP
+:
+
+1184 
+IPV6_ADDR_TO_ARRAY
+(
+»s
+->
+_d¡
+,
+
+1185 
+’Œy
+.
+šput
+.
+æow
+.
+sùp6_æow
+.
+
+.
+d¡_
+);
+
+1186 
+IPV6_ADDR_TO_ARRAY
+(
+»s
+->
+_¤c
+,
+
+1187 
+’Œy
+.
+šput
+.
+æow
+.
+sùp6_æow
+.
+
+.
+¤c_
+);
+
+1188 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gv6_æow
+.
+	gtc
+ = 
+»s
+->
+tos_v®ue
+;
+
+1189 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gv6_æow
+.
+	ghÝ_lim™s
+ = 
+»s
+->
+‰l_v®ue
+;
+
+1191 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gsùp6_æow
+.
+	gd¡_pÜt
+ =
+
+1192 
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_d¡
+);
+
+1193 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gsùp6_æow
+.
+	g¤c_pÜt
+ =
+
+1194 
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_¤c
+);
+
+1195 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gsùp6_æow
+.
+	gv”ify_g
+ =
+
+1196 
+¹e_ýu_to_be_32
+(
+»s
+->
+v”ify_g_v®ue
+);
+
+1198 
+	gRTE_ETH_FLOW_L2_PAYLOAD
+:
+
+1199 
+’Œy
+.
+šput
+.
+æow
+.
+l2_æow
+.
+‘h”_ty³
+ =
+
+1200 
+¹e_ýu_to_be_16
+(
+»s
+->
+‘h”_ty³
+);
+
+1206 ià(
+	gfdœ_cÚf
+.
+	gmode
+ =ð
+RTE_FDIR_MODE_PERFECT_MAC_VLAN
+)
+
+1207 ()
+¹e_memýy
+(&
+’Œy
+.
+šput
+.
+æow
+.
+mac_vÏn_æow
+.
+mac_addr
+,
+
+1208 &
+»s
+->
+mac_addr
+,
+
+1209 (
+‘h”_addr
+));
+
+1211 ià(
+	gfdœ_cÚf
+.
+	gmode
+ =ð
+RTE_FDIR_MODE_PERFECT_TUNNEL
+) {
+
+1212 ()
+¹e_memýy
+(&
+’Œy
+.
+šput
+.
+æow
+.
+tu–_æow
+.
+mac_addr
+,
+
+1213 &
+»s
+->
+mac_addr
+,
+
+1214 (
+‘h”_addr
+));
+
+1215 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gtu–_æow
+.
+	gtu–_ty³
+ =
+
+1216 
+¡r2fdœ_tu–ty³
+(
+»s
+->
+tu–_ty³
+);
+
+1217 
+	g’Œy
+.
+	gšput
+.
+	gæow
+.
+	gtu–_æow
+.
+	gtu–_id
+ =
+
+1218 
+¹e_ýu_to_be_32
+(
+»s
+->
+tu–_id_v®ue
+);
+
+1222 ()
+¹e_memýy
+(
+’Œy
+.
+šput
+.
+æow_ext
+.
+æexby‹s
+,
+
+1223 
+æexby‹s
+,
+
+1224 
+RTE_ETH_FDIR_MAX_FLEXLEN
+);
+
+1226 
+	g’Œy
+.
+	gšput
+.
+	gæow_ext
+.
+	gvÏn_tci
+ = 
+¹e_ýu_to_be_16
+(
+»s
+->
+vÏn_v®ue
+);
+
+1228 
+	g’Œy
+.
+	gaùiÚ
+.
+	gæex_off
+ = 0;
+
+1229 ià(!
+¡rcmp
+(
+»s
+->
+drÝ
+, "drop"))
+
+1230 
+	g’Œy
+.
+	gaùiÚ
+.
+	gbehaviÜ
+ = 
+RTE_ETH_FDIR_REJECT
+;
+
+1232 
+	g’Œy
+.
+	gaùiÚ
+.
+	gbehaviÜ
+ = 
+RTE_ETH_FDIR_ACCEPT
+;
+
+1234 ià(!
+¡rcmp
+(
+»s
+->
+pf_vf
+, "pf"))
+
+1235 
+	g’Œy
+.
+	gšput
+.
+	gæow_ext
+.
+	gis_vf
+ = 0;
+
+1236 ià(!
+¡ºcmp
+(
+»s
+->
+pf_vf
+, "vf", 2)) {
+
+1237 
+¹e_‘h_dev_šfo
+ 
+	gdev_šfo
+;
+
+1239 
+mem£t
+(&
+dev_šfo
+, 0, (dev_info));
+
+1240 
+¹e_‘h_dev_šfo_g‘
+(
+»s
+->
+pÜt_id
+, &
+dev_šfo
+);
+
+1241 
+	gӼo
+ = 0;
+
+1242 
+	gvf_id
+ = 
+¡¹oul
+(
+»s
+->
+pf_vf
+ + 2, &
+’d
+, 10);
+
+1243 ià(
+	gӼo
+ !ð0 || *
+’d
+ !ð'\0' || 
+vf_id
+ >ð
+dev_šfo
+.
+max_vfs
+) {
+
+1244 
+´štf
+("šv®id…¬am‘” %s.\n", 
+»s
+->
+pf_vf
+);
+
+1247 
+	g’Œy
+.
+	gšput
+.
+	gæow_ext
+.
+	gis_vf
+ = 1;
+
+1248 
+	g’Œy
+.
+	gšput
+.
+	gæow_ext
+.
+	gd¡_id
+ = (
+ušt16_t
+)
+vf_id
+;
+
+1250 
+´štf
+("šv®id…¬am‘” %s.\n", 
+»s
+->
+pf_vf
+);
+
+1254 
+	g’Œy
+.
+	gaùiÚ
+.
+	g»pÜt_¡©us
+ = 
+RTE_ETH_FDIR_REPORT_ID
+;
+
+1255 
+	g’Œy
+.
+	gaùiÚ
+.
+	grx_queue
+ = 
+»s
+->
+queue_id
+;
+
+1256 
+	g’Œy
+.
+	gsoá_id
+ = 
+»s
+->
+fd_id_v®ue
+;
+
+1257 ià(!
+¡rcmp
+(
+»s
+->
+Ýs
+, "add"))
+
+1258 
+	g»t
+ = 
+¹e_‘h_dev_fž‹r_ù¾
+(
+»s
+->
+pÜt_id
+, 
+RTE_ETH_FILTER_FDIR
+,
+
+1259 
+RTE_ETH_FILTER_ADD
+, &
+’Œy
+);
+
+1260 ià(!
+¡rcmp
+(
+»s
+->
+Ýs
+, "del"))
+
+1261 
+	g»t
+ = 
+¹e_‘h_dev_fž‹r_ù¾
+(
+»s
+->
+pÜt_id
+, 
+RTE_ETH_FILTER_FDIR
+,
+
+1262 
+RTE_ETH_FILTER_DELETE
+, &
+’Œy
+);
+
+1264 
+	g»t
+ = 
+¹e_‘h_dev_fž‹r_ù¾
+(
+»s
+->
+pÜt_id
+, 
+RTE_ETH_FILTER_FDIR
+,
+
+1265 
+RTE_ETH_FILTER_UPDATE
+, &
+’Œy
+);
+
+1266 ià(
+	g»t
+ < 0)
+
+1267 
+´štf
+("flow director…rogrammingƒrror: (%s)\n",
+
+1268 
+¡»¼Ü
+(-
+»t
+));
+
+1274 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_fž‹r
+ =
+
+1275 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1276 
+æow_dœeùÜ_fž‹r
+, "flow_director_filter");
+
+1278 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_æow_dœeùÜ_pÜt_id
+ =
+
+1279 
+TOKEN_NUM_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1280 
+pÜt_id
+, 
+UINT8
+);
+
+1283 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_mode
+ =
+
+1284 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1285 
+mode
+, "mode");
+
+1287 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_mode_
+ =
+
+1288 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1289 
+mode_v®ue
+, "IP");
+
+1291 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_Ýs
+ =
+
+1292 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1293 
+Ýs
+, "add#del#update");
+
+1295 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_æow
+ =
+
+1296 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1297 
+æow
+, "flow");
+
+1299 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_æow_ty³
+ =
+
+1300 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1301 
+æow_ty³
+, "ipv4-other#ipv4-frag#ipv4-tcp#ipv4-udp#ipv4-sctp#"
+
+1304 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_¤c
+ =
+
+1305 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1306 
+¤c
+, "src");
+
+1307 
+cmdlše_·r£_tok’_addr_t
+ 
+	gcmd_æow_dœeùÜ__¤c
+ =
+
+1308 
+TOKEN_IPADDR_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1309 
+_¤c
+);
+
+1310 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_æow_dœeùÜ_pÜt_¤c
+ =
+
+1311 
+TOKEN_NUM_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1312 
+pÜt_¤c
+, 
+UINT16
+);
+
+1313 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_d¡
+ =
+
+1314 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1315 
+d¡
+, "dst");
+
+1316 
+cmdlše_·r£_tok’_addr_t
+ 
+	gcmd_æow_dœeùÜ__d¡
+ =
+
+1317 
+TOKEN_IPADDR_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1318 
+_d¡
+);
+
+1319 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_æow_dœeùÜ_pÜt_d¡
+ =
+
+1320 
+TOKEN_NUM_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1321 
+pÜt_d¡
+, 
+UINT16
+);
+
+1323 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_tos
+ =
+
+1324 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1325 
+tos
+, "tos");
+
+1326 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_æow_dœeùÜ_tos_v®ue
+ =
+
+1327 
+TOKEN_NUM_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1328 
+tos_v®ue
+, 
+UINT8
+);
+
+1330 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_‰l
+ =
+
+1331 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1332 
+‰l
+, "ttl");
+
+1333 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_æow_dœeùÜ_‰l_v®ue
+ =
+
+1334 
+TOKEN_NUM_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1335 
+‰l_v®ue
+, 
+UINT8
+);
+
+1337 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_vÏn
+ =
+
+1338 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1339 
+vÏn
+, "vlan");
+
+1340 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_æow_dœeùÜ_vÏn_v®ue
+ =
+
+1341 
+TOKEN_NUM_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1342 
+vÏn_v®ue
+, 
+UINT16
+);
+
+1343 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_æexby‹s
+ =
+
+1344 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1345 
+æexby‹s
+, "flexbytes");
+
+1346 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_æexby‹s_v®ue
+ =
+
+1347 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1348 
+æexby‹s_v®ue
+, 
+NULL
+);
+
+1349 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_drÝ
+ =
+
+1350 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1351 
+drÝ
+, "drop#fwd");
+
+1352 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_pf_vf
+ =
+
+1353 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1354 
+pf_vf
+, 
+NULL
+);
+
+1355 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_queue
+ =
+
+1356 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1357 
+queue
+, "queue");
+
+1358 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_æow_dœeùÜ_queue_id
+ =
+
+1359 
+TOKEN_NUM_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1360 
+queue_id
+, 
+UINT16
+);
+
+1361 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_fd_id
+ =
+
+1362 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1363 
+fd_id
+, "fd_id");
+
+1364 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_æow_dœeùÜ_fd_id_v®ue
+ =
+
+1365 
+TOKEN_NUM_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1366 
+fd_id_v®ue
+, 
+UINT32
+);
+
+1369 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_add_d–_udp_æow_dœeùÜ
+ = {
+
+1370 .
+f
+ = 
+cmd_æow_dœeùÜ_fž‹r_·r£d
+,
+
+1371 .
+	gd©a
+ = 
+NULL
+,
+
+1372 .
+	gh–p_¡r
+ = "add or delete‡n udp/tcp flow directorƒntry on NIC",
+
+1373 .
+	gtok’s
+ = {
+
+1374 (*)&
+cmd_æow_dœeùÜ_fž‹r
+,
+
+1375 (*)&
+cmd_æow_dœeùÜ_pÜt_id
+,
+
+1376 (*)&
+cmd_æow_dœeùÜ_mode
+,
+
+1377 (*)&
+cmd_æow_dœeùÜ_mode_
+,
+
+1378 (*)&
+cmd_æow_dœeùÜ_Ýs
+,
+
+1379 (*)&
+cmd_æow_dœeùÜ_æow
+,
+
+1380 (*)&
+cmd_æow_dœeùÜ_æow_ty³
+,
+
+1381 (*)&
+cmd_æow_dœeùÜ_¤c
+,
+
+1382 (*)&
+cmd_æow_dœeùÜ__¤c
+,
+
+1383 (*)&
+cmd_æow_dœeùÜ_pÜt_¤c
+,
+
+1384 (*)&
+cmd_æow_dœeùÜ_d¡
+,
+
+1385 (*)&
+cmd_æow_dœeùÜ__d¡
+,
+
+1386 (*)&
+cmd_æow_dœeùÜ_pÜt_d¡
+,
+
+1387 (*)&
+cmd_æow_dœeùÜ_tos
+,
+
+1388 (*)&
+cmd_æow_dœeùÜ_tos_v®ue
+,
+
+1389 (*)&
+cmd_æow_dœeùÜ_‰l
+,
+
+1390 (*)&
+cmd_æow_dœeùÜ_‰l_v®ue
+,
+
+1391 (*)&
+cmd_æow_dœeùÜ_vÏn
+,
+
+1392 (*)&
+cmd_æow_dœeùÜ_vÏn_v®ue
+,
+
+1393 (*)&
+cmd_æow_dœeùÜ_æexby‹s
+,
+
+1394 (*)&
+cmd_æow_dœeùÜ_æexby‹s_v®ue
+,
+
+1395 (*)&
+cmd_æow_dœeùÜ_drÝ
+,
+
+1396 (*)&
+cmd_æow_dœeùÜ_pf_vf
+,
+
+1397 (*)&
+cmd_æow_dœeùÜ_queue
+,
+
+1398 (*)&
+cmd_æow_dœeùÜ_queue_id
+,
+
+1399 (*)&
+cmd_æow_dœeùÜ_fd_id
+,
+
+1400 (*)&
+cmd_æow_dœeùÜ_fd_id_v®ue
+,
+
+1401 
+NULL
+,
+
+1405 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_æow_dœeùÜ_‘h”
+ =
+
+1406 
+TOKEN_STRING_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1407 
+‘h”
+, "ether");
+
+1408 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_æow_dœeùÜ_‘h”_ty³
+ =
+
+1409 
+TOKEN_NUM_INITIALIZER
+(
+cmd_æow_dœeùÜ_»suÉ
+,
+
+1410 
+‘h”_ty³
+, 
+UINT16
+);
+
+1412 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_add_d–_l2_æow_dœeùÜ
+ = {
+
+1413 .
+f
+ = 
+cmd_æow_dœeùÜ_fž‹r_·r£d
+,
+
+1414 .
+	gd©a
+ = 
+NULL
+,
+
+1415 .
+	gh–p_¡r
+ = "add or delete‡ L2 flow directorƒntry on NIC",
+
+1416 .
+	gtok’s
+ = {
+
+1417 (*)&
+cmd_æow_dœeùÜ_fž‹r
+,
+
+1418 (*)&
+cmd_æow_dœeùÜ_pÜt_id
+,
+
+1419 (*)&
+cmd_æow_dœeùÜ_mode
+,
+
+1420 (*)&
+cmd_æow_dœeùÜ_mode_
+,
+
+1421 (*)&
+cmd_æow_dœeùÜ_Ýs
+,
+
+1422 (*)&
+cmd_æow_dœeùÜ_æow
+,
+
+1423 (*)&
+cmd_æow_dœeùÜ_æow_ty³
+,
+
+1424 (*)&
+cmd_æow_dœeùÜ_‘h”
+,
+
+1425 (*)&
+cmd_æow_dœeùÜ_‘h”_ty³
+,
+
+1426 (*)&
+cmd_æow_dœeùÜ_æexby‹s
+,
+
+1427 (*)&
+cmd_æow_dœeùÜ_æexby‹s_v®ue
+,
+
+1428 (*)&
+cmd_æow_dœeùÜ_drÝ
+,
+
+1429 (*)&
+cmd_æow_dœeùÜ_pf_vf
+,
+
+1430 (*)&
+cmd_æow_dœeùÜ_queue
+,
+
+1431 (*)&
+cmd_æow_dœeùÜ_queue_id
+,
+
+1432 (*)&
+cmd_æow_dœeùÜ_fd_id
+,
+
+1433 (*)&
+cmd_æow_dœeùÜ_fd_id_v®ue
+,
+
+1434 
+NULL
+,
+
+1440 
+	scmd_£t_hash_šput_£t_»suÉ
+ {
+
+1441 
+cmdlše_fixed_¡ršg_t
+ 
+	g£t_hash_šput_£t
+;
+
+1442 
+ušt8_t
+ 
+	gpÜt_id
+;
+
+1443 
+cmdlše_fixed_¡ršg_t
+ 
+	gæow_ty³
+;
+
+1444 
+cmdlše_fixed_¡ršg_t
+ 
+	gš£t_f›ld0
+;
+
+1445 
+cmdlše_fixed_¡ršg_t
+ 
+	gš£t_f›ld1
+;
+
+1446 
+cmdlše_fixed_¡ršg_t
+ 
+	gš£t_f›ld2
+;
+
+1447 
+cmdlše_fixed_¡ršg_t
+ 
+	gš£t_f›ld3
+;
+
+1448 
+cmdlše_fixed_¡ršg_t
+ 
+	gš£t_f›ld4
+;
+
+1449 
+cmdlše_fixed_¡ršg_t
+ 
+	g£Ëù
+;
+
+1452 
+¹e_‘h_šput_£t_f›ld
+
+
+1453 
+¡r2š£t
+(*
+¡ršg
+)
+
+1455 
+ušt16_t
+ 
+	gi
+;
+
+1458 
+	g¡r
+[32];
+
+1459 
+¹e_‘h_šput_£t_f›ld
+ 
+	gš£t
+;
+
+1460 } 
+	gš£t_bË
+[] = {
+
+1461 {"‘h”ty³", 
+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-v4", 
+RTE_ETH_INPUT_SET_L3_SRC_IP4
+},
+
+1465 {"d¡-v4", 
+RTE_ETH_INPUT_SET_L3_DST_IP4
+},
+
+1466 {"v4-tos", 
+RTE_ETH_INPUT_SET_L3_IP4_TOS
+},
+
+1467 {"v4-´Ùo", 
+RTE_ETH_INPUT_SET_L3_IP4_PROTO
+},
+
+1468 {"v4-‰l", 
+RTE_ETH_INPUT_SET_L3_IP4_TTL
+},
+
+1469 {"¤c-v6", 
+RTE_ETH_INPUT_SET_L3_SRC_IP6
+},
+
+1470 {"d¡-v6", 
+RTE_ETH_INPUT_SET_L3_DST_IP6
+},
+
+1471 {"v6-tc", 
+RTE_ETH_INPUT_SET_L3_IP6_TC
+},
+
+1472 {"v6-Ãxt-h—d”", 
+RTE_ETH_INPUT_SET_L3_IP6_NEXT_HEADER
+},
+
+1473 {"v6-hÝ-lim™s", 
+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”i-g", 
+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 
+	gi
+ = 0; i < 
+RTE_DIM
+(
+š£t_bË
+); i++) {
+
+1494 ià(!
+¡rcmp
+(
+¡ršg
+, 
+š£t_bË
+[
+i
+].
+¡r
+))
+
+1495  
+	gš£t_bË
+[
+i
+].
+	gš£t
+;
+
+1498  
+	gRTE_ETH_INPUT_SET_UNKNOWN
+;
+
+1502 
+cmd_£t_hash_šput_£t_1_·r£d
+(*
+·r£d_»suÉ
+,
+
+1503 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+1504 
+__¹e_unu£d
+ *
+d©a
+)
+
+1506 
+cmd_£t_hash_šput_£t_»suÉ
+ *
+	g»s
+ = 
+·r£d_»suÉ
+;
+
+1507 
+¹e_‘h_hash_fž‹r_šfo
+ 
+	gšfo
+;
+
+1509 ià(
+	g’abË_æow_dœ
+) {
+
+1510 
+´štf
+("FDIR Filter is Defined!\n");
+
+1511 
+´štf
+("Please undefine FDIR_FILTER flag‡nd define "
+
+1516 
+mem£t
+(&
+šfo
+, 0, (info));
+
+1517 
+	gšfo
+.
+	gšfo_ty³
+ = 
+RTE_ETH_HASH_FILTER_INPUT_SET_SELECT
+;
+
+1518 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gæow_ty³
+ = 
+¡r2æowty³
+(
+»s
+->
+æow_ty³
+);
+
+1520 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[0] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld0
+);
+
+1521 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gš£t_size
+ = 1;
+
+1523 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "select"))
+
+1524 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gÝ
+ = 
+RTE_ETH_INPUT_SET_SELECT
+;
+
+1525 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "add"))
+
+1526 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gÝ
+ = 
+RTE_ETH_INPUT_SET_ADD
+;
+
+1528 
+¹e_‘h_dev_fž‹r_ù¾
+(
+»s
+->
+pÜt_id
+, 
+RTE_ETH_FILTER_HASH
+,
+
+1529 
+RTE_ETH_FILTER_SET
+, &
+šfo
+);
+
+1535 
+cmd_£t_hash_šput_£t_2_·r£d
+(*
+·r£d_»suÉ
+,
+
+1536 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+1537 
+__¹e_unu£d
+ *
+d©a
+)
+
+1539 
+cmd_£t_hash_šput_£t_»suÉ
+ *
+	g»s
+ = 
+·r£d_»suÉ
+;
+
+1540 
+¹e_‘h_hash_fž‹r_šfo
+ 
+	gšfo
+;
+
+1542 ià(
+	g’abË_æow_dœ
+) {
+
+1543 
+´štf
+("FDIR Filter is Defined!\n");
+
+1544 
+´štf
+("Please undefine FDIR_FILTER flag‡nd define "
+
+1549 
+mem£t
+(&
+šfo
+, 0, (info));
+
+1550 
+	gšfo
+.
+	gšfo_ty³
+ = 
+RTE_ETH_HASH_FILTER_INPUT_SET_SELECT
+;
+
+1551 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gæow_ty³
+ = 
+¡r2æowty³
+(
+»s
+->
+æow_ty³
+);
+
+1553 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[0] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld0
+);
+
+1554 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[1] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld1
+);
+
+1556 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gš£t_size
+ = 2;
+
+1558 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "select"))
+
+1559 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gÝ
+ = 
+RTE_ETH_INPUT_SET_SELECT
+;
+
+1560 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "add"))
+
+1561 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gÝ
+ = 
+RTE_ETH_INPUT_SET_ADD
+;
+
+1563 
+¹e_‘h_dev_fž‹r_ù¾
+(
+»s
+->
+pÜt_id
+, 
+RTE_ETH_FILTER_HASH
+,
+
+1564 
+RTE_ETH_FILTER_SET
+, &
+šfo
+);
+
+1571 
+cmd_£t_hash_šput_£t_3_·r£d
+(*
+·r£d_»suÉ
+,
+
+1572 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+1573 
+__¹e_unu£d
+ *
+d©a
+)
+
+1575 
+cmd_£t_hash_šput_£t_»suÉ
+ *
+	g»s
+ = 
+·r£d_»suÉ
+;
+
+1576 
+¹e_‘h_hash_fž‹r_šfo
+ 
+	gšfo
+;
+
+1578 
+mem£t
+(&
+šfo
+, 0, (info));
+
+1579 
+	gšfo
+.
+	gšfo_ty³
+ = 
+RTE_ETH_HASH_FILTER_INPUT_SET_SELECT
+;
+
+1580 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gæow_ty³
+ = 
+¡r2æowty³
+(
+»s
+->
+æow_ty³
+);
+
+1582 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[0] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld0
+);
+
+1583 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[1] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld1
+);
+
+1584 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[2] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld2
+);
+
+1585 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gš£t_size
+ = 3;
+
+1587 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "select"))
+
+1588 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gÝ
+ = 
+RTE_ETH_INPUT_SET_SELECT
+;
+
+1589 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "add"))
+
+1590 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gÝ
+ = 
+RTE_ETH_INPUT_SET_ADD
+;
+
+1592 
+¹e_‘h_dev_fž‹r_ù¾
+(
+»s
+->
+pÜt_id
+, 
+RTE_ETH_FILTER_HASH
+,
+
+1593 
+RTE_ETH_FILTER_SET
+, &
+šfo
+);
+
+1597 
+cmd_£t_hash_šput_£t_4_·r£d
+(*
+·r£d_»suÉ
+,
+
+1598 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+1599 
+__¹e_unu£d
+ *
+d©a
+)
+
+1601 
+cmd_£t_hash_šput_£t_»suÉ
+ *
+	g»s
+ = 
+·r£d_»suÉ
+;
+
+1602 
+¹e_‘h_hash_fž‹r_šfo
+ 
+	gšfo
+;
+
+1604 ià(
+	g’abË_æow_dœ
+) {
+
+1605 
+´štf
+("FDIR Filter is Defined!\n");
+
+1606 
+´štf
+("Please undefine FDIR_FILTER flag‡nd define "
+
+1611 
+mem£t
+(&
+šfo
+, 0, (info));
+
+1612 
+	gšfo
+.
+	gšfo_ty³
+ = 
+RTE_ETH_HASH_FILTER_INPUT_SET_SELECT
+;
+
+1613 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gæow_ty³
+ = 
+¡r2æowty³
+(
+»s
+->
+æow_ty³
+);
+
+1615 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[0] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld0
+);
+
+1616 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[1] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld1
+);
+
+1617 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[2] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld2
+);
+
+1618 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[3] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld3
+);
+
+1620 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gš£t_size
+ = 4;
+
+1621 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "select"))
+
+1622 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gÝ
+ = 
+RTE_ETH_INPUT_SET_SELECT
+;
+
+1623 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "add"))
+
+1624 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gÝ
+ = 
+RTE_ETH_INPUT_SET_ADD
+;
+
+1626 
+¹e_‘h_dev_fž‹r_ù¾
+(
+»s
+->
+pÜt_id
+, 
+RTE_ETH_FILTER_HASH
+,
+
+1627 
+RTE_ETH_FILTER_SET
+, &
+šfo
+);
+
+1633 
+cmd_£t_hash_šput_£t_5_·r£d
+(*
+·r£d_»suÉ
+,
+
+1634 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+1635 
+__¹e_unu£d
+ *
+d©a
+)
+
+1637 
+cmd_£t_hash_šput_£t_»suÉ
+ *
+	g»s
+ = 
+·r£d_»suÉ
+;
+
+1638 
+¹e_‘h_hash_fž‹r_šfo
+ 
+	gšfo
+;
+
+1640 
+mem£t
+(&
+šfo
+, 0, (info));
+
+1641 
+	gšfo
+.
+	gšfo_ty³
+ = 
+RTE_ETH_HASH_FILTER_INPUT_SET_SELECT
+;
+
+1642 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gæow_ty³
+ = 
+¡r2æowty³
+(
+»s
+->
+æow_ty³
+);
+
+1644 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[0] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld0
+);
+
+1645 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[1] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld1
+);
+
+1646 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[2] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld2
+);
+
+1647 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[3] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld3
+);
+
+1648 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gf›ld
+[4] = 
+¡r2š£t
+(
+»s
+->
+š£t_f›ld4
+);
+
+1650 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gš£t_size
+ = 5;
+
+1651 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "select"))
+
+1652 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gÝ
+ = 
+RTE_ETH_INPUT_SET_SELECT
+;
+
+1653 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "add"))
+
+1654 
+	gšfo
+.šfo.
+	gšput_£t_cÚf
+.
+	gÝ
+ = 
+RTE_ETH_INPUT_SET_ADD
+;
+
+1655 
+¹e_‘h_dev_fž‹r_ù¾
+(
+»s
+->
+pÜt_id
+, 
+RTE_ETH_FILTER_HASH
+,
+
+1656 
+RTE_ETH_FILTER_SET
+, &
+šfo
+);
+
+1660 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£t_hash_šput_£t_cmd
+ =
+
+1661 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_hash_šput_£t_»suÉ
+,
+
+1662 
+£t_hash_šput_£t
+, "set_hash_input_set");
+
+1663 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_£t_hash_šput_£t_pÜt_id
+ =
+
+1664 
+TOKEN_NUM_INITIALIZER
+(
+cmd_£t_hash_šput_£t_»suÉ
+,
+
+1665 
+pÜt_id
+, 
+UINT8
+);
+
+1666 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£t_hash_šput_£t_æow_ty³
+ =
+
+1667 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_hash_šput_£t_»suÉ
+,
+
+1668 
+æow_ty³
+,
+
+1672 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£t_hash_šput_£t_f›ld0
+ =
+
+1673 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_hash_šput_£t_»suÉ
+,
+
+1674 
+š£t_f›ld0
+,
+
+1678 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£t_hash_šput_£t_f›ld1
+ =
+
+1679 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_hash_šput_£t_»suÉ
+,
+
+1680 
+š£t_f›ld1
+,
+
+1684 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£t_hash_šput_£t_f›ld2
+ =
+
+1685 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_hash_šput_£t_»suÉ
+,
+
+1686 
+š£t_f›ld2
+,
+
+1689 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£t_hash_šput_£t_f›ld3
+ =
+
+1690 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_hash_šput_£t_»suÉ
+,
+
+1691 
+š£t_f›ld3
+,
+
+1694 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£t_hash_šput_£t_f›ld4
+ =
+
+1695 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_hash_šput_£t_»suÉ
+,
+
+1696 
+š£t_f›ld4
+, "ipv4-proto#ipv6-next-header#none");
+
+1699 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£t_hash_šput_£t_£Ëù
+ =
+
+1700 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_hash_šput_£t_»suÉ
+,
+
+1701 
+£Ëù
+, "select#add");
+
+1703 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_£t_hash_šput_£t_1
+ = {
+
+1704 .
+f
+ = 
+cmd_£t_hash_šput_£t_1_·r£d
+,
+
+1705 .
+	gd©a
+ = 
+NULL
+,
+
+1706 .
+	gh–p_¡r
+ = "set_hash_input_set_1 <port_id> "
+
+1712 .
+	gtok’s
+ = {
+
+1713 (*)&
+cmd_£t_hash_šput_£t_cmd
+,
+
+1714 (*)&
+cmd_£t_hash_šput_£t_pÜt_id
+,
+
+1715 (*)&
+cmd_£t_hash_šput_£t_æow_ty³
+,
+
+1716 (*)&
+cmd_£t_hash_šput_£t_f›ld0
+,
+
+1717 (*)&
+cmd_£t_hash_šput_£t_£Ëù
+,
+
+1718 
+NULL
+,
+
+1722 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_£t_hash_šput_£t_2
+ = {
+
+1723 .
+f
+ = 
+cmd_£t_hash_šput_£t_2_·r£d
+,
+
+1724 .
+	gd©a
+ = 
+NULL
+,
+
+1725 .
+	gh–p_¡r
+ = "set_hash_input_set_2 <port_id> "
+
+1732 .
+	gtok’s
+ = {
+
+1733 (*)&
+cmd_£t_hash_šput_£t_cmd
+,
+
+1734 (*)&
+cmd_£t_hash_šput_£t_pÜt_id
+,
+
+1735 (*)&
+cmd_£t_hash_šput_£t_æow_ty³
+,
+
+1736 (*)&
+cmd_£t_hash_šput_£t_f›ld0
+,
+
+1737 (*)&
+cmd_£t_hash_šput_£t_f›ld1
+,
+
+1738 (*)&
+cmd_£t_hash_šput_£t_£Ëù
+,
+
+1739 
+NULL
+,
+
+1744 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_£t_hash_šput_£t_3
+ = {
+
+1745 .
+f
+ = 
+cmd_£t_hash_šput_£t_3_·r£d
+,
+
+1746 .
+	gd©a
+ = 
+NULL
+,
+
+1747 .
+	gh–p_¡r
+ = "set_hash_input_set_3 <port_id> "
+
+1757 .
+	gtok’s
+ = {
+
+1758 (*)&
+cmd_£t_hash_šput_£t_cmd
+,
+
+1759 (*)&
+cmd_£t_hash_šput_£t_pÜt_id
+,
+
+1760 (*)&
+cmd_£t_hash_šput_£t_æow_ty³
+,
+
+1761 (*)&
+cmd_£t_hash_šput_£t_f›ld0
+,
+
+1762 (*)&
+cmd_£t_hash_šput_£t_f›ld1
+,
+
+1763 (*)&
+cmd_£t_hash_šput_£t_f›ld2
+,
+
+1764 (*)&
+cmd_£t_hash_šput_£t_£Ëù
+,
+
+1765 
+NULL
+,
+
+1770 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_£t_hash_šput_£t_4
+ = {
+
+1771 .
+f
+ = 
+cmd_£t_hash_šput_£t_4_·r£d
+,
+
+1772 .
+	gd©a
+ = 
+NULL
+,
+
+1773 .
+	gh–p_¡r
+ = "set_hash_input_set_4 <port_id> "
+
+1782 .
+	gtok’s
+ = {
+
+1783 (*)&
+cmd_£t_hash_šput_£t_cmd
+,
+
+1784 (*)&
+cmd_£t_hash_šput_£t_pÜt_id
+,
+
+1785 (*)&
+cmd_£t_hash_šput_£t_æow_ty³
+,
+
+1786 (*)&
+cmd_£t_hash_šput_£t_f›ld0
+,
+
+1787 (*)&
+cmd_£t_hash_šput_£t_f›ld1
+,
+
+1788 (*)&
+cmd_£t_hash_šput_£t_f›ld2
+,
+
+1789 (*)&
+cmd_£t_hash_šput_£t_f›ld3
+,
+
+1790 (*)&
+cmd_£t_hash_šput_£t_£Ëù
+,
+
+1791 
+NULL
+,
+
+1795 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_£t_hash_šput_£t_5
+ = {
+
+1796 .
+f
+ = 
+cmd_£t_hash_šput_£t_5_·r£d
+,
+
+1797 .
+	gd©a
+ = 
+NULL
+,
+
+1798 .
+	gh–p_¡r
+ = "set_hash_input_set_5 <port_id> "
+
+1808 .
+	gtok’s
+ = {
+
+1809 (*)&
+cmd_£t_hash_šput_£t_cmd
+,
+
+1810 (*)&
+cmd_£t_hash_šput_£t_pÜt_id
+,
+
+1811 (*)&
+cmd_£t_hash_šput_£t_æow_ty³
+,
+
+1812 (*)&
+cmd_£t_hash_šput_£t_f›ld0
+,
+
+1813 (*)&
+cmd_£t_hash_šput_£t_f›ld1
+,
+
+1814 (*)&
+cmd_£t_hash_šput_£t_f›ld2
+,
+
+1815 (*)&
+cmd_£t_hash_šput_£t_f›ld3
+,
+
+1816 (*)&
+cmd_£t_hash_šput_£t_f›ld4
+,
+
+1817 (*)&
+cmd_£t_hash_šput_£t_£Ëù
+,
+
+1818 
+NULL
+,
+
+1824 
+	scmd_£t_hash_glob®_cÚfig_»suÉ
+ {
+
+1825 
+cmdlše_fixed_¡ršg_t
+ 
+	g£t_hash_glob®_cÚfig
+;
+
+1826 
+ušt8_t
+ 
+	gpÜt_id
+;
+
+1827 
+cmdlše_fixed_¡ršg_t
+ 
+	ghash_func
+;
+
+1828 
+cmdlše_fixed_¡ršg_t
+ 
+	gæow_ty³
+;
+
+1829 
+cmdlše_fixed_¡ršg_t
+ 
+	g’abË
+;
+
+1833 
+cmd_£t_hash_glob®_cÚfig_·r£d
+(*
+·r£d_»suÉ
+,
+
+1834 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+1835 
+__¹e_unu£d
+ *
+d©a
+)
+
+1837 
+cmd_£t_hash_glob®_cÚfig_»suÉ
+ *
+	g»s
+ = 
+·r£d_»suÉ
+;
+
+1838 
+¹e_‘h_hash_fž‹r_šfo
+ 
+	gšfo
+;
+
+1839 
+ušt32_t
+ 
+	gáy³
+, 
+	gidx
+, 
+	goff£t
+;
+
+1840 
+	g»t
+;
+
+1842 ià(
+¹e_‘h_dev_fž‹r_suµÜ‹d
+(
+»s
+->
+pÜt_id
+,
+
+1843 
+RTE_ETH_FILTER_HASH
+) < 0) {
+
+1844 
+´štf
+("RTE_ETH_FILTER_HASH‚ot supported on…ort %d\n",
+
+1845 
+»s
+->
+pÜt_id
+);
+
+1848 
+mem£t
+(&
+šfo
+, 0, (info));
+
+1849 
+	gšfo
+.
+	gšfo_ty³
+ = 
+RTE_ETH_HASH_FILTER_GLOBAL_CONFIG
+;
+
+1850 ià(!
+¡rcmp
+(
+»s
+->
+hash_func
+, "toeplitz"))
+
+1851 
+	gšfo
+.šfo.
+	gglob®_cÚf
+.
+	ghash_func
+ =
+
+1852 
+RTE_ETH_HASH_FUNCTION_TOEPLITZ
+;
+
+1853 ià(!
+¡rcmp
+(
+»s
+->
+hash_func
+, "simple_xor"))
+
+1854 
+	gšfo
+.šfo.
+	gglob®_cÚf
+.
+	ghash_func
+ =
+
+1855 
+RTE_ETH_HASH_FUNCTION_SIMPLE_XOR
+;
+
+1856 ià(!
+¡rcmp
+(
+»s
+->
+hash_func
+, "default"))
+
+1857 
+	gšfo
+.šfo.
+	gglob®_cÚf
+.
+	ghash_func
+ =
+
+1858 
+RTE_ETH_HASH_FUNCTION_DEFAULT
+;
+
+1860 
+	gáy³
+ = 
+¡r2æowty³
+(
+»s
+->
+æow_ty³
+);
+
+1861 
+	gidx
+ = 
+áy³
+ / (
+CHAR_BIT
+ * (
+ušt32_t
+));
+
+1862 
+	goff£t
+ = 
+áy³
+ % (
+CHAR_BIT
+ * (
+ušt32_t
+));
+
+1863 
+	gšfo
+.šfo.
+	gglob®_cÚf
+.
+	gv®id_b™_mask
+[
+idx
+] |ð(1UL << 
+off£t
+);
+
+1864 ià(!
+¡rcmp
+(
+»s
+->
+’abË
+, "enable"))
+
+1865 if(
+	gidx
+ < 
+	gRTE_SYM_HASH_MASK_ARRAY_SIZE
+)
+
+1866 
+	gšfo
+.šfo.
+	gglob®_cÚf
+.
+	gsym_hash_’abË_mask
+[
+idx
+] |=
+
+1867 (1UL << 
+off£t
+);
+
+1868 
+	g»t
+ = 
+¹e_‘h_dev_fž‹r_ù¾
+(
+»s
+->
+pÜt_id
+, 
+RTE_ETH_FILTER_HASH
+,
+
+1869 
+RTE_ETH_FILTER_SET
+, &
+šfo
+);
+
+1870 ià(
+	g»t
+ < 0)
+
+1871 
+´štf
+("Cannot set global hash configurations by…ort %d\n",
+
+1872 
+»s
+->
+pÜt_id
+);
+
+1874 
+´štf
+("Global hash configurations have been set "
+
+1875 "succûssfuÎy by…܈%d\n", 
+»s
+->
+pÜt_id
+);
+
+1877 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£t_hash_glob®_cÚfig_®l
+ =
+
+1878 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_hash_glob®_cÚfig_»suÉ
+,
+
+1879 
+£t_hash_glob®_cÚfig
+, "set_hash_global_config");
+
+1880 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_£t_hash_glob®_cÚfig_pÜt_id
+ =
+
+1881 
+TOKEN_NUM_INITIALIZER
+(
+cmd_£t_hash_glob®_cÚfig_»suÉ
+,
+
+1882 
+pÜt_id
+, 
+UINT8
+);
+
+1883 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£t_hash_glob®_cÚfig_hash_func
+ =
+
+1884 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_hash_glob®_cÚfig_»suÉ
+,
+
+1885 
+hash_func
+, "toeplitz#simple_xor#default");
+
+1886 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£t_hash_glob®_cÚfig_æow_ty³
+ =
+
+1887 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_hash_glob®_cÚfig_»suÉ
+,
+
+1888 
+æow_ty³
+,
+
+1891 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£t_hash_glob®_cÚfig_’abË
+ =
+
+1892 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_hash_glob®_cÚfig_»suÉ
+,
+
+1893 
+’abË
+, "enable#disable");
+
+1895 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_£t_hash_glob®_cÚfig
+ = {
+
+1896 .
+f
+ = 
+cmd_£t_hash_glob®_cÚfig_·r£d
+,
+
+1897 .
+	gd©a
+ = 
+NULL
+,
+
+1898 .
+	gh–p_¡r
+ = "set_hash_global_config…ort_id "
+
+1903 .
+	gtok’s
+ = {
+
+1904 (*)&
+cmd_£t_hash_glob®_cÚfig_®l
+,
+
+1905 (*)&
+cmd_£t_hash_glob®_cÚfig_pÜt_id
+,
+
+1906 (*)&
+cmd_£t_hash_glob®_cÚfig_hash_func
+,
+
+1907 (*)&
+cmd_£t_hash_glob®_cÚfig_æow_ty³
+,
+
+1908 (*)&
+cmd_£t_hash_glob®_cÚfig_’abË
+,
+
+1909 
+NULL
+,
+
+1914 
+	scmd_£t_sym_hash_’a_³r_pÜt_»suÉ
+ {
+
+1915 
+cmdlše_fixed_¡ršg_t
+ 
+	g£t_sym_hash_’a_³r_pÜt
+;
+
+1916 
+cmdlše_fixed_¡ršg_t
+ 
+	g’abË
+;
+
+1917 
+ušt8_t
+ 
+	gpÜt_id
+;
+
+1921 
+cmd_£t_sym_hash_³r_pÜt_·r£d
+(*
+·r£d_»suÉ
+,
+
+1922 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+1923 
+__¹e_unu£d
+ *
+d©a
+)
+
+1925 
+cmd_£t_sym_hash_’a_³r_pÜt_»suÉ
+ *
+	g»s
+ = 
+·r£d_»suÉ
+;
+
+1926 
+¹e_‘h_hash_fž‹r_šfo
+ 
+	gšfo
+;
+
+1927 
+	g»t
+;
+
+1929 ià(
+¹e_‘h_dev_fž‹r_suµÜ‹d
+(
+»s
+->
+pÜt_id
+,
+
+1930 
+RTE_ETH_FILTER_HASH
+) < 0) {
+
+1931 
+´štf
+("RTE_ETH_FILTER_HASH‚ot supported on…ort: %d\n",
+
+1932 
+»s
+->
+pÜt_id
+);
+
+1936 
+mem£t
+(&
+šfo
+, 0, (info));
+
+1937 
+	gšfo
+.
+	gšfo_ty³
+ = 
+RTE_ETH_HASH_FILTER_SYM_HASH_ENA_PER_PORT
+;
+
+1939 ià(!
+¡rcmp
+(
+»s
+->
+’abË
+, "enable"))
+
+1940 
+	gšfo
+.šfo.
+	g’abË
+ = 1;
+
+1942 
+	g»t
+ = 
+¹e_‘h_dev_fž‹r_ù¾
+(
+»s
+->
+pÜt_id
+, 
+RTE_ETH_FILTER_HASH
+,
+
+1943 
+RTE_ETH_FILTER_SET
+, &
+šfo
+);
+
+1944 ià(
+	g»t
+ < 0) {
+
+1945 
+´štf
+("Cannot set symmetric hashƒnable…er…ort on "
+
+1946 "p܈%u\n", 
+»s
+->
+pÜt_id
+);
+
+1949 
+´štf
+("Symmetric hash has been seto %s on…ort %u\n",
+
+1950 
+»s
+->
+’abË
+,„es->
+pÜt_id
+);
+
+1953 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£t_sym_hash_’a_³r_pÜt_®l
+ =
+
+1954 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_sym_hash_’a_³r_pÜt_»suÉ
+,
+
+1955 
+£t_sym_hash_’a_³r_pÜt
+, "set_sym_hash_ena_per_port");
+
+1956 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_£t_sym_hash_’a_³r_pÜt_pÜt_id
+ =
+
+1957 
+TOKEN_NUM_INITIALIZER
+(
+cmd_£t_sym_hash_’a_³r_pÜt_»suÉ
+,
+
+1958 
+pÜt_id
+, 
+UINT8
+);
+
+1959 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_£t_sym_hash_’a_³r_pÜt_’abË
+ =
+
+1960 
+TOKEN_STRING_INITIALIZER
+(
+cmd_£t_sym_hash_’a_³r_pÜt_»suÉ
+,
+
+1961 
+’abË
+, "enable#disable");
+
+1963 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_£t_sym_hash_’a_³r_pÜt
+ = {
+
+1964 .
+f
+ = 
+cmd_£t_sym_hash_³r_pÜt_·r£d
+,
+
+1965 .
+	gd©a
+ = 
+NULL
+,
+
+1966 .
+	gh–p_¡r
+ = "set_sym_hash_ena_per_port…ort_idƒnable|disable",
+
+1967 .
+	gtok’s
+ = {
+
+1968 (*)&
+cmd_£t_sym_hash_’a_³r_pÜt_®l
+,
+
+1969 (*)&
+cmd_£t_sym_hash_’a_³r_pÜt_pÜt_id
+,
+
+1970 (*)&
+cmd_£t_sym_hash_’a_³r_pÜt_’abË
+,
+
+1971 
+NULL
+,
+
+1977 
+­p_p–še_¬picmp_’Œy_dbg
+(
+­p_·¿ms
+ *
+­p
+,
+
+1978 
+ušt32_t
+ 
+p–še_id
+, 
+ušt8_t
+ *
+msg
+)
+
+1980 
+p–še_¬picmp_’Œy_dbg_msg_»q
+ *
+	g»q
+;
+
+1981 
+p–še_¬picmp_’Œy_dbg_msg_r¥
+ *
+	gr¥
+;
+
+1984 ià(
+	g­p
+ =ð
+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–še_id
+, 
+»q
+, 
+MSG_TIMEOUT_DEFAULT
+);
+
+1998 ià(
+	gr¥
+ =ð
+NULL
+)
+
+2002 ià(
+	gr¥
+->
+	g¡©us
+) {
+
+2003 
+­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+2004 
+´štf
+("E¼Ü„¥->¡©u %d\n", 
+r¥
+->
+¡©us
+);
+
+2009 
+­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+2019 
+	scmd_’Œy_dbg_»suÉ
+ {
+
+2020 
+cmdlše_fixed_¡ršg_t
+ 
+	gp_¡ršg
+;
+
+2021 
+ušt32_t
+ 
+	gp
+;
+
+2022 
+cmdlše_fixed_¡ršg_t
+ 
+	g’Œy_¡ršg
+;
+
+2023 
+cmdlše_fixed_¡ršg_t
+ 
+	gdbg_¡ršg
+;
+
+2024 
+ušt8_t
+ 
+	gcmd
+;
+
+2025 
+ušt8_t
+ 
+	gd1
+;
+
+2029 
+cmd_’Œy_dbg_·r£d
+(*
+·r£d_»suÉ
+,
+
+2030 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+, *
+d©a
+)
+
+2032 
+cmd_’Œy_dbg_»suÉ
+ *
+	g·¿ms
+ = 
+·r£d_»suÉ
+;
+
+2033 
+­p_·¿ms
+ *
+	g­p
+ = 
+d©a
+;
+
+2034 
+ušt8_t
+ 
+	gmsg
+[2];
+
+2035 
+	g¡©us
+;
+
+2037 
+	gmsg
+[0] = 
+·¿ms
+->
+cmd
+;
+
+2038 
+	gmsg
+[1] = 
+·¿ms
+->
+d1
+;
+
+2039 
+	g¡©us
+ = 
+­p_p–še_¬picmp_’Œy_dbg
+(
+­p
+, 
+·¿ms
+->
+p
+, 
+msg
+);
+
+2041 ià(
+	g¡©us
+ != 0) {
+
+2042 
+´štf
+("Dbg Command failed\n");
+
+2047 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	glb_cmd_’Œy_dbg_p_¡ršg
+ =
+
+2048 
+TOKEN_STRING_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+p_¡ršg
+, "p");
+
+2050 
+cmdlše_·r£_tok’_num_t
+ 
+	glb_cmd_’Œy_dbg_p
+ =
+
+2051 
+TOKEN_NUM_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+p
+, 
+UINT32
+);
+
+2053 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	glb_cmd_’Œy_dbg_’Œy_¡ršg
+ =
+
+2054 
+TOKEN_STRING_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+,
+
+2055 
+’Œy_¡ršg
+, "txrx");
+
+2057 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	glb_cmd_’Œy_dbg_dbg_¡ršg
+ =
+
+2058 
+TOKEN_STRING_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+dbg_¡ršg
+,
+
+2061 
+cmdlše_·r£_tok’_num_t
+ 
+	glb_cmd_’Œy_dbg_cmd
+ =
+
+2062 
+TOKEN_NUM_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+cmd
+, 
+UINT8
+);
+
+2064 
+cmdlše_·r£_tok’_num_t
+ 
+	glb_cmd_’Œy_dbg_d1
+ =
+
+2065 
+TOKEN_NUM_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+d1
+, 
+UINT8
+);
+
+2067 
+cmdlše_·r£_š¡_t
+ 
+	glb_cmd_’Œy_dbg
+ = {
+
+2068 .
+f
+ = 
+cmd_’Œy_dbg_·r£d
+,
+
+2069 .
+	gd©a
+ = 
+NULL
+,
+
+2070 .
+	gh–p_¡r
+ = "ARPICMP dbg cmd",
+
+2071 .
+	gtok’s
+ = {
+
+2072 (*)&
+lb_cmd_’Œy_dbg_p_¡ršg
+,
+
+2073 (*)&
+lb_cmd_’Œy_dbg_p
+,
+
+2074 (*)&
+lb_cmd_’Œy_dbg_’Œy_¡ršg
+,
+
+2075 (*)&
+lb_cmd_’Œy_dbg_dbg_¡ršg
+,
+
+2076 (*)&
+lb_cmd_’Œy_dbg_cmd
+,
+
+2077 (*)&
+lb_cmd_’Œy_dbg_d1
+,
+
+2078 
+NULL
+,
+
+2082 
+cmdlše_·r£_ùx_t
+ 
+	gp–še_cmds
+[] = {
+
+2083 (
+cmdlše_·r£_š¡_t
+ *è&
+lb_cmd_’Œy_dbg
+,
+
+2084 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_¬p_add
+,
+
+2085 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_¬p_d–
+,
+
+2086 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_¬p_»q
+,
+
+2087 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_icmp_echo_»q
+,
+
+2088 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_¬p_ls
+,
+
+2089 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_show_pÜts_šfo
+,
+
+2091 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_£t_fwd_mode
+,
+
+2092 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_add_d–_udp_æow_dœeùÜ
+,
+
+2093 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_add_d–_l2_æow_dœeùÜ
+,
+
+2094 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_£t_hash_šput_£t_1
+,
+
+2095 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_£t_hash_šput_£t_2
+,
+
+2097 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_£t_hash_šput_£t_4
+,
+
+2099 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_£t_hash_glob®_cÚfig
+,
+
+2100 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_£t_sym_hash_’a_³r_pÜt
+,
+
+2101 #iâdeà
+VNF_ACL
+
+
+2102 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_¬p_dbg
+,
+
+2103 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_¬p_tim”
+,
+
+2105 
+NULL
+,
+
+2108 
+p–še_ã_Ýs
+ 
+	gp–še_¬picmp_ã_Ýs
+ = {
+
+2109 .
+f_š™
+ = 
+NULL
+,
+
+2110 .
+	gf_ä“
+ = 
+NULL
+,
+
+2111 .
+	gcmds
+ = 
+p–še_cmds
+,
+
+2114 
+p–še_ty³
+ 
+	gp–še_¬picmp
+ = {
+
+2115 .
+Çme
+ = "ARPICMP",
+
+2116 .
+	gbe_Ýs
+ = &
+p–še_¬picmp_be_Ýs
+,
+
+2117 .
+	gã_Ýs
+ = &
+p–še_¬picmp_ã_Ýs
+,
+
+	@VIL/pipeline_arpicmp/pipeline_arpicmp.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_ARPICMP_H__
+
+
+18 
+	#__INCLUDE_PIPELINE_ARPICMP_H__
+
+
+	)
+
+20 
+	~"p–še.h
+"
+
+21 
+	~"p–še_¬picmp_be.h
+"
+
+26 

+p–še_ty³
+ 
+p–še_¬picmp
+;
+
+28 
+	#MAX_PKT_BURST
+ 512
+
+	)
+
+29 
+	#DEF_PKT_BURST
+ 32
+
+	)
+
+32 
+ušt8_t
+ 
+	tpÜtid_t
+;
+
+33 
+ušt16_t
+ 
+	tqueueid_t
+;
+
+34 
+ušt16_t
+ 
+	t¡»amid_t
+;
+
+39 
+	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³”_addr
+;
+
+54 
+	mrx_·ck‘s
+;
+
+56 
+	mtx_·ck‘s
+;
+
+58 
+	mfwd_drݳd
+;
+
+60 
+	mrx_bad__csum
+;
+
+62 
+	mrx_bad_l4_csum
+;
+
+63 #ifdeà
+RTE_TEST_PMD_RECORD_CORE_CYCLES
+
+
+64 
+ušt64_t
+ 
+	mcÜe_cyþes
+;
+
+66 #ifdeà
+RTE_TEST_PMD_RECORD_BURST_STATS
+
+
+67 
+pkt_bur¡_¡©s
+ 
+	mrx_bur¡_¡©s
+;
+
+68 
+pkt_bur¡_¡©s
+ 
+	mtx_bur¡_¡©s
+;
+
+86 (*
+	tpÜt_fwd_begš_t
+)(
+	tpÜtid_t
+ 
+	tpi
+);
+
+87 (*
+	tpÜt_fwd_’d_t
+)(
+	tpÜtid_t
+ 
+	tpi
+);
+
+88 (*
+	t·ck‘_fwd_t
+)(
+	tfwd_¡»am
+ *
+	tfs
+);
+
+89 
+	sfwd_’gše
+ {
+
+91 cÚ¡ *
+fwd_mode_Çme
+;
+
+93 
+pÜt_fwd_begš_t
+ 
+pÜt_fwd_begš
+;
+
+95 
+pÜt_fwd_’d_t
+ 
+pÜt_fwd_’d
+;
+
+97 
+·ck‘_fwd_t
+ 
+·ck‘_fwd
+;
+
+99 
+	#IPV4_ADDR_TO_UINT
+(
+_addr
+, 
+
+) \
+
+101 ià((
+_addr
+).
+çmžy
+ =ð
+AF_INET
+) \
+
+102 (
+
+èð(
+_addr
+).
+addr
+.
+v4
+.
+s_addr
+; \
+
+104 
+	`´štf
+("invalid…arameter.\n"); \
+
+107 
+	}
+} 0)
+
+	)
+
+109 
+	#IPV6_ADDR_TO_ARRAY
+(
+_addr
+, 
+
+) \
+
+111 ià((
+_addr
+).
+çmžy
+ =ð
+AF_INET6
+) \
+
+112 ()
+	`¹e_memýy
+(&(
+
+), \
+
+113 &((
+_addr
+).
+addr
+.
+v6
+), \
+
+114 (
+š6_addr
+)); \
+
+116 
+	`´štf
+("invalid…arameter.\n"); \
+
+119 } 0)
+
+	)
+
+121 
+£t_pkt_fÜw¬dšg_mode
+(cÚ¡ *
+fwd_mode_Çme
+);
+
+	@VIL/pipeline_arpicmp/pipeline_arpicmp_be.c
+
+17 
+	~<¡ršg.h
+>
+
+19 
+	~<¡dio.h
+>
+
+20 
+	~<¡dlib.h
+>
+
+21 
+	~<¡dšt.h
+>
+
+22 
+	~<¡ršg.h
+>
+
+23 
+	~<uni¡d.h
+>
+
+25 
+	~<­p.h
+>
+
+26 
+	~<¹e_commÚ.h
+>
+
+27 
+	~<¹e_m®loc.h
+>
+
+28 
+	~<¹e_.h
+>
+
+29 
+	~<¹e_by‹Üd”.h
+>
+
+30 
+	~<¹e_bË_¡ub.h
+>
+
+31 
+	~<¹e_bË_hash.h
+>
+
+32 
+	~<¹e_p–še.h
+>
+
+33 
+	~<¹e_¬p.h
+>
+
+34 
+	~<¹e_icmp.h
+>
+
+35 
+	~<¹e_hash.h
+>
+
+36 
+	~<¹e_jhash.h
+>
+
+37 
+	~<¹e_cyþes.h
+>
+
+38 
+	~<¹e_hexdump.h
+>
+
+39 
+	~"p–še_aùiÚs_commÚ.h
+"
+
+40 
+	~"hash_func.h
+"
+
+41 
+	~"vnf_commÚ.h
+"
+
+42 
+	~"p–še_commÚ_be.h
+"
+
+43 
+	~"p–še_¬picmp_be.h
+"
+
+44 
+	~"·r£r.h
+"
+
+45 
+	~"hash_func.h
+"
+
+46 
+	~"vnf_commÚ.h
+"
+
+47 
+	~"­p.h
+"
+
+49 
+	~"p–še_commÚ_ã.h
+"
+
+50 #iâdeà
+VNF_ACL
+
+
+51 
+	~"lib_¬p.h
+"
+
+52 
+	~"lib_icmpv6.h
+"
+
+53 
+	~"š‹rçû.h
+"
+
+56 #ifdeà
+VNF_ACL
+
+
+58 
+	#NB_ARPICMP_MBUF
+ 64
+
+	)
+
+59 
+	#NB_NDICMP_MBUF
+ 64
+
+	)
+
+60 
+	#IP_VERSION_4
+ 0x40
+
+	)
+
+62 
+	#IP_HDRLEN
+ 0x05
+
+	)
+
+63 
+	#IP_VHL_DEF
+ (
+IP_VERSION_4
+ | 
+IP_HDRLEN
+)
+
+	)
+
+65 
+	#is_muÉiÿ¡_v4_addr
+(
+v4_addr
+) \
+
+66 (((
+	`¹e_be_to_ýu_32
+((
+v4_addr
+)è>> 24è& 0x000000FFè=ð0xE0)
+
+	)
+
+70 
+	#INADDRSZ
+ 4
+
+	)
+
+71 
+	#IN6ADDRSZ
+ 16
+
+	)
+
+72 
+my_š‘_±Ú_v6
+(
+af
+, cÚ¡ *
+¤c
+, *
+d¡
+);
+
+73 
+š‘_±Ú_v6
+(cÚ¡ *
+¤c
+, *
+d¡
+);
+
+74 
+š‘_±Ú_v4
+(cÚ¡ *
+¤c
+, *
+d¡
+);
+
+76 
+ušt8_t
+ 
+	gvnf_commÚ_¬p_lib_š™
+;
+
+77 
+ušt8_t
+ 
+	gvnf_commÚ_nd_lib_š™
+;
+
+78 
+ušt8_t
+ 
+	glßdb_p–še_couÁ
+;
+
+80 
+ušt32_t
+ 
+	gARPICMP_DEBUG
+;
+
+81 
+ušt32_t
+ 
+	gNDIPV6_DEBUG
+;
+
+83 
+ušt32_t
+ 
+	g¬p_rou‹_tbl_šdex
+;
+
+84 
+ušt32_t
+ 
+	gnd_rou‹_tbl_šdex
+;
+
+85 
+ušt32_t
+ 
+	glšk_hw_addr_¬¿y_idx
+;
+
+87 
+ušt32_t
+ 
+	glib_¬p_g‘_mac_»q
+;
+
+88 
+ušt32_t
+ 
+	glib_¬p_nh_found
+;
+
+89 
+ušt32_t
+ 
+	glib_¬p_no_nh_found
+;
+
+90 
+ušt32_t
+ 
+	glib_¬p_¬p_’Œy_found
+;
+
+91 
+ušt32_t
+ 
+	glib_¬p_no_¬p_’Œy_found
+;
+
+92 
+ušt32_t
+ 
+	glib_¬p_pÝuϋ_ÿÎed
+;
+
+93 
+ušt32_t
+ 
+	glib_¬p_d–‘e_ÿÎed
+;
+
+94 
+ušt32_t
+ 
+	glib_¬p_du¶iÿ‹_found
+;
+
+96 
+ušt32_t
+ 
+	glib_nd_g‘_mac_»q
+;
+
+97 
+ušt32_t
+ 
+	glib_nd_nh_found
+;
+
+98 
+ušt32_t
+ 
+	glib_nd_no_nh_found
+;
+
+99 
+ušt32_t
+ 
+	glib_nd_nd_’Œy_found
+;
+
+100 
+ušt32_t
+ 
+	glib_nd_no_¬p_’Œy_found
+;
+
+101 
+ušt32_t
+ 
+	glib_nd_pÝuϋ_ÿÎed
+;
+
+102 
+ušt32_t
+ 
+	glib_nd_d–‘e_ÿÎed
+;
+
+103 
+ušt32_t
+ 
+	glib_nd_du¶iÿ‹_found
+;
+
+105 
+¹e_mempoÞ
+ *
+	glib_¬p_pktmbuf_tx_poÞ
+;
+
+106 
+¹e_mempoÞ
+ *
+	glib_nd_pktmbuf_tx_poÞ
+;
+
+108 
+¹e_mbuf
+ *
+	glib_¬p_pkt
+;
+
+109 
+¹e_mbuf
+ *
+	glib_nd_pkt
+;
+
+111 
+¹e_hash_·¿m‘”s
+ 
+	g¬p_hash_·¿ms
+ = {
+
+112 .
+Çme
+ = "ARP",
+
+113 .
+	g’Œ›s
+ = 64,
+
+114 .
+	gȣrved
+ = 0,
+
+115 .
+	gkey_Ën
+ = (
+¬p_key_v4
+),
+
+116 .
+	ghash_func
+ = 
+¹e_jhash
+,
+
+117 .
+	ghash_func_š™_v®
+ = 0,
+
+120 
+¹e_hash_·¿m‘”s
+ 
+	gnd_hash_·¿ms
+ = {
+
+121 .
+Çme
+ = "ND",
+
+122 .
+	g’Œ›s
+ = 64,
+
+123 .
+	gȣrved
+ = 0,
+
+124 .
+	gkey_Ën
+ = (
+nd_key_v6
+),
+
+125 .
+	ghash_func
+ = 
+¹e_jhash
+,
+
+126 .
+	ghash_func_š™_v®
+ = 0,
+
+129 
+¹e_hash
+ *
+	g¬p_hash_hªdË
+;
+
+130 
+¹e_hash
+ *
+	gnd_hash_hªdË
+;
+
+134 
+­p_·¿ms
+ *
+	gmyAµ
+;
+
+135 
+¹e_p–še
+ *
+	gmyP
+;
+
+136 
+p–še_¬picmp
+ *
+	ggp_¬p
+;
+
+137 
+ušt8_t
+ 
+	gnum_vnf_th»ads
+;
+
+139 #ifdeà
+VNF_ACL
+
+
+141 
+	s¬p_pÜt_add»ss
+ {
+
+142 
+ušt32_t
+ 
+	m
+;
+
+143 
+ušt64_t
+ 
+	mmac_addr
+;
+
+146 
+¬p_pÜt_add»ss
+ 
+	g¬p_pÜt_add»s£s
+[
+RTE_MAX_ETHPORTS
+];
+
+148 
+ušt16_t
+ 
+	g¬p_m‘a_off£t
+;
+
+151 
+	sp–še_¬picmp
+ {
+
+152 
+p–še
+ 
+	mp
+;
+
+153 
+p–še_msg_»q_hªdËr
+
+
+154 
+	mcu¡om_hªdËrs
+[
+PIPELINE_ARPICMP_MSG_REQS
+];
+
+155 
+ušt64_t
+ 
+	m»ûivedPktCouÁ
+;
+
+156 
+ušt64_t
+ 
+	mdrݳdPktCouÁ
+;
+
+157 
+ušt64_t
+ 
+	m£ÁPktCouÁ
+;
+
+158 
+ušt8_t
+ 
+	mlšks_m­
+[
+PIPELINE_MAX_PORT_IN
+];
+
+159 
+ušt8_t
+ 
+	mouÜt_id
+[
+PIPELINE_MAX_PORT_IN
+];
+
+160 
+ušt8_t
+ 
+	mp–še_num
+;
+
+161 } 
+	g__¹e_ÿche_®igÃd
+;
+
+163 #ifdeà
+VNF_ACL
+
+
+165 
+	#MAX_NUM_ARP_ENTRIES
+ 64
+
+	)
+
+166 
+	#MAX_NUM_ND_ENTRIES
+ 64
+
+	)
+
+169 
+lib_nd_rou‹_bË_’Œy
+ 
+	glib_nd_rou‹_bË
+[
+MAX_ND_RT_ENTRY
+] = {
+
+204 
+lib_¬p_rou‹_bË_’Œy
+ 
+	glib_¬p_rou‹_bË
+[
+MAX_ARP_RT_ENTRY
+] = {
+
+227 
+	$p–šes_pÜt_šfo
+()
+
+229 
+­p_·¿ms
+ *
+­p
+ = 
+myAµ
+;
+
+230 
+ušt8_t
+ 
+i
+, 
+p–še
+;
+
+231 
+p–še
+ = 0;…–š< 
+­p
+->
+n_p–šes
+;…ipeline++) {
+
+232 
+	`´štf
+("*** PIPELINE %d ***\n\n", 
+p–še
+);
+
+234 
+	`´štf
+("*** OUTPORTs ***\n");
+
+235 
+i
+ = 1; i < 
+­p
+->
+p–še_·¿ms
+[
+p–še
+].
+n_pktq_out
+;
+
+236 
+i
+++) {
+
+237 
+­p
+->
+p–še_·¿ms
+[
+p–še
+].
+pktq_out
+[
+i
+].
+
+238 
+ty³
+) {
+
+239 
+APP_PKTQ_OUT_SWQ
+:
+
+240 
+	`´štf
+("pktq_out[%d]:%s\n", 
+i
+,
+
+241 
+­p
+->
+swq_·¿ms
+[­p->
+p–še_·¿ms
+
+
+242 [
+p–še
+].
+
+243 
+pktq_out
+[
+i
+].
+id
+].
+Çme
+);
+
+245 
+APP_PKTQ_OUT_HWQ
+:
+
+246 
+	`´štf
+("pktq_out[%d]:%s\n", 
+i
+,
+
+247 
+­p
+->
+hwq_out_·¿ms
+[­p->
+p–še_·¿ms
+
+
+248 [
+p–še
+].
+pktq_out
+
+
+249 [
+i
+].
+id
+].
+Çme
+);
+
+252 
+	`´štf
+("Not OUT SWQ or HWQ\n");
+
+255 
+	`´štf
+("*** INPORTs ***\n");
+
+256 
+i
+ = 0; i < 
+­p
+->
+p–še_·¿ms
+[
+p–še
+].
+n_pktq_š
+; i++) {
+
+257 
+­p
+->
+p–še_·¿ms
+[
+p–še
+].
+pktq_š
+[
+i
+]
+
+258 .
+ty³
+) {
+
+259 
+APP_PKTQ_IN_SWQ
+:
+
+260 
+	`´štf
+("pktq_š[%d]:%s\n", 
+i
+,
+
+261 
+­p
+->
+swq_·¿ms
+[­p->
+p–še_·¿ms
+
+
+262 [
+p–še
+].
+
+263 
+pktq_š
+[
+i
+].
+id
+].
+Çme
+);
+
+265 
+APP_PKTQ_IN_HWQ
+:
+
+266 
+	`´štf
+("pktq_š[%d]:%s\n", 
+i
+,
+
+267 
+­p
+->
+hwq_š_·¿ms
+[­p->
+p–še_·¿ms
+
+
+268 [
+p–še
+].
+
+269 
+pktq_š
+[
+i
+].
+id
+].
+Çme
+);
+
+272 
+	`´štf
+("Not IN SWQ or HWQ\n");
+
+276 
+	}
+}
+
+278 
+	$p–šes_m­_šfo
+()
+
+280 
+i
+ = 0;
+
+282 
+	`´štf
+("PIPELINE_MAX_PORT_IN %d\n", 
+PIPELINE_MAX_PORT_IN
+);
+
+283 
+	`´štf
+("lb_ouÜt_id[%d", 
+lb_ouÜt_id
+[0]);
+
+284 
+i
+ = 1; i < 
+PIPELINE_MAX_PORT_IN
+; i++)
+
+285 
+	`´štf
+(",%d", 
+lb_ouÜt_id
+[
+i
+]);
+
+286 
+	`´štf
+("]\n");
+
+288 
+	`´štf
+("vnf_to_lßdb_m­[%d", 
+vnf_to_lßdb_m­
+[0]);
+
+289 
+i
+ = 1; i < 
+PIPELINE_MAX_PORT_IN
+; i++)
+
+290 
+	`´štf
+(",%d", 
+vnf_to_lßdb_m­
+[
+i
+]);
+
+291 
+	`´štf
+("]\n");
+
+293 
+	`´štf
+("pÜt_to_lßdb_m­[%d", 
+pÜt_to_lßdb_m­
+[0]);
+
+294 
+i
+ = 1; i < 
+PIPELINE_MAX_PORT_IN
+; i++)
+
+295 
+	`´štf
+(",%d", 
+pÜt_to_lßdb_m­
+[
+i
+]);
+
+296 
+	`´štf
+("]\n");
+
+298 
+	`´štf
+("lßdb_p–še_nums[%d", 
+lßdb_p–še_nums
+[0]);
+
+299 
+i
+ = 1; i < 
+PIPELINE_MAX_PORT_IN
+; i++)
+
+300 
+	`´štf
+(",%d", 
+lßdb_p–še_nums
+[
+i
+]);
+
+301 
+	`´štf
+("]\n");
+
+303 
+	`´štf
+("lßdb_p–še[%p", 
+lßdb_p–še
+[0]);
+
+304 
+i
+ = 1; i < 
+PIPELINE_MAX_PORT_IN
+; i++)
+
+305 
+	`´štf
+(",%p", 
+lßdb_p–še
+[
+i
+]);
+
+306 
+	`´štf
+("]\n");
+
+307 
+	}
+}
+
+309 
+	$»gi¡”_p–še_Qs
+(
+ušt8_t
+ 
+p–še_num
+, 
+p–še
+ *
+p
+)
+
+311 
+¹e_pÜt_‘hdev_»ad”
+ *
+hwq
+;
+
+312 
+¹e_pÜt_ršg_wr™”
+ *
+out_swq
+;
+
+313 
+¹e_pÜt_ršg_»ad”
+ *
+š_swq
+;
+
+314 
+¹e_p–še
+ *
+¹e
+ = 
+p
+->p;
+
+315 
+ušt8_t
+ 
+pÜt_couÁ
+ = 0;
+
+316 
+queue_out
+ = 0xff, 
+queue_š
+ = 0xff;
+
+318 
+	`´štf
+("C®lšg„egi¡”_p–še_Q š PIPELINE%d\n", 
+p–še_num
+);
+
+319 
+pÜt_couÁ
+ = 0;…Üt_couÁ < 
+¹e
+->
+num_pÜts_out
+;…ort_count++) {
+
+321 
+myAµ
+->
+p–še_·¿ms
+[
+p–še_num
+].
+
+322 
+pktq_out
+[
+pÜt_couÁ
+].
+ty³
+){
+
+324 
+APP_PKTQ_OUT_SWQ
+:
+
+326 ià(
+pÜt_couÁ
+ >ð
+¹e
+->
+num_pÜts_š
+) {
+
+329 ià(
+¹e
+->
+num_pÜts_out
+ %„‹->
+num_pÜts_š
+)
+
+330 ià(
+pÜt_couÁ
+ =ð
+¹e
+->
+num_pÜts_out
+ - 1)
+
+332 
+‹mp
+;
+
+333 
+‹mp
+ = ((
+pÜt_couÁ
+è% 
+¹e
+->
+num_pÜts_š
+);
+
+335 
+š_swq
+ = 
+¹e
+->
+pÜts_š
+[
+‹mp
+].
+h_pÜt
+;
+
+336 
+out_swq
+ = 
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+337 
+	`´štf
+("in_swq : %s\n",
+
+338 
+š_swq
+->
+ršg
+->
+Çme
+);
+
+339 
+¡©us
+ =
+
+340 
+	`ssÿnf
+(
+š_swq
+->
+ršg
+->
+Çme
+, "SWQ%d",
+
+341 &
+queue_š
+);
+
+342 ià(
+¡©us
+ < 0) {
+
+343 
+	`´štf
+("Unableo„ead SWQ‚umber\n");
+
+346 
+	`´štf
+("out_swq: %s\n",
+
+347 
+out_swq
+->
+ršg
+->
+Çme
+);
+
+348 
+¡©us
+ =
+
+349 
+	`ssÿnf
+(
+out_swq
+->
+ršg
+->
+Çme
+, "SWQ%d",
+
+350 &
+queue_out
+);
+
+351 ià(
+¡©us
+ < 0) {
+
+352 
+	`´štf
+("Unableo„ead SWQ‚umber\n");
+
+355 ià(
+queue_š
+ < 128 && 
+queue_out
+ < 128) {
+
+356 
+SWQ_to_PÜt_m­
+[
+queue_out
+] =
+
+357 
+SWQ_to_PÜt_m­
+[
+queue_š
+];
+
+358 
+	`´štf
+("SWQ_to_PÜt_m­[%d]%d\n", 
+queue_out
+,
+
+359 
+SWQ_to_PÜt_m­
+[
+queue_out
+]);
+
+364 
+myAµ
+->
+p–še_·¿ms
+[
+p–še_num
+].
+
+365 
+pktq_š
+[
+pÜt_couÁ
+].
+ty³
+){
+
+367 
+APP_PKTQ_OUT_HWQ
+:
+
+368 
+hwq
+ = 
+¹e
+->
+pÜts_š
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+369 
+out_swq
+ = 
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+370 
+	`´štf
+("out_swq: %s\n",
+
+371 
+out_swq
+->
+ršg
+->
+Çme
+);
+
+372 
+¡©us
+ =
+
+373 
+	`ssÿnf
+(
+out_swq
+->
+ršg
+->
+Çme
+, "SWQ%d",
+
+374 &
+queue_out
+);
+
+376 ià(
+¡©us
+ < 0) {
+
+377 
+	`´štf
+("Unableo„ead SWQ‚umber\n");
+
+380 ià(
+queue_out
+ < 128) {
+
+381 
+SWQ_to_PÜt_m­
+[
+queue_out
+] = 
+hwq
+->
+pÜt_id
+;
+
+382 
+	`´štf
+("SWQ_to_PÜt_m­[%d]%d\n", 
+queue_out
+,
+
+383 
+SWQ_to_PÜt_m­
+[
+queue_out
+]);
+
+387 
+APP_PKTQ_OUT_SWQ
+:
+
+388 
+š_swq
+ = 
+¹e
+->
+pÜts_š
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+389 
+out_swq
+ = 
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+390 
+	`´štf
+("in_swq : %s\n",
+
+391 
+š_swq
+->
+ršg
+->
+Çme
+);
+
+392 
+¡©us
+ =
+
+393 
+	`ssÿnf
+(
+š_swq
+->
+ršg
+->
+Çme
+, "SWQ%d",
+
+394 &
+queue_š
+);
+
+395 ià(
+¡©us
+ < 0) {
+
+396 
+	`´štf
+("Unableo„ead SWQ‚umber\n");
+
+399 
+	`´štf
+("out_swq: %s\n",
+
+400 
+out_swq
+->
+ršg
+->
+Çme
+);
+
+401 
+¡©us
+ =
+
+402 
+	`ssÿnf
+(
+out_swq
+->
+ršg
+->
+Çme
+, "SWQ%d",
+
+403 &
+queue_out
+);
+
+404 ià(
+¡©us
+ < 0) {
+
+405 
+	`´štf
+("Unableo„ead SWQ‚umber\n");
+
+408 ià(
+queue_š
+ < 128 && 
+queue_out
+ < 128){
+
+409 
+SWQ_to_PÜt_m­
+[
+queue_out
+] =
+
+410 
+SWQ_to_PÜt_m­
+[
+queue_š
+];
+
+411 
+	`´štf
+("SWQ_to_PÜt_m­[%d]%d\n", 
+queue_out
+,
+
+412 
+SWQ_to_PÜt_m­
+[
+queue_out
+]);
+
+417 
+	`´štf
+("This‚ever hits\n");
+
+422 
+APP_PKTQ_OUT_HWQ
+:
+
+423 
+	`´štf
+("This is HWQ\n");
+
+427 
+	`´štf
+("set_phy_outport_map: This‚ever hits\n");
+
+430 
+	}
+}
+
+432 
+	$£t_lšk_m­
+(
+ušt8_t
+ 
+p–še_num
+, 
+p–še
+ *
+p
+, ušt8_ˆ*
+m­
+)
+
+434 
+¹e_pÜt_‘hdev_wr™”
+ *
+hwq
+;
+
+435 
+¹e_pÜt_ršg_wr™”
+ *
+out_swq
+;
+
+436 
+¹e_p–še
+ *
+¹e
+ = 
+p
+->p;
+
+438 
+ušt8_t
+ 
+pÜt_couÁ
+ = 0;
+
+439 
+šdex
+ = 0, 
+queue_out
+ = 0xff;
+
+441 
+	`´štf
+("C®lšg s‘_lšk_m­ iÀPIPELINE%d\n", 
+p–še_num
+);
+
+442 
+pÜt_couÁ
+ = 0;…Üt_couÁ < 
+¹e
+->
+num_pÜts_out
+;…ort_count++) {
+
+444 
+myAµ
+->
+p–še_·¿ms
+[
+p–še_num
+].
+
+445 
+pktq_out
+[
+pÜt_couÁ
+].
+ty³
+){
+
+447 
+APP_PKTQ_OUT_HWQ
+:
+
+448 
+hwq
+ = 
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+449 
+m­
+[
+šdex
+++] = 
+hwq
+->
+pÜt_id
+;
+
+450 
+	`´štf
+("lšks_m­[%d]:%d\n", 
+šdex
+ - 1, 
+m­
+[index - 1]);
+
+453 
+APP_PKTQ_OUT_SWQ
+:
+
+454 
+out_swq
+ = 
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+455 
+	`´štf
+("set_link_map out_swq: %s\n",
+
+456 
+out_swq
+->
+ršg
+->
+Çme
+);
+
+457 
+¡©us
+ = 
+	`ssÿnf
+(
+out_swq
+->
+ršg
+->
+Çme
+, "SWQ%d",
+
+458 &
+queue_out
+);
+
+459 ià(
+¡©us
+ < 0) {
+
+460 
+	`´štf
+("Unableo„ead SWQ‚umber\n");
+
+464 ià(
+queue_out
+ < 128) {
+
+465 
+m­
+[
+šdex
+++] = 
+SWQ_to_PÜt_m­
+[
+queue_out
+];
+
+466 
+	`´štf
+("lšks_m­[%s]:%d\n", 
+out_swq
+->
+ršg
+->
+Çme
+,
+
+467 
+m­
+[
+šdex
+ - 1]);
+
+472 
+	`´štf
+("set_phy_outport_map: This‚ever hits\n");
+
+475 
+	}
+}
+
+477 
+	$£t_ouÜt_id
+(
+ušt8_t
+ 
+p–še_num
+, 
+p–še
+ *
+p
+, ušt8_ˆ*
+m­
+)
+
+479 
+ušt8_t
+ 
+pÜt_couÁ
+ = 0;
+
+480 
+queue_out
+ = 0xff, 
+šdex
+ = 0;
+
+482 
+¹e_pÜt_‘hdev_wr™”
+ *
+hwq
+;
+
+483 
+¹e_pÜt_ršg_wr™”
+ *
+out_swq
+;
+
+484 
+¹e_p–še
+ *
+¹e
+ = 
+p
+->p;
+
+486 
+	`´štf
+("\n**** set_outport_id() with…ipeline_num:%d ****\n\n",
+
+487 
+p–še_num
+);
+
+488 
+pÜt_couÁ
+ = 0;
+
+489 
+pÜt_couÁ
+ < 
+¹e
+->
+num_pÜts_out
+;
+
+490 
+pÜt_couÁ
+++) {
+
+492 
+myAµ
+->
+p–še_·¿ms
+[
+p–še_num
+].
+
+493 
+pktq_out
+[
+pÜt_couÁ
+].
+ty³
+) {
+
+495 
+APP_PKTQ_OUT_HWQ
+:
+
+496 
+hwq
+ = 
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+499 
+m­
+[
+hwq
+->
+pÜt_id
+] = 
+šdex
+;
+
+500 
+	`´štf
+("hwq…ort_id:%d index:%d\n",
+
+501 
+hwq
+->
+pÜt_id
+, 
+šdex
+);
+
+502 
+m­
+[
+hwq
+->
+pÜt_id
+] = 
+šdex
+++;
+
+503 
+	`´štf
+("hwq…ort_id:%d index:%d\n",
+
+504 
+hwq
+->
+pÜt_id
+, 
+šdex
+-1);
+
+505 
+	`´štf
+("ouÜt_id[%d]:%d\n", 
+šdex
+ - 1,
+
+506 
+m­
+[
+šdex
+ - 1]);
+
+510 
+APP_PKTQ_OUT_SWQ
+:
+
+513 ià(
+pÜt_couÁ
+ >ð
+¹e
+->
+num_pÜts_š
+)
+
+514 ià(
+¹e
+->
+num_pÜts_out
+ %„‹->
+num_pÜts_š
+)
+
+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 
+	`´štf
+("set_outport_id out_swq: %s\n",
+
+519 
+out_swq
+->
+ršg
+->
+Çme
+);
+
+520 
+‹mp
+ = 
+	`ssÿnf
+(
+out_swq
+->
+ršg
+->
+Çme
+, "SWQ%d",
+
+521 &
+queue_out
+);
+
+522 ià(
+‹mp
+ < 0) {
+
+523 
+	`´štf
+("Unableo„ead SWQ‚umber\n");
+
+527 ià(
+queue_out
+ < 128 && 
+šdex
+ >= 0) {
+
+528 
+m­
+[
+SWQ_to_PÜt_m­
+[
+queue_out
+]] = 
+šdex
+++;
+
+529 
+	`´štf
+("ouÜt_id[%s]:%d\n", 
+out_swq
+->
+ršg
+->
+Çme
+,
+
+530 
+m­
+[
+SWQ_to_PÜt_m­
+[
+queue_out
+]]);
+
+535 
+	`´štf
+(" ");
+
+539 
+	}
+}
+
+541 
+	$£t_phy_ouÜt_id
+(
+ušt8_t
+ 
+p–še_num
+, 
+p–še
+ *
+p
+, ušt8_ˆ*
+m­
+)
+
+543 
+ušt8_t
+ 
+pÜt_couÁ
+ = 0;
+
+544 
+šdex
+ = 0;
+
+546 
+¹e_pÜt_‘hdev_wr™”
+ *
+hwq
+;
+
+547 
+¹e_p–še
+ *
+¹e
+ = 
+p
+->p;
+
+549 
+	`´štf
+("\n**** set_phy_outport_id() with…ipeline_num:%d ****\n\n",
+
+550 
+p–še_num
+);
+
+551 
+pÜt_couÁ
+ = 0;
+
+552 
+pÜt_couÁ
+ < 
+myAµ
+->
+p–še_·¿ms
+[
+p–še_num
+].
+n_pktq_out
+;
+
+553 
+pÜt_couÁ
+++) {
+
+555 
+myAµ
+->
+p–še_·¿ms
+[
+p–še_num
+].
+
+556 
+pktq_out
+[
+pÜt_couÁ
+].
+ty³
+) {
+
+558 
+APP_PKTQ_OUT_HWQ
+:
+
+559 
+hwq
+ = 
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+560 
+m­
+[
+hwq
+->
+pÜt_id
+] = 
+šdex
+++;
+
+561 
+	`´štf
+("ouÜt_id[%d]:%d\n", 
+šdex
+ - 1,
+
+562 
+m­
+[
+šdex
+ - 1]);
+
+566 
+	`´štf
+(" ");
+
+570 
+	}
+}
+
+572 
+	$£t_phy_špÜt_id
+(
+ušt8_t
+ 
+p–še_num
+, 
+p–še
+ *
+p
+, ušt8_ˆ*
+m­
+)
+
+574 
+ušt8_t
+ 
+pÜt_couÁ
+ = 0;
+
+575 
+šdex
+ = 0;
+
+577 
+¹e_pÜt_‘hdev_»ad”
+ *
+hwq
+;
+
+578 
+¹e_p–še
+ *
+¹e
+ = 
+p
+->p;
+
+580 
+	`´štf
+("\n**** set_phy_inport_id() with…ipeline_num:%d ****\n\n",
+
+581 
+p–še_num
+);
+
+582 
+pÜt_couÁ
+ = 0;
+
+583 
+pÜt_couÁ
+ < 
+myAµ
+->
+p–še_·¿ms
+[
+p–še_num
+].
+n_pktq_š
+;
+
+584 
+pÜt_couÁ
+++) {
+
+586 
+myAµ
+->
+p–še_·¿ms
+[
+p–še_num
+].
+
+587 
+pktq_š
+[
+pÜt_couÁ
+].
+ty³
+) {
+
+589 
+APP_PKTQ_OUT_HWQ
+:
+
+590 
+hwq
+ = 
+¹e
+->
+pÜts_š
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+591 
+m­
+[
+hwq
+->
+pÜt_id
+] = 
+šdex
+++;
+
+592 
+	`´štf
+("ouÜt_id[%d]:%d\n", 
+šdex
+ - 1,
+
+593 
+m­
+[
+šdex
+ - 1]);
+
+597 
+	`´štf
+(" ");
+
+601 
+	}
+}
+
+603 #ifdeà
+VNF_ACL
+
+
+605 
+ušt32_t
+ 
+	$g‘_nh
+(
+ušt32_t
+ 
+
+, ušt32_ˆ*
+pÜt
+)
+
+607 
+i
+ = 0;
+
+608 
+i
+ = 0; i < 
+MAX_ARP_RT_ENTRY
+; i++) {
+
+609 ià(((
+lib_¬p_rou‹_bË
+[
+i
+].
+
+610 
+
+ & 
+lib_¬p_rou‹_bË
+[
+i
+].
+mask
+) ==
+
+611 (
+
+ & 
+lib_¬p_rou‹_bË
+[
+i
+].
+mask
+))) {
+
+613 *
+pÜt
+ = 
+lib_¬p_rou‹_bË
+[
+i
+].port;
+
+614 
+lib_¬p_nh_found
+++;
+
+615  
+lib_¬p_rou‹_bË
+[
+i
+].
+nh
+;
+
+617 ià(
+ARPICMP_DEBUG
+ > 1)
+
+618 
+	`´štf
+("No‚h match ip 0x%x,…ort %u,_ip "
+
+620 
+
+, *
+pÜt
+, 
+lib_¬p_rou‹_bË
+[
+i
+].ip,
+
+621 
+lib_¬p_rou‹_bË
+[
+i
+].
+pÜt
+,
+
+622 
+lib_¬p_rou‹_bË
+[
+i
+].
+mask
+,
+
+623 (
+lib_¬p_rou‹_bË
+[
+i
+].
+
+ &
+
+624 
+lib_¬p_rou‹_bË
+[
+i
+].
+mask
+),
+
+625 (
+
+ & 
+lib_¬p_rou‹_bË
+[
+i
+].
+mask
+));
+
+627 ià(
+ARPICMP_DEBUG
+ && 
+
+)
+
+628 
+	`´štf
+("NØNH - i°0x%x,…܈%u\n", 
+
+, *
+pÜt
+);
+
+629 
+lib_¬p_no_nh_found
+++;
+
+631 
+	}
+}
+
+634 
+	$g‘_nh_v6
+(
+ušt8_t
+ 
+v6
+[], 
+ušt32_t
+ *
+pÜt
+, ušt8_ˆ
+nhv6
+[])
+
+636 
+i
+ = 0;
+
+637 
+ušt8_t
+ 
+Ãtmask_v6
+[16], 
+Ãt_nd
+[16], 
+Ãt_š
+[16];
+
+638 
+ušt8_t
+ 
+k
+ = 0, 
+l
+ = 0, 
+d•thæags
+ = 0, 
+d•thæags1
+ = 0;
+
+639 
+	`mem£t
+(
+Ãtmask_v6
+, 0, (netmask_ipv6));
+
+640 
+	`mem£t
+(
+Ãt_nd
+, 0, (netip_nd));
+
+641 
+	`mem£t
+(
+Ãt_š
+, 0, (netip_in));
+
+642 ià(!
+v6
+)
+
+644 
+i
+ = 0; i < 
+MAX_ARP_RT_ENTRY
+; i++) {
+
+646 
+	`cÚv”t_´efixËn_to_Ãtmask_v6
+(
+
+647 
+lib_nd_rou‹_bË
+[
+i
+].
+d•th
+,
+
+648 
+Ãtmask_v6
+);
+
+650 
+k
+ = 0; k < 16; k++) {
+
+651 ià(
+lib_nd_rou‹_bË
+[
+i
+].
+v6
+[
+k
+] & 
+Ãtmask_v6
+[k]) {
+
+652 
+d•thæags
+++;
+
+653 
+Ãt_nd
+[
+k
+] = 
+lib_nd_rou‹_bË
+[
+i
+].
+v6
+[k];
+
+657 
+l
+ = 0;† < 16;†++) {
+
+658 ià(
+v6
+[
+l
+] & 
+Ãtmask_v6
+[l]) {
+
+659 
+d•thæags1
+++;
+
+660 
+Ãt_š
+[
+l
+] = 
+v6
+[l];
+
+663 
+j
+ = 0;
+
+664 ià((
+d•thæags
+ =ð
+d•thæags1
+)
+
+665 && (
+	`memcmp
+(
+Ãt_nd
+, 
+Ãt_š
+,
+
+666 (
+Ãt_nd
+)) == 0)) {
+
+668 *
+pÜt
+ = 
+lib_nd_rou‹_bË
+[
+i
+].port;
+
+669 
+lib_nd_nh_found
+++;
+
+671 
+j
+ = 0; j < 16; j++)
+
+672 
+nhv6
+[
+j
+] = 
+lib_nd_rou‹_bË
+[
+i
+].nhipv6[j];
+
+677 ià(
+NDIPV6_DEBUG
+ > 1)
+
+678 
+	`´štf
+("No‚h match\n");
+
+679 
+d•thæags
+ = 0;
+
+680 
+d•thæags1
+ = 0;
+
+682 ià(
+NDIPV6_DEBUG
+ && 
+v6
+)
+
+683 
+	`´štf
+("NØNH - i°0x%x,…܈%u\n", 
+v6
+[0], *
+pÜt
+);
+
+684 
+lib_nd_no_nh_found
+++;
+
+685 
+	}
+}
+
+688 
+	$g‘_de¡_mac_addr_pÜt
+(cÚ¡ 
+ušt32_t
+ 
+addr
+,
+
+689 
+ušt32_t
+ *
+phy_pÜt
+, 
+‘h”_addr
+ *
+hw_addr
+)
+
+691 
+lib_¬p_g‘_mac_»q
+++;
+
+692 
+ušt32_t
+ 
+nh
+ = 0;
+
+694 
+nh
+ = 
+	`g‘_nh
+(
+addr
+, 
+phy_pÜt
+);
+
+695 ià(
+nh
+ == 0) {
+
+696 ià(
+ARPICMP_DEBUG
+ && 
+addr
+)
+
+697 
+	`´štf
+("ARPICMP‚o‚h found for ip %x,…ort %d\n",
+
+698 
+addr
+, *
+phy_pÜt
+);
+
+700  
+NH_NOT_FOUND
+;
+
+703 
+¬p_’Œy_d©a
+ *
+»t_¬p_d©a
+ = 
+NULL
+;
+
+704 
+¬p_key_v4
+ 
+tmp_¬p_key
+;
+
+705 
+tmp_¬p_key
+.
+pÜt_id
+ = *
+phy_pÜt
+;
+
+706 
+tmp_¬p_key
+.
+
+ = 
+nh
+;
+
+708 
+»t_¬p_d©a
+ = 
+	`»Œ›ve_¬p_’Œy
+(
+tmp_¬p_key
+);
+
+709 ià(
+»t_¬p_d©a
+ =ð
+NULL
+) {
+
+710 ià(
+ARPICMP_DEBUG
+ && 
+addr
+) {
+
+711 
+´štf
+
+
+713 
+addr
+, *
+phy_pÜt
+);
+
+714 
+	`´št_¬p_bË
+();
+
+716 
+lib_¬p_no_¬p_’Œy_found
+++;
+
+717  
+ARP_NOT_FOUND
+;
+
+719 
+	`‘h”_addr_cÝy
+(&
+»t_¬p_d©a
+->
+‘h_addr
+, 
+hw_addr
+);
+
+720 
+lib_¬p_¬p_’Œy_found
+++;
+
+721  
+ARP_FOUND
+;
+
+722 
+	}
+}
+
+725 
+	$g‘_de¡_mac_add»ss_v6
+(
+ušt8_t
+ 
+v6addr
+[], 
+ušt32_t
+ 
+phy_pÜt
+,
+
+726 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt8_t
+ 
+nhv6
+[])
+
+728 
+i
+ = 0, 
+j
+ = 0, 
+æag
+ = 0;
+
+729 
+lib_nd_g‘_mac_»q
+++;
+
+731 ià(
+v6addr
+)
+
+732 
+	`g‘_nh_v6
+(
+v6addr
+, &
+phy_pÜt
+, 
+nhv6
+);
+
+733 
+j
+ = 0; j < 16; j++) {
+
+734 ià(
+nhv6
+[
+j
+])
+
+735 
+æag
+++;
+
+737 ià(
+æag
+ == 0) {
+
+738 ià(
+v6addr
+) {
+
+739 ià(
+NDIPV6_DEBUG
+ && 
+v6addr
+)
+
+740 
+	`´štf
+("NDIPV6‚o‚h found for ipv6 "
+
+743 
+v6addr
+[0], ipv6addr[1], ipv6addr[2], ipv6addr[3],
+
+744 
+v6addr
+[4], ipv6addr[5], ipv6addr[6], ipv6addr[7],
+
+745 
+v6addr
+[8], ipv6addr[9], ipv6addr[10],
+
+746 
+v6addr
+[11], ipv6addr[12], ipv6addr[13],
+
+747 
+v6addr
+[14], ipv6addr[15], 
+phy_pÜt
+);
+
+752 
+nd_’Œy_d©a
+ *
+»t_nd_d©a
+ = 
+NULL
+;
+
+753 
+nd_key_v6
+ 
+tmp_nd_key
+;
+
+754 
+tmp_nd_key
+.
+pÜt_id
+ = 
+phy_pÜt
+;
+
+756 
+i
+ = 0; i < 16; i++)
+
+757 
+tmp_nd_key
+.
+v6
+[
+i
+] = 
+nhv6
+[i];
+
+759 
+»t_nd_d©a
+ = 
+	`»Œ›ve_nd_’Œy
+(
+tmp_nd_key
+);
+
+760 ià(
+»t_nd_d©a
+ =ð
+NULL
+) {
+
+761 ià(
+NDIPV6_DEBUG
+ && 
+v6addr
+) {
+
+762 
+	`´štf
+("NDIPV6‚o‚dƒntry found for ip %x,…ort %d\n",
+
+763 
+v6addr
+[0], 
+phy_pÜt
+);
+
+765 
+lib_nd_no_¬p_’Œy_found
+++;
+
+768 
+	`‘h”_addr_cÝy
+(&
+»t_nd_d©a
+->
+‘h_addr
+, 
+hw_addr
+);
+
+769 
+lib_nd_nd_’Œy_found
+++;
+
+772 
+	}
+}
+
+775 
+	$g‘_de¡_mac_add»ss_v6_pÜt
+(
+ušt8_t
+ 
+v6addr
+[], 
+ušt32_t
+ *
+phy_pÜt
+,
+
+776 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt8_t
+ 
+nhv6
+[])
+
+778 
+i
+ = 0, 
+j
+ = 0, 
+æag
+ = 0;
+
+779 
+lib_nd_g‘_mac_»q
+++;
+
+781 
+	`g‘_nh_v6
+(
+v6addr
+, 
+phy_pÜt
+, 
+nhv6
+);
+
+782 
+j
+ = 0; j < 16; j++) {
+
+783 ià(
+nhv6
+[
+j
+])
+
+784 
+æag
+++;
+
+786 ià(
+æag
+ == 0) {
+
+787 ià(
+NDIPV6_DEBUG
+ && 
+v6addr
+)
+
+788 
+	`´štf
+("NDIPV6‚o‚h found for ipv6 "
+
+791 
+v6addr
+[0], ipv6addr[1], ipv6addr[2], ipv6addr[3],
+
+792 
+v6addr
+[4], ipv6addr[5], ipv6addr[6], ipv6addr[7],
+
+793 
+v6addr
+[8], ipv6addr[9], ipv6addr[10],
+
+794 
+v6addr
+[11], ipv6addr[12], ipv6addr[13],
+
+795 
+v6addr
+[14], ipv6addr[15], *
+phy_pÜt
+);
+
+799 
+nd_’Œy_d©a
+ *
+»t_nd_d©a
+ = 
+NULL
+;
+
+800 
+nd_key_v6
+ 
+tmp_nd_key
+;
+
+801 
+tmp_nd_key
+.
+pÜt_id
+ = *
+phy_pÜt
+;
+
+803 
+i
+ = 0; i < 16; i++)
+
+804 
+tmp_nd_key
+.
+v6
+[
+i
+] = 
+nhv6
+[i];
+
+806 
+»t_nd_d©a
+ = 
+	`»Œ›ve_nd_’Œy
+(
+tmp_nd_key
+);
+
+807 ià(
+»t_nd_d©a
+ =ð
+NULL
+) {
+
+808 ià(
+NDIPV6_DEBUG
+ && 
+v6addr
+) {
+
+809 
+	`´štf
+("NDIPV6‚o‚dƒntry found for ip %x,…ort %d\n",
+
+810 
+v6addr
+[0], *
+phy_pÜt
+);
+
+812 
+lib_nd_no_¬p_’Œy_found
+++;
+
+815 
+	`‘h”_addr_cÝy
+(&
+»t_nd_d©a
+->
+‘h_addr
+, 
+hw_addr
+);
+
+816 
+lib_nd_nd_’Œy_found
+++;
+
+819 
+	}
+}
+
+824 
+	slib_¬p_¬p_bË_’Œy
+ {
+
+825 
+¹e_p–še_bË_’Œy
+ 
+	mh—d
+;
+
+826 
+ušt64_t
+ 
+	mmaÿddr
+;
+
+829 cÚ¡ *
+	$¬p_Ý_Çme
+(
+ušt16_t
+ 
+¬p_Ý
+)
+
+831 
+	`CHECK_ENDIAN_16
+(
+¬p_Ý
+)) {
+
+832 (
+ARP_OP_REQUEST
+):
+
+834 (
+ARP_OP_REPLY
+):
+
+836 (
+ARP_OP_REVREQUEST
+):
+
+838 (
+ARP_OP_REVREPLY
+):
+
+840 (
+ARP_OP_INVREQUEST
+):
+
+842 (
+ARP_OP_INVREPLY
+):
+
+848 
+	}
+}
+
+850 
+	$´št_icmp_·ck‘
+(
+icmp_hdr
+ *
+icmp_h
+)
+
+852 
+	`´štf
+(" ICMP:ype=%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’t
+),
+
+858 
+	`CHECK_ENDIAN_16
+(
+icmp_h
+->
+icmp_£q_nb
+));
+
+859 
+	}
+}
+
+861 
+	$´št_v4_h
+(
+v4_hdr
+ *
+_h
+)
+
+863 
+icmp_hdr
+ *
+icmp_h
+ =
+
+864 (
+icmp_hdr
+ *)((*)
+_h
+ + (
+v4_hdr
+));
+
+865 
+	`´štf
+(" IPv4: Version=%d HLEN=%d Type=%d Length=%d\n",
+
+866 (
+_h
+->
+v”siÚ_ihl
+ & 0xf0) >> 4, (ip_h->version_ihl & 0x0f),
+
+867 
+_h
+->
+ty³_of_£rviû
+, 
+	`¹e_ýu_to_be_16
+(_h->
+tÙ®_Ëngth
+));
+
+868 ià(
+_h
+->
+Ãxt_´Ùo_id
+ =ð
+IPPROTO_ICMP
+)
+
+869 
+	`´št_icmp_·ck‘
+(
+icmp_h
+);
+
+870 
+	}
+}
+
+872 
+	$´št_¬p_·ck‘
+(
+¬p_hdr
+ *
+¬p_h
+)
+
+874 
+	`´štf
+(" ARP: hrd=%d…roto=0x%04x hln=%d "
+
+876 
+	`CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_hrd
+),
+
+877 
+	`CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_´o
+),‡½_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 
+	`´štf
+("incorrect‡rp_hrd format for IPv4 ARP (%d)\n",
+
+883 (
+¬p_h
+->
+¬p_hrd
+));
+
+884 } ià(
+	`CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_´o
+è!ð
+ETHER_TYPE_IPv4
+) {
+
+885 
+	`´štf
+("incorrect‡rp_pro format for IPv4 ARP (%d)\n",
+
+886 (
+¬p_h
+->
+¬p_´o
+));
+
+887 } ià(
+¬p_h
+->
+¬p_hÊ
+ != 6) {
+
+888 
+	`´štf
+("incorrect‡rp_hln format for IPv4 ARP (%d)\n",
+
+889 
+¬p_h
+->
+¬p_hÊ
+);
+
+890 } ià(
+¬p_h
+->
+¬p_¶n
+ != 4) {
+
+891 
+	`´štf
+("incorrect‡rp_pln format for IPv4 ARP (%d)\n",
+
+892 
+¬p_h
+->
+¬p_¶n
+);
+
+895 
+	`´štf
+(" sha=%02X:%02X:%02X:%02X:%02X:%02X",
+
+896 
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by‹s
+[0],
+
+897 
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by‹s
+[1],
+
+898 
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by‹s
+[2],
+
+899 
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by‹s
+[3],
+
+900 
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by‹s
+[4],
+
+901 
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by‹s
+[5]);
+
+902 
+	`´štf
+(" sip=%d.%d.%d.%d\n",
+
+903 (
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+) >> 24) & 0xFF,
+
+904 (
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+) >> 16) & 0xFF,
+
+905 (
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+) >> 8) & 0xFF,
+
+906 
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+) & 0xFF);
+
+907 
+	`´štf
+("ha=%02X:%02X:%02X:%02X:%02X:%02X",
+
+908 
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by‹s
+[0],
+
+909 
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by‹s
+[1],
+
+910 
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by‹s
+[2],
+
+911 
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by‹s
+[3],
+
+912 
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by‹s
+[4],
+
+913 
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by‹s
+[5]);
+
+914 
+	`´štf
+("ip=%d.%d.%d.%d\n",
+
+915 (
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+) >> 24) & 0xFF,
+
+916 (
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+) >> 16) & 0xFF,
+
+917 (
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+) >> 8) & 0xFF,
+
+918 
+	`CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+) & 0xFF);
+
+920 
+	}
+}
+
+922 
+	$´št_‘h
+(
+‘h”_hdr
+ *
+‘h_h
+)
+
+924 
+	`´štf
+(" ETH: src=%02X:%02X:%02X:%02X:%02X:%02X",
+
+925 
+‘h_h
+->
+s_addr
+.
+addr_by‹s
+[0],
+
+926 
+‘h_h
+->
+s_addr
+.
+addr_by‹s
+[1],
+
+927 
+‘h_h
+->
+s_addr
+.
+addr_by‹s
+[2],
+
+928 
+‘h_h
+->
+s_addr
+.
+addr_by‹s
+[3],
+
+929 
+‘h_h
+->
+s_addr
+.
+addr_by‹s
+[4],ƒth_h->s_addr.addr_bytes[5]);
+
+930 
+	`´štf
+(" dst=%02X:%02X:%02X:%02X:%02X:%02X\n",
+
+931 
+‘h_h
+->
+d_addr
+.
+addr_by‹s
+[0],
+
+932 
+‘h_h
+->
+d_addr
+.
+addr_by‹s
+[1],
+
+933 
+‘h_h
+->
+d_addr
+.
+addr_by‹s
+[2],
+
+934 
+‘h_h
+->
+d_addr
+.
+addr_by‹s
+[3],
+
+935 
+‘h_h
+->
+d_addr
+.
+addr_by‹s
+[4],ƒth_h->d_addr.addr_bytes[5]);
+
+937 
+	}
+}
+
+940 
+	$´št_mbuf
+(cÚ¡ *
+rx_tx
+, 
+pÜtid
+, 
+¹e_mbuf
+ *
+mbuf
+,
+
+941 
+lše
+)
+
+943 
+‘h”_hdr
+ *
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+mbuf
+, ether_hdr *);
+
+944 
+¬p_hdr
+ *
+¬p_h
+ =
+
+945 (
+¬p_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+946 
+v4_hdr
+ *
+v4_h
+ =
+
+947 (
+v4_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+949 
+	`´štf
+("%s(%d): on…ort %d…kt-len=%u‚b-segs=%u\n",
+
+950 
+rx_tx
+, 
+lše
+, 
+pÜtid
+, 
+mbuf
+->
+pkt_Ën
+, mbuf->
+nb_£gs
+);
+
+951 
+	`´št_‘h
+(
+‘h_h
+);
+
+952 
+	`¹e_ýu_to_be_16
+(
+‘h_h
+->
+‘h”_ty³
+)) {
+
+953 
+ETHER_TYPE_IPv4
+:
+
+954 
+	`´št_v4_h
+(
+v4_h
+);
+
+956 
+ETHER_TYPE_ARP
+:
+
+957 
+	`´št_¬p_·ck‘
+(
+¬p_h
+);
+
+960 
+	`´štf
+(" unknown…acketype\n");
+
+963 
+	`fæush
+(
+¡dout
+);
+
+964 
+	}
+}
+
+966 
+¬p_’Œy_d©a
+ *
+	$»Œ›ve_¬p_’Œy
+(
+¬p_key_v4
+ 
+¬p_key
+)
+
+968 
+¬p_’Œy_d©a
+ *
+»t_¬p_d©a
+ = 
+NULL
+;
+
+969 
+¬p_key
+.
+fžËr1
+ = 0;
+
+970 
+¬p_key
+.
+fžËr2
+ = 0;
+
+971 
+¬p_key
+.
+fžËr3
+ = 0;
+
+973 
+»t
+ = 
+	`¹e_hash_lookup_d©a
+(
+¬p_hash_hªdË
+, &
+¬p_key
+,
+
+974 (**)&
+»t_¬p_d©a
+);
+
+975 ià(
+»t
+ < 0) {
+
+976 ià(
+ARPICMP_DEBUG
+)
+
+977 
+	`´štf
+("arp-hash†ookup failed„et %d, "
+
+979 
+»t
+, 
+EINVAL
+, 
+ENOENT
+);
+
+981  
+»t_¬p_d©a
+;
+
+984  
+NULL
+;
+
+985 
+	}
+}
+
+993 
+nd_’Œy_d©a
+ *
+	$»Œ›ve_nd_’Œy
+(
+nd_key_v6
+ 
+nd_key
+)
+
+995 
+nd_’Œy_d©a
+ *
+»t_nd_d©a
+ = 
+NULL
+;
+
+996 
+nd_key
+.
+fžËr1
+ = 0;
+
+997 
+nd_key
+.
+fžËr2
+ = 0;
+
+998 
+nd_key
+.
+fžËr3
+ = 0;
+
+1001 
+»t
+ = 
+	`¹e_hash_lookup_d©a
+(
+nd_hash_hªdË
+, &
+nd_key
+,
+
+1002 (**)&
+»t_nd_d©a
+);
+
+1003 ià(
+»t
+ < 0) {
+
+1004 ià(
+NDIPV6_DEBUG
+)
+
+1005 
+	`´štf
+("nd-hash:‚o†ookup Entry Found - "
+
+1007 
+»t
+, 
+EINVAL
+, 
+ENOENT
+);
+
+1009  
+»t_nd_d©a
+;
+
+1012  
+NULL
+;
+
+1013 
+	}
+}
+
+1015 
+	$´št_¬p_bË
+()
+
+1017 cÚ¡ *
+Ãxt_key
+;
+
+1018 *
+Ãxt_d©a
+;
+
+1019 
+ušt32_t
+ 
+™”
+ = 0;
+
+1021 
+	`´štf
+("\tport hw‡ddr status ip‡ddr\n");
+
+1023 
+	`¹e_hash_™”©e
+(
+¬p_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+™”
+)
+
+1026 
+¬p_’Œy_d©a
+ *
+tmp_¬p_d©a
+ =
+
+1027 (
+¬p_’Œy_d©a
+ *)
+Ãxt_d©a
+;
+
+1028 
+¬p_key_v4
+ 
+tmp_¬p_key
+;
+
+1029 
+	`memýy
+(&
+tmp_¬p_key
+, 
+Ãxt_key
+, (
+¬p_key_v4
+));
+
+1030 
+´štf
+
+
+1032 
+tmp_¬p_d©a
+->
+pÜt
+,mp_¬p_d©a->
+‘h_addr
+.
+addr_by‹s
+[0],
+
+1033 
+tmp_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[1],
+
+1034 
+tmp_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[2],
+
+1035 
+tmp_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[3],
+
+1036 
+tmp_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[4],
+
+1037 
+tmp_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[5],
+
+1038 
+tmp_¬p_d©a
+->
+¡©us
+ ==
+
+1039 
+COMPLETE
+ ? "COMPLETE" : "INCOMPLETE",
+
+1040 (
+tmp_¬p_d©a
+->
+
+ >> 24),
+
+1041 ((
+tmp_¬p_d©a
+->
+
+ & 0x00ff0000) >> 16),
+
+1042 ((
+tmp_¬p_d©a
+->
+
+ & 0x0000ff00) >> 8),
+
+1043 ((
+tmp_¬p_d©a
+->
+
+ & 0x000000ff)));
+
+1046 
+ušt32_t
+ 
+i
+ = 0;
+
+1047 
+	`´štf
+("\nARP„outšgabË ha %dƒÁr›s\n", 
+¬p_rou‹_tbl_šdex
+);
+
+1048 
+	`´štf
+("\nIP_Address Mask Port NH_IP_Address\n");
+
+1049 
+i
+ = 0; i < 
+¬p_rou‹_tbl_šdex
+; i++) {
+
+1050 
+	`´štf
+("0x%x 0x%x %d 0x%x\n",
+
+1051 
+lib_¬p_rou‹_bË
+[
+i
+].
+
+,
+
+1052 
+lib_¬p_rou‹_bË
+[
+i
+].
+mask
+,
+
+1053 
+lib_¬p_rou‹_bË
+[
+i
+].
+pÜt
+,†ib_¬p_rou‹_bË[i].
+nh
+);
+
+1056 
+	`´štf
+("\nARP Stats: Total Queries %u, ok_NH %u,‚o_NH %u, "
+
+1058 
+lib_¬p_g‘_mac_»q
+, 
+lib_¬p_nh_found
+, 
+lib_¬p_no_nh_found
+,
+
+1059 
+lib_¬p_¬p_’Œy_found
+, 
+lib_¬p_no_¬p_’Œy_found
+,
+
+1060 
+lib_¬p_pÝuϋ_ÿÎed
+, 
+lib_¬p_d–‘e_ÿÎed
+,
+
+1061 
+lib_¬p_du¶iÿ‹_found
+);
+
+1063 
+	`´štf
+("ARPabË key†’ i %lu\n", (
+¬p_key_v4
+));
+
+1064 
+	}
+}
+
+1067 
+	$´št_nd_bË
+()
+
+1069 cÚ¡ *
+Ãxt_key
+;
+
+1070 *
+Ãxt_d©a
+;
+
+1071 
+ušt32_t
+ 
+™”
+ = 0;
+
+1072 
+ušt8_t
+ 
+ii
+ = 0, 
+j
+ = 0, 
+k
+ = 0;
+
+1074 
+	`´štf
+("\tport hw‡ddr status ip‡ddr\n");
+
+1076 
+	`¹e_hash_™”©e
+(
+nd_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+™”
+) >=
+
+1079 
+nd_’Œy_d©a
+ *
+tmp_nd_d©a
+ =
+
+1080 (
+nd_’Œy_d©a
+ *)
+Ãxt_d©a
+;
+
+1081 
+nd_key_v6
+ 
+tmp_nd_key
+;
+
+1082 
+	`memýy
+(&
+tmp_nd_key
+, 
+Ãxt_key
+, (
+nd_key_v6
+));
+
+1083 
+	`´štf
+("\t%4d %02X:%02X:%02X:%02X:%02X:%02X %10s\n",
+
+1084 
+tmp_nd_d©a
+->
+pÜt
+,
+
+1085 
+tmp_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[0],
+
+1086 
+tmp_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[1],
+
+1087 
+tmp_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[2],
+
+1088 
+tmp_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[3],
+
+1089 
+tmp_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[4],
+
+1090 
+tmp_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[5],
+
+1091 
+tmp_nd_d©a
+->
+¡©us
+ ==
+
+1092 
+COMPLETE
+ ? "COMPLETE" : "INCOMPLETE");
+
+1093 
+	`´štf
+("\t\t\t\t\t\t");
+
+1094 
+ii
+ = 0; i˜< 
+ND_IPV6_ADDR_SIZE
+; ii += 2) {
+
+1095 
+	`´štf
+("%02X%02X ", 
+tmp_nd_d©a
+->
+v6
+[
+ii
+],
+
+1096 
+tmp_nd_d©a
+->
+v6
+[
+ii
+ + 1]);
+
+1098 
+	`´štf
+("\n");
+
+1101 
+ušt32_t
+ 
+i
+ = 0;
+
+1102 
+	`´štf
+("\n\nND IPV6„outingable has %dƒntries\n",
+
+1103 
+nd_rou‹_tbl_šdex
+);
+
+1104 
+	`´štf
+("\nIP_Address Depth Port NH_IP_Address\n");
+
+1105 
+i
+ = 0; i < 
+nd_rou‹_tbl_šdex
+; i++) {
+
+1106 
+	`´štf
+("\n");
+
+1108 
+j
+ = 0; j < 
+ND_IPV6_ADDR_SIZE
+; j += 2) {
+
+1109 
+	`´štf
+("%02X%02X ", 
+lib_nd_rou‹_bË
+[
+i
+].
+v6
+[
+j
+],
+
+1110 
+lib_nd_rou‹_bË
+[
+i
+].
+v6
+[
+j
+ + 1]);
+
+1113 
+´štf
+
+
+1115 
+lib_nd_rou‹_bË
+[
+i
+].
+d•th
+,†ib_nd_rou‹_bË[i].
+pÜt
+);
+
+1116 
+	`´štf
+("\t\t\t\t\t\t\t\t\t");
+
+1117 
+k
+ = 0; k < 
+ND_IPV6_ADDR_SIZE
+; k += 2) {
+
+1118 
+	`´štf
+("%02X%02X ", 
+lib_nd_rou‹_bË
+[
+i
+].
+nhv6
+[
+k
+],
+
+1119 
+lib_nd_rou‹_bË
+[
+i
+].
+v6
+[
+k
+ + 1]);
+
+1122 
+	`´štf
+("\nND IPV6 Stats:\nTotal Queries %u, ok_NH %u,‚o_NH %u,"
+
+1124 
+lib_nd_g‘_mac_»q
+, 
+lib_nd_nh_found
+, 
+lib_nd_no_nh_found
+,
+
+1125 
+lib_nd_nd_’Œy_found
+, 
+lib_nd_no_¬p_’Œy_found
+,
+
+1126 
+lib_nd_pÝuϋ_ÿÎed
+, 
+lib_nd_d–‘e_ÿÎed
+,
+
+1127 
+lib_nd_du¶iÿ‹_found
+);
+
+1128 
+	`´štf
+("NDabË key†’ i %lu\n\n", (
+nd_key_v6
+));
+
+1129 
+	}
+}
+
+1131 
+	$»move_¬p_’Œy
+(
+ušt32_t
+ 
+addr
+, 
+ušt8_t
+ 
+pÜtid
+)
+
+1136 
+¬p_key_v4
+ 
+¬p_key
+;
+
+1137 
+¬p_key
+.
+pÜt_id
+ = 
+pÜtid
+;
+
+1138 
+¬p_key
+.
+
+ = 
+addr
+;
+
+1139 
+¬p_key
+.
+fžËr1
+ = 0;
+
+1140 
+¬p_key
+.
+fžËr2
+ = 0;
+
+1141 
+¬p_key
+.
+fžËr3
+ = 0;
+
+1143 
+lib_¬p_d–‘e_ÿÎed
+++;
+
+1145 ià(
+ARPICMP_DEBUG
+)
+
+1146 
+	`´štf
+("»move_¬p_’Œy i°%x,…܈%d\n", 
+¬p_key
+.
+
+,
+
+1147 
+¬p_key
+.
+pÜt_id
+);
+
+1148 
+	`¹e_hash_d–_key
+(
+¬p_hash_hªdË
+, &
+¬p_key
+);
+
+1149 
+	}
+}
+
+1152 
+	$»move_nd_’Œy_v6
+(
+ušt8_t
+ 
+v6addr
+[], ušt8_ˆ
+pÜtid
+)
+
+1156 
+i
+ = 0;
+
+1157 
+nd_key_v6
+ 
+nd_key
+;
+
+1158 
+nd_key
+.
+pÜt_id
+ = 
+pÜtid
+;
+
+1161 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+1162 
+nd_key
+.
+v6
+[
+i
+] = 
+v6addr
+[i];
+
+1164 
+nd_key
+.
+fžËr1
+ = 0;
+
+1165 
+nd_key
+.
+fžËr2
+ = 0;
+
+1166 
+nd_key
+.
+fžËr3
+ = 0;
+
+1168 
+lib_nd_d–‘e_ÿÎed
+++;
+
+1170 ià(
+NDIPV6_DEBUG
+) {
+
+1171 
+	`´štf
+("Deletes„te hashable‚dƒntry for…ort %d ipv6=",
+
+1172 
+nd_key
+.
+pÜt_id
+);
+
+1173 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i += 2)
+
+1174 
+	`´štf
+("%02X%02X ", 
+nd_key
+.
+v6
+[
+i
+],‚d_key.ipv6[i + 1]);
+
+1176 
+	`¹e_hash_d–_key
+(
+nd_hash_hªdË
+, &
+nd_key
+);
+
+1177 
+	}
+}
+
+1180 
+	$pÝuϋ_¬p_’Œy
+(cÚ¡ 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt32_t
+ 
+addr
+,
+
+1181 
+ušt8_t
+ 
+pÜtid
+)
+
+1185 
+¬p_key_v4
+ 
+¬p_key
+;
+
+1186 
+¬p_key
+.
+pÜt_id
+ = 
+pÜtid
+;
+
+1187 
+¬p_key
+.
+
+ = 
+addr
+;
+
+1188 
+¬p_key
+.
+fžËr1
+ = 0;
+
+1189 
+¬p_key
+.
+fžËr2
+ = 0;
+
+1190 
+¬p_key
+.
+fžËr3
+ = 0;
+
+1192 
+lib_¬p_pÝuϋ_ÿÎed
+++;
+
+1194 ià(
+ARPICMP_DEBUG
+)
+
+1195 
+	`´štf
+("pÝuϋ_¬p_’Œy i°%x,…܈%d\n", 
+¬p_key
+.
+
+,
+
+1196 
+¬p_key
+.
+pÜt_id
+);
+
+1197 
+¬p_’Œy_d©a
+ *
+Ãw_¬p_d©a
+ = 
+	`»Œ›ve_¬p_’Œy
+(
+¬p_key
+);
+
+1198 ià(
+Ãw_¬p_d©a
+
+
+1199 && 
+	`is_§me_‘h”_addr
+(&
+Ãw_¬p_d©a
+->
+‘h_addr
+, 
+hw_addr
+)) {
+
+1200 ià(
+ARPICMP_DEBUG
+)
+
+1201 
+	`´štf
+("¬p_’Œyƒxi¡ %x,…܈%d\n", 
+¬p_key
+.
+
+,
+
+1202 
+¬p_key
+.
+pÜt_id
+);
+
+1203 
+lib_¬p_du¶iÿ‹_found
+++;
+
+1206 
+Ãw_¬p_d©a
+ = (
+¬p_’Œy_d©a
+ *)
+
+1207 
+	`m®loc
+((
+¬p_’Œy_d©a
+));
+
+1208 ià(
+Ãw_¬p_d©a
+ =ð
+NULL
+) {
+
+1209 
+	`´štf
+("populate_arp_entry:new_arp_data is NULL\n");
+
+1212 
+Ãw_¬p_d©a
+->
+‘h_addr
+ = *
+hw_addr
+;
+
+1213 
+Ãw_¬p_d©a
+->
+¡©us
+ = 
+INCOMPLETE
+;
+
+1214 
+Ãw_¬p_d©a
+->
+pÜt
+ = 
+pÜtid
+;
+
+1215 
+Ãw_¬p_d©a
+->
+
+ = 
+addr
+;
+
+1216 
+	`¹e_hash_add_key_d©a
+(
+¬p_hash_hªdË
+, &
+¬p_key
+, 
+Ãw_¬p_d©a
+);
+
+1218 ià(
+ARPICMP_DEBUG
+) {
+
+1220 
+	`´štf
+("\tARP:able update - hwaddr= "
+
+1223 
+Ãw_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[0],
+
+1224 
+Ãw_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[1],
+
+1225 
+Ãw_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[2],
+
+1226 
+Ãw_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[3],
+
+1227 
+Ãw_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[4],
+
+1228 
+Ãw_¬p_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[5],
+
+1229 (
+¬p_key
+.
+
+ >> 24),
+
+1230 ((
+¬p_key
+.
+
+ & 0x00ff0000) >> 16),
+
+1231 ((
+¬p_key
+.
+
+ & 0x0000ff00) >> 8),
+
+1232 ((
+¬p_key
+.
+
+ & 0x000000ff)), 
+pÜtid
+);
+
+1234 
+	`puts
+("");
+
+1236 
+	}
+}
+
+1245 
+	$pÝuϋ_nd_’Œy
+(cÚ¡ 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt8_t
+ 
+v6
+[],
+
+1246 
+ušt8_t
+ 
+pÜtid
+)
+
+1251 
+ušt8_t
+ 
+i
+;
+
+1252 
+nd_key_v6
+ 
+nd_key
+;
+
+1253 
+nd_key
+.
+pÜt_id
+ = 
+pÜtid
+;
+
+1255 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++ )
+
+1256 
+nd_key
+.
+v6
+[
+i
+] = ipv6[i];
+
+1258 
+	`´štf
+("\n");
+
+1259 
+nd_key
+.
+fžËr1
+ = 0;
+
+1260 
+nd_key
+.
+fžËr2
+ = 0;
+
+1261 
+nd_key
+.
+fžËr3
+ = 0;
+
+1263 
+lib_nd_pÝuϋ_ÿÎed
+++;
+
+1268 
+nd_’Œy_d©a
+ *
+Ãw_nd_d©a
+ = 
+	`»Œ›ve_nd_’Œy
+(
+nd_key
+);
+
+1270 ià(
+Ãw_nd_d©a
+ && 
+	`is_§me_‘h”_addr
+(&Ãw_nd_d©a->
+‘h_addr
+,
+
+1271 
+hw_addr
+)) {
+
+1273 ià(
+NDIPV6_DEBUG
+) {
+
+1274 
+	`´štf
+("nd_entryƒxists…ort %d ipv6 = ",
+
+1275 
+nd_key
+.
+pÜt_id
+);
+
+1276 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1278 
+	`´štf
+("%02X%02X ", 
+nd_key
+.
+v6
+[
+i
+],
+
+1279 
+nd_key
+.
+v6
+[
+i
+ + 1]);
+
+1283 
+lib_nd_du¶iÿ‹_found
+++;
+
+1284 ià(
+NDIPV6_DEBUG
+)
+
+1285 
+	`´štf
+("nd_entryƒxists\n");
+
+1289 
+Ãw_nd_d©a
+ = (
+nd_’Œy_d©a
+ *)
+
+1290 
+	`m®loc
+((
+nd_’Œy_d©a
+));
+
+1291 ià(
+Ãw_nd_d©a
+ =ð
+NULL
+) {
+
+1292 
+	`´štf
+("populate_nd_entry:‚ew_nd_data is NULL\n");
+
+1295 
+Ãw_nd_d©a
+->
+‘h_addr
+ = *
+hw_addr
+;
+
+1296 
+Ãw_nd_d©a
+->
+¡©us
+ = 
+COMPLETE
+;
+
+1297 
+Ãw_nd_d©a
+->
+pÜt
+ = 
+pÜtid
+;
+
+1299 ià(
+NDIPV6_DEBUG
+)
+
+1300 
+	`´štf
+("populate_nd_entry ipv6=");
+
+1302 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++ )
+
+1303 
+Ãw_nd_d©a
+->
+v6
+[
+i
+] = ipv6[i];
+
+1305 ià(
+NDIPV6_DEBUG
+) {
+
+1306 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1308 
+	`´štf
+("%02X%02X ", 
+Ãw_nd_d©a
+->
+v6
+[
+i
+],
+
+1309 
+Ãw_nd_d©a
+->
+v6
+[
+i
+ + 1]);
+
+1314 
+	`¹e_hash_add_key_d©a
+(
+nd_hash_hªdË
+, &
+nd_key
+, 
+Ãw_nd_d©a
+);
+
+1316 ià(
+NDIPV6_DEBUG
+)
+
+1317 
+	`´štf
+("\n....Added‡ key-data…air‡t„te hashable "
+
+1320 ià(
+NDIPV6_DEBUG
+) {
+
+1322 
+	`´štf
+("\tND:able update - hwaddr= "
+
+1324 
+Ãw_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[0],
+
+1325 
+Ãw_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[1],
+
+1326 
+Ãw_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[2],
+
+1327 
+Ãw_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[3],
+
+1328 
+Ãw_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[4],
+
+1329 
+Ãw_nd_d©a
+->
+‘h_addr
+.
+addr_by‹s
+[5], 
+pÜtid
+);
+
+1330 
+	`´štf
+("\tipv6=");
+
+1331 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1332 
+Ãw_nd_d©a
+->
+v6
+[
+i
+] = ipv6[i];
+
+1333 
+	`´štf
+("%02X%02X ", 
+Ãw_nd_d©a
+->
+v6
+[
+i
+],
+
+1334 
+Ãw_nd_d©a
+->
+v6
+[
+i
+ + 1]);
+
+1337 
+	`´štf
+("\n");
+
+1339 
+	`puts
+("");
+
+1342 
+	}
+}
+
+1344 
+	$´št_pkt1
+(
+¹e_mbuf
+ *
+pkt
+)
+
+1346 
+ušt8_t
+ *
+rd
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+, 0);
+
+1347 
+i
+ = 0, 
+j
+ = 0;
+
+1348 
+	`´štf
+("\nPacket Contents...\n");
+
+1349 
+i
+ = 0; i < 20; i++) {
+
+1350 
+j
+ = 0; j < 20; j++)
+
+1351 
+	`´štf
+("%02x ", 
+rd
+[(20 * 
+i
+è+ 
+j
+]);
+
+1352 
+	`´štf
+("\n");
+
+1354 
+	}
+}
+
+1356 
+‘h”_addr
+ 
+	gbrßdÿ¡_‘h”_addr
+ = {
+
+1357 .
+addr_by‹s
+[0] = 0xFF,
+
+1358 .
+	gaddr_by‹s
+[1] = 0xFF,
+
+1359 .
+	gaddr_by‹s
+[2] = 0xFF,
+
+1360 .
+	gaddr_by‹s
+[3] = 0xFF,
+
+1361 .
+	gaddr_by‹s
+[4] = 0xFF,
+
+1362 .
+	gaddr_by‹s
+[5] = 0xFF,
+
+1365 cÚ¡ 
+‘h”_addr
+ 
+	gnuÎ_‘h”_addr
+ = {
+
+1366 .
+addr_by‹s
+[0] = 0x00,
+
+1367 .
+	gaddr_by‹s
+[1] = 0x00,
+
+1368 .
+	gaddr_by‹s
+[2] = 0x00,
+
+1369 .
+	gaddr_by‹s
+[3] = 0x00,
+
+1370 .
+	gaddr_by‹s
+[4] = 0x00,
+
+1371 .
+	gaddr_by‹s
+[5] = 0x00,
+
+1374 
+	#MAX_NUM_MAC_ADDRESS
+ 16
+
+	)
+
+1375 
+‘h”_addr
+ 
+	glšk_hw_addr
+[
+MAX_NUM_MAC_ADDRESS
+] = {
+
+1376 {.
+addr_by‹s
+ = {0x90, 0xe2, 0xba, 0x54, 0x67, 0xc8} },
+
+1377 {.
+	gaddr_by‹s
+ = {0x90, 0xe2, 0xba, 0x54, 0x67, 0xc9} },
+
+1378 {.
+	gaddr_by‹s
+ = {0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11} },
+
+1379 {.
+	gaddr_by‹s
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1380 {.
+	gaddr_by‹s
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1381 {.
+	gaddr_by‹s
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1382 {.
+	gaddr_by‹s
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1383 {.
+	gaddr_by‹s
+ = {0x90, 0xe2, 0xba, 0x54, 0x67, 0xc9} },
+
+1384 {.
+	gaddr_by‹s
+ = {0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11} },
+
+1385 {.
+	gaddr_by‹s
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1386 {.
+	gaddr_by‹s
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1387 {.
+	gaddr_by‹s
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1388 {.
+	gaddr_by‹s
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1389 {.
+	gaddr_by‹s
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1390 {.
+	gaddr_by‹s
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1391 {.
+	gaddr_by‹s
+ = {0x18, 0x19, 0x1a, 0x1b, 0xcd, 0xef} }
+
+1394 
+‘h”_addr
+ *
+	$g‘_lšk_hw_addr
+(
+ušt8_t
+ 
+out_pÜt
+)
+
+1396  &
+lšk_hw_addr
+[
+out_pÜt
+];
+
+1397 
+	}
+}
+
+1400 
+	$»que¡_icmp_echo
+(
+pÜt_id
+, 
+ušt32_t
+ 
+
+, 
+‘h”_addr
+ *
+gw_addr
+)
+
+1402 
+‘h”_hdr
+ *
+‘h_h
+;
+
+1403 
+v4_hdr
+ *
+_h
+;
+
+1404 
+icmp_hdr
+ *
+icmp_h
+;
+
+1406 
+­p_lšk_·¿ms
+ *
+lšk
+;
+
+1407 
+lšk
+ = &
+myAµ
+->
+lšk_·¿ms
+[
+pÜt_id
+];
+
+1408 
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+
+ = 
+lšk
+->ip;
+
+1409 
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+mac_addr
+ = 
+lšk
+->mac_addr;
+
+1411 
+¹e_mbuf
+ *
+icmp_pkt
+ = 
+lib_¬p_pkt
+;
+
+1412 ià(
+icmp_pkt
+ =ð
+NULL
+) {
+
+1413 ià(
+ARPICMP_DEBUG
+)
+
+1414 
+	`´štf
+("Error‡llocating icmp_pkt„te_mbuf\n");
+
+1418 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+icmp_pkt
+, 
+‘h”_hdr
+ *);
+
+1419 
+	`‘h”_addr_cÝy
+(
+gw_addr
+, &
+‘h_h
+->
+d_addr
+);
+
+1420 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)
+
+1421 &
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+mac_addr
+, &
+‘h_h
+->
+s_addr
+);
+
+1422 
+‘h_h
+->
+‘h”_ty³
+ = 
+	`CHECK_ENDIAN_16
+(
+ETHER_TYPE_IPv4
+);
+
+1424 
+_h
+ = (
+v4_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+1425 
+icmp_h
+ = (
+icmp_hdr
+ *)((*)
+_h
+ + (
+v4_hdr
+));
+
+1427 
+_h
+->
+v”siÚ_ihl
+ = 
+IP_VHL_DEF
+;
+
+1428 
+_h
+->
+ty³_of_£rviû
+ = 0;
+
+1429 
+_h
+->
+tÙ®_Ëngth
+ =
+
+1430 
+	`¹e_ýu_to_be_16
+((
+v4_hdr
+è+ (
+icmp_hdr
+));
+
+1431 
+_h
+->
+·ck‘_id
+ = 0xaabb;
+
+1432 
+_h
+->
+äagm’t_off£t
+ = 0x0000;
+
+1433 
+_h
+->
+time_to_live
+ = 64;
+
+1434 
+_h
+->
+Ãxt_´Ùo_id
+ = 
+IPPROTO_ICMP
+;
+
+1435 
+_h
+->
+¤c_addr
+ = 
+	`¹e_bsw­32
+(
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+
+);
+
+1436 
+_h
+->
+d¡_addr
+ = 
+
+;
+
+1438 
+_h
+->
+hdr_checksum
+ = 0;
+
+1439 
+_h
+->
+hdr_checksum
+ = 
+	`¹e_v4_cksum
+(ip_h);
+
+1441 
+icmp_h
+->
+icmp_ty³
+ = 
+IP_ICMP_ECHO_REQUEST
+;
+
+1442 
+icmp_h
+->
+icmp_code
+ = 0;
+
+1443 
+icmp_h
+->
+icmp_id’t
+ = 0xdead;
+
+1444 
+icmp_h
+->
+icmp_£q_nb
+ = 0xbeef;
+
+1446 
+icmp_h
+->
+icmp_cksum
+ = ~
+	`¹e_¿w_cksum
+(icmp_h, (
+icmp_hdr
+));
+
+1448 
+icmp_pkt
+->
+pkt_Ën
+ =
+
+1449 (
+‘h”_hdr
+è+ (
+v4_hdr
+) +
+
+1450 (
+icmp_hdr
+);
+
+1451 
+icmp_pkt
+->
+d©a_Ën
+ = icmp_pkt->
+pkt_Ën
+;
+
+1453 ià(
+ARPICMP_DEBUG
+) {
+
+1454 
+	`´štf
+("Sendingƒcho„equest\n");
+
+1455 
+	`´št_mbuf
+("TX", 
+pÜt_id
+, 
+icmp_pkt
+, 
+__LINE__
+);
+
+1458 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+gp_¬p
+->
+p
+.p,
+
+1459 
+gp_¬p
+->
+ouÜt_id
+[
+pÜt_id
+], 
+icmp_pkt
+);
+
+1460 
+gp_¬p
+->
+£ÁPktCouÁ
+++;
+
+1461 
+	}
+}
+
+1463 
+	$»que¡_echo
+(
+pÜt_id
+, 
+ušt32_t
+ 
+
+)
+
+1465 ()
+pÜt_id
+;
+
+1466 ()
+
+;
+
+1468 
+‘h”_addr
+ 
+gw_addr
+;
+
+1469 
+ušt32_t
+ 
+de¡_
+ = 
+	`¹e_bsw­32
+(
+
+);
+
+1470 
+ušt32_t
+ 
+phy_pÜt
+;
+
+1472 ià(
+	`g‘_de¡_mac_addr_pÜt
+(
+de¡_
+, &
+phy_pÜt
+, &
+gw_addr
+è=ð
+ARP_FOUND
+) {
+
+1473 
+	`»que¡_icmp_echo
+(
+phy_pÜt
+, 
+
+, &
+gw_addr
+);
+
+1477 ià(
+ARPICMP_DEBUG
+)
+
+1478 
+	`´štf
+("Sendingƒcho„equest ... get mac failed.\n");
+
+1479 
+	}
+}
+
+1481 
+	$»que¡_¬p
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt32_t
+ 
+
+, 
+¹e_p–še
+ *
+¹e_p
+)
+
+1483 ()
+pÜt_id
+;
+
+1484 ()
+
+;
+
+1486 
+‘h”_hdr
+ *
+‘h_h
+;
+
+1487 
+¬p_hdr
+ *
+¬p_h
+;
+
+1489 
+­p_lšk_·¿ms
+ *
+lšk
+;
+
+1490 
+lšk
+ = &
+myAµ
+->
+lšk_·¿ms
+[
+pÜt_id
+];
+
+1491 
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+
+ = 
+lšk
+->ip;
+
+1492 
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+mac_addr
+ = 
+lšk
+->mac_addr;
+
+1494 
+¹e_mbuf
+ *
+¬p_pkt
+ = 
+lib_¬p_pkt
+;
+
+1496 ià(
+¬p_pkt
+ =ð
+NULL
+) {
+
+1497 ià(
+ARPICMP_DEBUG
+)
+
+1498 
+	`´štf
+("Error‡llocating‡rp_pkt„te_mbuf\n");
+
+1502 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+¬p_pkt
+, 
+‘h”_hdr
+ *);
+
+1504 
+	`‘h”_addr_cÝy
+(&
+brßdÿ¡_‘h”_addr
+, &
+‘h_h
+->
+d_addr
+);
+
+1505 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)
+
+1506 &
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+mac_addr
+, &
+‘h_h
+->
+s_addr
+);
+
+1507 
+‘h_h
+->
+‘h”_ty³
+ = 
+	`CHECK_ENDIAN_16
+(
+ETHER_TYPE_ARP
+);
+
+1509 
+¬p_h
+ = (
+¬p_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_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
+ = (
+ušt32_t
+);
+
+1514 
+¬p_h
+->
+¬p_Ý
+ = 
+	`CHECK_ENDIAN_16
+(
+ARP_OP_REQUEST
+);
+
+1516 
+	`‘h”_addr_cÝy
+((
+‘h”_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
+ =
+
+1520 
+	`¹e_ýu_to_be_32
+(
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+
+);
+
+1521 
+	`‘h”_addr_cÝy
+(&
+nuÎ_‘h”_addr
+, &
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+);
+
+1522 
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+ = 
+	`¹e_ýu_to_be_32
+(
+
+);
+
+1523 
+	`´štf
+("¬°t:%x‡½ s :%x\n", 
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+,
+
+1524 
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+);
+
+1530 
+¬p_pkt
+->
+pkt_Ën
+ = 42;
+
+1531 
+¬p_pkt
+->
+d©a_Ën
+ = 42;
+
+1533 ià(
+ARPICMP_DEBUG
+) {
+
+1534 
+	`´štf
+("Sending‡rp„equest\n");
+
+1535 
+	`´št_mbuf
+("TX", 
+pÜt_id
+, 
+¬p_pkt
+, 
+__LINE__
+);
+
+1538 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+¹e_p
+, 
+pÜt_id
+, 
+¬p_pkt
+);
+
+1539 
+gp_¬p
+->
+£ÁPktCouÁ
+++;
+
+1541 
+	}
+}
+
+1543 
+	$»que¡_¬p_w¿p
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt32_t
+ 
+
+)
+
+1545 
+	`»que¡_¬p
+(
+pÜt_id
+, 
+
+, 
+gp_¬p
+->
+p
+.p);
+
+1546 
+	}
+}
+
+1548 
+	$´oûss_¬picmp_pkt
+(
+
+1549 
+¹e_mbuf
+ *
+pkt
+,
+
+1550 
+ušt32_t
+ 
+out_pÜt
+,
+
+1551 
+ušt32_t
+ 
+pkt_mask
+)
+
+1553 
+ušt8_t
+ 
+š_pÜt_id
+ = 
+pkt
+->
+pÜt
+;
+
+1554 
+­p_lšk_·¿ms
+ *
+lšk
+;
+
+1555 
+‘h”_hdr
+ *
+‘h_h
+;
+
+1556 
+¬p_hdr
+ *
+¬p_h
+;
+
+1557 
+v4_hdr
+ *
+_h
+;
+
+1558 
+icmp_hdr
+ *
+icmp_h
+;
+
+1559 
+ušt32_t
+ 
+cksum
+;
+
+1560 
+ušt32_t
+ 
+_addr
+;
+
+1561 
+ušt32_t
+ 
+»q_t
+;
+
+1564 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+pkt
+, 
+‘h”_hdr
+ *);
+
+1566 ià(
+‘h_h
+->
+‘h”_ty³
+ =ð
+	`¹e_ýu_to_be_16
+(
+ETHER_TYPE_ARP
+)) {
+
+1567 
+¬p_h
+ =
+
+1568 (
+¬p_hdr
+ *)((*)
+‘h_h
+ +
+
+1569 (
+‘h”_hdr
+));
+
+1570 ià(
+	`CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_hrd
+è!ð
+ARP_HRD_ETHER
+)
+
+1571 
+´štf
+
+
+1574 ià(
+	`CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_´o
+è!ð
+ETHER_TYPE_IPv4
+)
+
+1575 
+´štf
+
+
+1578 ià(
+¬p_h
+->
+¬p_hÊ
+ != 6)
+
+1579 
+´štf
+
+
+1582 ià(
+¬p_h
+->
+¬p_¶n
+ != 4)
+
+1583 
+´štf
+
+
+1587 
+lšk
+ = &
+myAµ
+->
+lšk_·¿ms
+[
+š_pÜt_id
+];
+
+1588 
+¬p_pÜt_add»s£s
+[
+š_pÜt_id
+].
+
+ = 
+lšk
+->ip;
+
+1589 
+¬p_pÜt_add»s£s
+[
+š_pÜt_id
+].
+mac_addr
+ =
+
+1590 
+lšk
+->
+mac_addr
+;
+
+1592 ià(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+ !=
+
+1593 
+	`¹e_bsw­32
+(
+¬p_pÜt_add»s£s
+[
+š_pÜt_id
+].
+
+)) {
+
+1594 
+´štf
+
+
+1597 
+	`´štf
+("arp_tip = %x\n",
+
+1598 
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+);
+
+1599 
+	`´štf
+("arp_port_addresses = %x\n",
+
+1600 
+¬p_pÜt_add»s£s
+[
+š_pÜt_id
+].
+
+);
+
+1601 
+	`´štf
+("š_pÜt_id = %x\n", 
+š_pÜt_id
+);
+
+1602 
+	`´štf
+("arp_port_addresses[0] = %x\n",
+
+1603 
+¬p_pÜt_add»s£s
+[0].
+
+);
+
+1605 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+gp_¬p
+->
+p
+.p,
+
+1606 
+pkt_mask
+);
+
+1607 
+gp_¬p
+->
+drݳdPktCouÁ
+++;
+
+1614 ià(
+¬p_h
+->
+¬p_Ý
+ ==
+
+1615 
+	`¹e_ýu_to_be_16
+(
+ARP_OP_REQUEST
+)) {
+
+1617 ià(
+ARPICMP_DEBUG
+) {
+
+1618 
+	`´štf
+("arp_op %d, ARP_OP_REQUEST %d\n",
+
+1619 
+¬p_h
+->
+¬p_Ý
+,
+
+1620 
+	`¹e_ýu_to_be_16
+(
+ARP_OP_REQUEST
+));
+
+1621 
+	`´št_mbuf
+("RX", 
+š_pÜt_id
+, 
+pkt
+, 
+__LINE__
+);
+
+1624 
+	`pÝuϋ_¬p_’Œy
+((
+‘h”_addr
+ *)
+
+1625 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+,
+
+1626 
+¹e_ýu_to_be_32
+
+
+1627 (
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+),
+
+1628 
+š_pÜt_id
+);
+
+1631 
+»q_t
+ = 
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+;
+
+1632 
+	`‘h”_addr_cÝy
+(&
+‘h_h
+->
+s_addr
+, &‘h_h->
+d_addr
+);
+
+1635 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)&
+
+1636 
+¬p_pÜt_add»s£s
+[
+š_pÜt_id
+].
+mac_addr
+,
+
+1637 &
+‘h_h
+->
+s_addr
+);
+
+1639 
+¬p_h
+->
+¬p_Ý
+ = 
+	`¹e_ýu_to_be_16
+(
+ARP_OP_REPLY
+);
+
+1640 
+	`‘h”_addr_cÝy
+(&
+‘h_h
+->
+s_addr
+,
+
+1641 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+);
+
+1642 
+¬p_h
+->
+¬p_d©a
+.
+¬p_t
+ =
+
+1643 
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+;
+
+1644 
+¬p_h
+->
+¬p_d©a
+.
+¬p_s
+ = 
+»q_t
+;
+
+1645 
+	`‘h”_addr_cÝy
+(&
+‘h_h
+->
+d_addr
+,
+
+1646 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+);
+
+1648 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+gp_¬p
+->
+p
+.p,
+
+1649 
+out_pÜt
+, 
+pkt
+);
+
+1650 
+gp_¬p
+->
+£ÁPktCouÁ
+++;
+
+1652 } ià(
+¬p_h
+->
+¬p_Ý
+ ==
+
+1653 
+	`¹e_ýu_to_be_16
+(
+ARP_OP_REPLY
+)) {
+
+1656 ià(
+ARPICMP_DEBUG
+) {
+
+1657 
+	`´štf
+("ARP_OP_REPLY„eceived");
+
+1658 
+	`´št_mbuf
+("RX", 
+š_pÜt_id
+, 
+pkt
+,
+
+1659 
+__LINE__
+);
+
+1661 
+	`pÝuϋ_¬p_’Œy
+((
+‘h”_addr
+ *)
+
+1662 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+,
+
+1663 
+	`¹e_bsw­32
+(
+¬p_h
+->
+
+1664 
+¬p_d©a
+.
+¬p_s
+),
+
+1665 
+š_pÜt_id
+);
+
+1668 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+gp_¬p
+->
+p
+.p,
+
+1669 
+pkt_mask
+);
+
+1670 
+gp_¬p
+->
+drݳdPktCouÁ
+++;
+
+1673 ià(
+ARPICMP_DEBUG
+)
+
+1674 
+	`´štf
+("Invalid ARP opcode -‚ot "
+
+1676 
+¬p_h
+->
+¬p_Ý
+);
+
+1680 
+_h
+ =
+
+1681 (
+v4_hdr
+ *)((*)
+‘h_h
+ +
+
+1682 (
+‘h”_hdr
+));
+
+1683 
+icmp_h
+ =
+
+1684 (
+icmp_hdr
+ *)((*)
+_h
+ + (
+v4_hdr
+));
+
+1686 ià(
+‘h_h
+->
+‘h”_ty³
+ =ð
+	`¹e_ýu_to_be_16
+(
+ETHER_TYPE_IPv4
+)) {
+
+1688 
+lšk
+ = &
+myAµ
+->
+lšk_·¿ms
+[
+š_pÜt_id
+];
+
+1689 
+¬p_pÜt_add»s£s
+[
+š_pÜt_id
+].
+
+ = 
+lšk
+->ip;
+
+1690 
+¬p_pÜt_add»s£s
+[
+š_pÜt_id
+].
+mac_addr
+ =
+
+1691 
+lšk
+->
+mac_addr
+;
+
+1693 ià(!
+	`is_§me_‘h”_addr
+((
+‘h”_addr
+ *)
+
+1694 &
+¬p_pÜt_add»s£s
+[
+š_pÜt_id
+].
+
+1695 
+mac_addr
+, &
+‘h_h
+->
+d_addr
+)) {
+
+1697 ià(
+ARPICMP_DEBUG
+)
+
+1698 
+	`´štf
+("Ethernet frame‚ot destined "
+
+1702 } ià(
+_h
+->
+Ãxt_´Ùo_id
+ !ð
+IPPROTO_ICMP
+) {
+
+1703 ià(
+ARPICMP_DEBUG
+)
+
+1704 
+	`´štf
+("IP…rotocol ID is‚ot seto "
+
+1707 } ià((
+_h
+->
+v”siÚ_ihl
+ & 0xf0è!ð
+IP_VERSION_4
+) {
+
+1708 ià(
+ARPICMP_DEBUG
+)
+
+1709 
+	`´štf
+("IP version otherhan 4 - "
+
+1712 } ià((
+_h
+->
+v”siÚ_ihl
+ & 0x0fè!ð
+IP_HDRLEN
+) {
+
+1713 ià(
+ARPICMP_DEBUG
+)
+
+1714 
+	`´štf
+("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 
+	`´št_mbuf
+("RX", 
+š_pÜt_id
+,
+
+1721 
+pkt
+, 
+__LINE__
+);
+
+1723 
+_addr
+ = 
+_h
+->
+¤c_addr
+;
+
+1724 
+	`‘h”_addr_cÝy
+(&
+‘h_h
+->
+s_addr
+,
+
+1725 &
+‘h_h
+->
+d_addr
+);
+
+1726 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)
+
+1727 &
+¬p_pÜt_add»s£s
+
+
+1728 [
+š_pÜt_id
+].
+mac_addr
+,
+
+1729 &
+‘h_h
+->
+s_addr
+);
+
+1731 ià(
+_h
+->
+d¡_addr
+ !=
+
+1732 
+	`¹e_bsw­32
+(
+¬p_pÜt_add»s£s
+
+
+1733 [
+š_pÜt_id
+].
+
+)) {
+
+1734 ià(
+ARPICMP_DEBUG
+) {
+
+1735 
+	`´štf
+("IPv4…acket‚ot destined for "
+
+1738 
+	`´štf
+("ip_h->dst_addr = %u, "
+
+1741 
+_h
+->
+d¡_addr
+, 
+š_pÜt_id
+,
+
+1742 
+¬p_pÜt_add»s£s
+[
+š_pÜt_id
+].
+
+);
+
+1746 ià(
+is_muÉiÿ¡_v4_addr
+
+
+1747 (
+_h
+->
+d¡_addr
+)) {
+
+1748 
+ušt32_t
+ 
+_¤c
+;
+
+1750 
+_¤c
+ = 
+¹e_be_to_ýu_32
+
+
+1751 (
+_addr
+);
+
+1752 ià((
+_¤c
+ & 0x00000003) == 1)
+
+1753 
+_¤c
+ = (ip_src &
+
+1757 
+_¤c
+ = (ip_src &
+
+1761 
+_h
+->
+¤c_addr
+ =
+
+1762 
+	`¹e_ýu_to_be_32
+(
+_¤c
+);
+
+1763 
+_h
+->
+d¡_addr
+ = 
+_addr
+;
+
+1765 
+_h
+->
+hdr_checksum
+ = 0;
+
+1766 
+_h
+->
+hdr_checksum
+ = ~
+	`¹e_¿w_cksum
+(
+
+1767 
+_h
+, (
+
+1768 
+v4_hdr
+));
+
+1770 
+_h
+->
+¤c_addr
+ = ip_h->
+d¡_addr
+;
+
+1771 
+_h
+->
+d¡_addr
+ = 
+_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 
+	`´št_mbuf
+("TX", 
+š_pÜt_id
+, 
+pkt
+, 
+__LINE__
+);
+
+1786 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+gp_¬p
+->
+p
+.p,
+
+1787 
+out_pÜt
+, 
+pkt
+);
+
+1788 
+gp_¬p
+->
+£ÁPktCouÁ
+++;
+
+1792 ià(
+icmp_h
+->
+icmp_ty³
+ =ð
+IP_ICMP_ECHO_REPLY
+
+
+1793 && 
+icmp_h
+->
+icmp_code
+ == 0) {
+
+1794 ià(
+ARPICMP_DEBUG
+)
+
+1795 
+	`´št_mbuf
+("RX", 
+š_pÜt_id
+,
+
+1796 
+pkt
+, 
+__LINE__
+);
+
+1798 
+¬p_key_v4
+ 
+¬p_key
+;
+
+1799 
+¬p_key
+.
+pÜt_id
+ = 
+š_pÜt_id
+;
+
+1800 
+¬p_key
+.
+
+ =
+
+1801 
+	`¹e_bsw­32
+(
+_h
+->
+¤c_addr
+);
+
+1802 
+¬p_key
+.
+fžËr1
+ = 0;
+
+1803 
+¬p_key
+.
+fžËr2
+ = 0;
+
+1804 
+¬p_key
+.
+fžËr3
+ = 0;
+
+1806 
+¬p_’Œy_d©a
+ *
+¬p_’Œy
+ =
+
+1807 
+	`»Œ›ve_¬p_’Œy
+(
+¬p_key
+);
+
+1808 ià(
+¬p_’Œy
+ =ð
+NULL
+) {
+
+1809 
+	`´štf
+("Received unsolicited "
+
+1812 
+¬p_key
+.
+
+,
+
+1813 
+¬p_key
+.
+pÜt_id
+);
+
+1817 
+¬p_’Œy
+->
+¡©us
+ = 
+COMPLETE
+;
+
+1819 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+gp_¬p
+->
+p
+.p,
+
+1820 
+pkt_mask
+);
+
+1821 
+gp_¬p
+->
+drݳdPktCouÁ
+++;
+
+1826 
+	}
+}
+
+1841 
+	$my_š‘_±Ú_v6
+(
+af
+, cÚ¡ *
+¤c
+, *
+d¡
+)
+
+1843 
+af
+) {
+
+1844 
+AF_INET
+:
+
+1845  
+	`š‘_±Ú_v4
+(
+¤c
+, 
+d¡
+);
+
+1846 
+AF_INET6
+:
+
+1847  
+	`š‘_±Ú_v6
+(
+¤c
+, 
+d¡
+);
+
+1849 
+Ӽo
+ = 
+EAFNOSUPPORT
+;
+
+1853 
+	}
+}
+
+1865 
+	$š‘_±Ú_v4
+(cÚ¡ *
+¤c
+, *
+d¡
+)
+
+1867 cÚ¡ 
+dig™s
+[] = "0123456789";
+
+1868 
+§w_dig™
+, 
+où‘s
+, 
+ch
+;
+
+1869 
+tmp
+[
+INADDRSZ
+], *
+
+;
+
+1871 
+§w_dig™
+ = 0;
+
+1872 
+où‘s
+ = 0;
+
+1873 *(
+
+ = 
+tmp
+) = 0;
+
+1874 (
+ch
+ = *
+¤c
+++) != '\0') {
+
+1875 cÚ¡ *
+pch
+;
+
+1877 
+pch
+ = 
+	`¡rchr
+(
+dig™s
+, 
+ch
+);
+
+1878 ià(
+pch
+ !ð
+NULL
+) {
+
+1879 
+Ãw
+ = *
+
+ * 10 + (
+pch
+ - 
+dig™s
+);
+
+1881 ià(
+Ãw
+ > 255)
+
+1883 ià(!
+§w_dig™
+) {
+
+1884 ià(++
+où‘s
+ > 4)
+
+1886 
+§w_dig™
+ = 1;
+
+1888 *
+
+ = ()
+Ãw
+;
+
+1889 } ià(
+ch
+ =ð'.' && 
+§w_dig™
+) {
+
+1890 ià(
+où‘s
+ == 4)
+
+1892 *++
+
+ = 0;
+
+1893 
+§w_dig™
+ = 0;
+
+1897 ià(
+où‘s
+ < 4)
+
+1900 
+	`memýy
+(
+d¡
+, 
+tmp
+, 
+INADDRSZ
+);
+
+1902 
+	}
+}
+
+1917 
+	$š‘_±Ú_v6
+(cÚ¡ *
+¤c
+, *
+d¡
+)
+
+1919 cÚ¡ 
+xdig™s_l
+[] = "0123456789abcdef",
+
+1920 
+xdig™s_u
+[] = "0123456789ABCDEF";
+
+1921 
+tmp
+[
+IN6ADDRSZ
+], *
+
+ = 0, *
+’dp
+ = 0, *
+cÞÚp
+ = 0;
+
+1922 cÚ¡ *
+xdig™s
+ = 0, *
+cu¹ok
+ = 0;
+
+1923 
+ch
+ = 0, 
+§w_xdig™
+ = 0, 
+couÁ_xdig™
+ = 0;
+
+1924 
+v®
+ = 0;
+
+1925 
+dbloù_couÁ
+ = 0;
+
+1927 
+	`mem£t
+((
+
+ = 
+tmp
+), '\0', 
+IN6ADDRSZ
+);
+
+1928 
+’dp
+ = 
+
+ + 
+IN6ADDRSZ
+;
+
+1929 
+cÞÚp
+ = 
+NULL
+;
+
+1931 ià(*
+¤c
+ == ':')
+
+1932 ià(*++
+¤c
+ != ':')
+
+1934 
+cu¹ok
+ = 
+¤c
+;
+
+1935 
+§w_xdig™
+ = 
+couÁ_xdig™
+ = 0;
+
+1936 
+v®
+ = 0;
+
+1938 (
+ch
+ = *
+¤c
+++) != '\0') {
+
+1939 cÚ¡ *
+pch
+;
+
+1941 
+pch
+ = 
+	`¡rchr
+((
+xdig™s
+ = 
+xdig™s_l
+), 
+ch
+);
+
+1942 ià(
+pch
+ =ð
+NULL
+)
+
+1943 
+pch
+ = 
+	`¡rchr
+((
+xdig™s
+ = 
+xdig™s_u
+), 
+ch
+);
+
+1944 ià(
+pch
+ !ð
+NULL
+) {
+
+1945 ià(
+couÁ_xdig™
+ >= 4)
+
+1947 
+v®
+ <<= 4;
+
+1948 
+v®
+ |ð(
+pch
+ - 
+xdig™s
+);
+
+1949 ià(
+v®
+ > 0xffff)
+
+1951 
+§w_xdig™
+ = 1;
+
+1952 
+couÁ_xdig™
+++;
+
+1955 ià(
+ch
+ == ':') {
+
+1956 
+cu¹ok
+ = 
+¤c
+;
+
+1957 ià(!
+§w_xdig™
+) {
+
+1958 ià(
+cÞÚp
+)
+
+1960 
+cÞÚp
+ = 
+
+;
+
+1962 } ià(*
+¤c
+ == '\0') {
+
+1965 ià(
+
+ + (
+št16_t
+è> 
+’dp
+)
+
+1967 *
+
+++ = ()((
+v®
+ >> 8) & 0xff);
+
+1968 *
+
+++ = ()(
+v®
+ & 0xff);
+
+1969 
+§w_xdig™
+ = 0;
+
+1970 
+couÁ_xdig™
+ = 0;
+
+1971 
+v®
+ = 0;
+
+1972 
+dbloù_couÁ
+++;
+
+1975 ià(
+ch
+ =ð'.' && ((
+
+ + 
+INADDRSZ
+è<ð
+’dp
+) &&
+
+1976 
+	`š‘_±Ú_v4
+(
+cu¹ok
+, 
+
+) > 0) {
+
+1977 
+
+ +ð
+INADDRSZ
+;
+
+1978 
+§w_xdig™
+ = 0;
+
+1979 
+dbloù_couÁ
+ += 2;
+
+1984 ià(
+§w_xdig™
+) {
+
+1985 ià(
+
+ + (
+št16_t
+è> 
+’dp
+)
+
+1987 *
+
+++ = ()((
+v®
+ >> 8) & 0xff);
+
+1988 *
+
+++ = ()(
+v®
+ & 0xff);
+
+1989 
+dbloù_couÁ
+++;
+
+1991 ià(
+cÞÚp
+ !ð
+NULL
+) {
+
+1995 ià(
+dbloù_couÁ
+ == 8)
+
+2002 cÚ¡ 
+n
+ = 
+
+ - 
+cÞÚp
+;
+
+2003 
+i
+;
+
+2005 
+i
+ = 1; i <ð
+n
+; i++) {
+
+2006 
+’dp
+[-
+i
+] = 
+cÞÚp
+[
+n
+ - i];
+
+2007 
+cÞÚp
+[
+n
+ - 
+i
+] = 0;
+
+2009 
+
+ = 
+’dp
+;
+
+2011 ià(
+
+ !ð
+’dp
+)
+
+2013 
+	`memýy
+(
+d¡
+, 
+tmp
+, 
+IN6ADDRSZ
+);
+
+2015 
+	}
+}
+
+2034 
+	$´oûss_icmpv6_pkt
+(
+
+2035 
+¹e_mbuf
+ *
+pkt
+,
+
+2036 
+ušt32_t
+ 
+out_pÜt
+,
+
+2037 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+pkt_num
+)
+
+2040 
+ušt8_t
+ 
+š_pÜt_id
+ = 
+pkt
+->
+pÜt
+;
+
+2041 
+­p_lšk_·¿ms
+ *
+lšk
+;
+
+2042 
+‘h”_hdr
+ *
+‘h_h
+;
+
+2043 
+v6_hdr
+ *
+v6_h
+;
+
+2044 
+icmpv6_hdr
+ *
+icmpv6_h
+;
+
+2045 
+icmpv6_nd_hdr
+ *
+icmpv6_nd_h
+;
+
+2046 
+ušt8_t
+ 
+v6_addr
+[16];
+
+2047 
+ušt8_t
+ 
+i
+ = 0, 
+æag
+ = 1;
+
+2048 
+ušt8_t
+ 
+»q_tv6
+[16];
+
+2050 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+pkt
+, 
+‘h”_hdr
+ *);
+
+2051 
+v6_h
+ = (
+v6_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+2052 
+icmpv6_h
+ =
+
+2053 (
+icmpv6_hdr
+ *)((*)
+v6_h
+ + (
+v6_hdr
+));
+
+2054 
+¹e_mbuf
+ *
+icmpv6_pkt
+ = 
+pkt
+;
+
+2056 
+lšk
+ = &
+myAµ
+->
+lšk_·¿ms
+[
+š_pÜt_id
+];
+
+2057 
+icmpv6_pÜt_add»s£s
+[
+š_pÜt_id
+].
+mac_addr
+ = 
+lšk
+->mac_addr;
+
+2059 ià(!
+is_§me_‘h”_addr
+
+
+2060 ((
+‘h”_addr
+ *)&
+icmpv6_pÜt_add»s£s
+[
+š_pÜt_id
+].
+mac_addr
+,
+
+2061 &
+‘h_h
+->
+d_addr
+)) {
+
+2062 ià(
+ARPICMP_DEBUG
+) {
+
+2063 
+	`´štf
+("Ethernet frame‚ot destined for MAC‡ddress "
+
+2067 ià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_ECHO_REQUEST
+)
+
+2068 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+2069 
+i
+ = 0; i < 16; i++)
+
+2070 
+v6_addr
+[
+i
+] = 
+v6_h
+->
+¤c_addr
+[i];
+
+2072 
+i
+ = 0; i < 16; i++) {
+
+2073 ià(
+v6_h
+->
+d¡_addr
+[
+i
+] !=
+
+2074 
+icmpv6_pÜt_add»s£s
+[
+š_pÜt_id
+].
+v6
+[
+i
+]) {
+
+2075 
+æag
+++;
+
+2078 ià(!
+æag
+) {
+
+2079 
+	`´štf
+("IPv6…acket‚ot destined for "
+
+2084 
+	`‘h”_addr_cÝy
+(&
+‘h_h
+->
+s_addr
+,
+
+2085 &
+‘h_h
+->
+d_addr
+);
+
+2086 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)
+
+2087 &
+icmpv6_pÜt_add»s£s
+
+
+2088 [
+š_pÜt_id
+].
+mac_addr
+,
+
+2089 &
+‘h_h
+->
+s_addr
+);
+
+2091 
+i
+ = 0; i < 16; i++)
+
+2092 
+v6_h
+->
+¤c_addr
+[
+i
+] =
+
+2093 
+v6_h
+->
+d¡_addr
+[
+i
+];
+
+2094 
+i
+ = 0; i < 16; i++)
+
+2095 
+v6_h
+->
+d¡_addr
+[
+i
+] =
+
+2096 
+v6_addr
+[
+i
+];
+
+2098 
+icmpv6_h
+->
+icmpv6_ty³
+ =
+
+2099 
+ICMPV6_ECHO_REPLY
+;
+
+2101 
+¹e_p–še_pÜt_out_·ck‘_š£¹
+
+
+2102 (
+gp_¬p
+->
+p
+.p, 
+out_pÜt
+, 
+icmpv6_pkt
+);
+
+2103 
+gp_¬p
+->
+£ÁPktCouÁ
+++;
+
+2107 } ià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_ECHO_REPLY
+)
+
+2108 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+2109 
+nd_key_v6
+ 
+nd_key
+;
+
+2110 
+nd_key
+.
+pÜt_id
+ = 
+š_pÜt_id
+;
+
+2112 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2113 
+nd_key
+.
+v6
+[
+i
+] = 
+v6_h
+->
+¤c_addr
+[i];
+
+2115 
+nd_key
+.
+fžËr1
+ = 0;
+
+2116 
+nd_key
+.
+fžËr2
+ = 0;
+
+2117 
+nd_key
+.
+fžËr3
+ = 0;
+
+2122 
+nd_’Œy_d©a
+ *
+Ãw_nd_d©a
+ =
+
+2123 
+	`»Œ›ve_nd_’Œy
+(
+nd_key
+);
+
+2125 ià(
+Ãw_nd_d©a
+ =ð
+NULL
+) {
+
+2126 
+	`´štf
+("Received unsolicited ICMPv6ƒcho "
+
+2128 
+nd_key
+.
+pÜt_id
+);
+
+2129 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+2130 
+	`´štf
+("%02X%02X ", 
+nd_key
+.
+v6
+[
+i
+],
+
+2131 
+nd_key
+.
+v6
+[
+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 (
+icmpv6_nd_hdr
+ *)((*)
+icmpv6_h
+ +
+
+2144 (
+icmpv6_hdr
+));
+
+2145 
+‘h”_addr
+ *
+¤c_hw_addr
+ = &
+‘h_h
+->
+s_addr
+;
+
+2146 
+ušt8_t
+ 
+¤c_v6
+[16], 
+d¡_v6
+[16];
+
+2148 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2149 
+¤c_v6
+[
+i
+] = 
+v6_h
+->
+¤c_addr
+[i];
+
+2150 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2151 
+d¡_v6
+[
+i
+] = 
+v6_h
+->
+d¡_addr
+[i];
+
+2154 ià((
+IPV6_MULTICAST
+
+
+2155 && ((
+d¡_v6
+[0] << 8) | dst_ipv6[1]))) {
+
+2156 ià(
+pÝuϋ_nd_’Œy
+
+
+2157 (
+¤c_hw_addr
+, 
+¤c_v6
+, 
+š_pÜt_id
+)) {
+
+2160 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2161 
+»q_tv6
+[
+i
+] =
+
+2162 
+icmpv6_nd_h
+->
+rg‘_v6
+[
+i
+];
+
+2164 
+	`‘h”_addr_cÝy
+(&
+‘h_h
+->
+s_addr
+,
+
+2165 &
+‘h_h
+->
+d_addr
+);
+
+2166 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)
+
+2167 &
+icmpv6_pÜt_add»s£s
+
+
+2168 [
+š_pÜt_id
+].
+mac_addr
+,
+
+2169 &
+‘h_h
+->
+s_addr
+);
+
+2172 
+	`‘h”_addr_cÝy
+(&
+‘h_h
+->
+s_addr
+,
+
+2173 &
+icmpv6_nd_h
+->
+
+2174 
+lšk_Ïy”_add»ss
+);
+
+2175 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2176 
+v6_h
+->
+d¡_addr
+[
+i
+] =
+
+2177 
+v6_h
+->
+¤c_addr
+[
+i
+];
+
+2178 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2179 
+v6_h
+->
+¤c_addr
+[
+i
+] =
+
+2180 
+»q_tv6
+[
+i
+];
+
+2181 
+icmpv6_h
+->
+icmpv6_ty³
+ =
+
+2182 
+ICMPV6_NEIGHBOR_ADVERTISEMENT
+;
+
+2183 
+icmpv6_nd_h
+->
+ty³
+ =
+
+2184 
+e_T¬g‘_Lšk_Lay”_Add»ss
+;
+
+2185 
+icmpv6_nd_h
+->
+icmpv6_ȣrved
+ |=
+
+2186 
+¹e_ýu_to_be_32
+
+
+2187 (
+NEIGHBOR_SOLICITATION_SET
+);
+
+2189 
+¹e_p–še_pÜt_out_·ck‘_š£¹
+
+
+2190 (
+gp_¬p
+->
+p
+.p, 
+out_pÜt
+, 
+icmpv6_pkt
+);
+
+2191 
+gp_¬p
+->
+£ÁPktCouÁ
+++;
+
+2194 ià(
+ARPICMP_DEBUG
+) {
+
+2195 
+	`´štf
+("Non-Multicasted Neighbor "
+
+2198 
+	`´štf
+("............Some oneƒlse "
+
+2204 ià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_NEIGHBOR_ADVERTISEMENT
+)
+
+2205 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+2206 
+‘h”_addr
+ *
+¤c_hw_addr
+ = &
+‘h_h
+->
+s_addr
+;
+
+2207 
+ušt8_t
+ 
+v6
+[16];
+
+2208 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2209 
+v6
+[
+i
+] = 
+v6_h
+->
+¤c_addr
+[i];
+
+2211 ià(
+	`pÝuϋ_nd_’Œy
+(
+¤c_hw_addr
+, 
+v6
+, 
+š_pÜt_id
+))
+
+2212 ià(
+ARPICMP_DEBUG
+)
+
+2213 
+	`´štf
+("Now on, unicast IPv6raffic "
+
+2217 ià(
+ARPICMP_DEBUG
+) {
+
+2218 
+	`´štf
+("ICMPv6 Type %d Not Supported yet !!!\n",
+
+2219 
+icmpv6_h
+->
+icmpv6_ty³
+);
+
+2225 
+	}
+}
+
+2227 
+	$»que¡_icmpv6_echo
+(
+ušt32_t
+ 
+pÜt_id
+, 
+ušt8_t
+ 
+v6
+[])
+
+2229 ()
+pÜt_id
+;
+
+2230 ()
+v6
+;
+
+2231 
+i
+;
+
+2233 
+‘h”_addr
+ 
+gw_addr
+;
+
+2234 
+ušt8_t
+ 
+nhv6
+[16];
+
+2235 
+ušt8_t
+ 
+de¡_v6
+[16];
+
+2236 
+ušt32_t
+ 
+phy_pÜt
+;
+
+2238 
+i
+ = 0; i < 
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2239 
+de¡_v6
+[
+i
+] = 
+v6
+[i];
+
+2241 ià(
+	`g‘_de¡_mac_add»ss_v6_pÜt
+(
+de¡_v6
+, &
+phy_pÜt
+,
+
+2242 &
+gw_addr
+, 
+nhv6
+)) {
+
+2243 
+	`»que¡_icmpv6_echo_mes§ge
+(
+phy_pÜt
+, 
+v6
+, &
+gw_addr
+);
+
+2247 ià(
+ARPICMP_DEBUG
+)
+
+2248 
+	`´štf
+("Sending icmpv6ƒcho„equest ... get mac failed.\n");
+
+2249 
+	}
+}
+
+2252 
+	$»que¡_icmpv6_echo_mes§ge
+(
+ušt16_t
+ 
+pÜt_id
+, 
+ušt8_t
+ 
+v6
+[],
+
+2253 
+‘h”_addr
+ *
+gw_addr
+)
+
+2255 
+‘h”_hdr
+ *
+‘h_h
+;
+
+2256 
+v6_hdr
+ *
+v6_h
+;
+
+2257 
+icmpv6_hdr
+ *
+icmpv6_h
+;
+
+2258 
+icmpv6_šfo_hdr
+ *
+icmpv6_šfo_h
+;
+
+2259 
+i
+;
+
+2260 
+­p_lšk_·¿ms
+ *
+lšk
+;
+
+2261 
+lšk
+ = &
+mylšk
+[
+pÜt_id
+];
+
+2263 
+i
+ = 0; i < 16; i++)
+
+2264 
+icmpv6_pÜt_add»s£s
+[
+pÜt_id
+].
+v6
+[
+i
+] = 
+lšk
+->ipv6[i];
+
+2266 
+icmpv6_pÜt_add»s£s
+[
+pÜt_id
+].
+mac_addr
+ = 
+lšk
+->mac_addr;
+
+2268 
+¹e_mbuf
+ *
+icmpv6_pkt
+ = 
+lib_icmpv6_pkt
+;
+
+2269 ià(
+icmpv6_pkt
+ =ð
+NULL
+) {
+
+2270 ià(
+ARPICMP_DEBUG
+)
+
+2271 
+	`´štf
+("Error‡llocating icmpv6_pkt„te_mbuf\n");
+
+2275 
+‘h_h
+ = 
+	`¹e_pktmbuf_mtod
+(
+icmpv6_pkt
+, 
+‘h”_hdr
+ *);
+
+2276 
+	`‘h”_addr_cÝy
+(
+gw_addr
+, &
+‘h_h
+->
+d_addr
+);
+
+2277 
+	`‘h”_addr_cÝy
+((
+‘h”_addr
+ *)&
+icmpv6_pÜt_add»s£s
+[
+pÜt_id
+].
+
+2278 
+mac_addr
+, &
+‘h_h
+->
+s_addr
+);
+
+2279 
+‘h_h
+->
+‘h”_ty³
+ = 
+	`CHECK_ENDIAN_16
+(
+ETHER_TYPE_IPv6
+);
+
+2281 
+v6_h
+ = (
+v6_hdr
+ *)((*)
+‘h_h
+ + (
+‘h”_hdr
+));
+
+2282 
+icmpv6_h
+ =
+
+2283 (
+icmpv6_hdr
+ *)((*)
+v6_h
+ + (
+v6_hdr
+));
+
+2284 
+icmpv6_šfo_h
+ =
+
+2285 (
+icmpv6_šfo_hdr
+ *)((*)
+icmpv6_h
+ +
+
+2286 (
+icmpv6_hdr
+));
+
+2288 
+v6_h
+->
+vtc_æow
+ = 0x60000000;
+
+2289 
+v6_h
+->
+·ylßd_Ën
+ = 64;
+
+2290 
+v6_h
+->
+´Ùo
+ = 58;
+
+2291 
+v6_h
+->
+hÝ_lim™s
+ = 64;
+
+2293 
+i
+ = 0; i < 16; i++) {
+
+2294 
+v6_h
+->
+¤c_addr
+[
+i
+] = 
+icmpv6_pÜt_add»s£s
+[
+pÜt_id
+].
+v6
+[i];
+
+2295 
+v6_h
+->
+d¡_addr
+[
+i
+] = 
+v6
+[i];
+
+2298 
+icmpv6_h
+->
+icmpv6_ty³
+ = 
+ICMPV6_ECHO_REQUEST
+;
+
+2299 
+icmpv6_h
+->
+icmpv6_code
+ = 0;
+
+2300 
+icmpv6_šfo_h
+->
+icmpv6_id’t
+ = 0x5151;
+
+2301 
+icmpv6_šfo_h
+->
+icmpv6_£q_nb
+ = 0x1;
+
+2303 
+icmpv6_h
+->
+icmpv6_cksum
+ =
+
+2304 ~
+	`¹e_¿w_cksum
+(
+icmpv6_h
+, (
+icmpv6_hdr
+));
+
+2306 
+icmpv6_pkt
+->
+pkt_Ën
+ =
+
+2307 (
+‘h”_hdr
+è+ (
+v6_hdr
+) +
+
+2308 (
+icmpv6_hdr
+);
+
+2309 
+icmpv6_pkt
+->
+d©a_Ën
+ = icmpv6_pkt->
+pkt_Ën
+;
+
+2311 ià(
+ARPICMP_DEBUG
+)
+
+2312 
+	`´štf
+("Sending icmpv6ƒcho„equest\n");
+
+2314 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+gp_¬p
+->
+p
+.p,
+
+2315 
+gp_¬p
+->
+ouÜt_id
+[
+pÜt_id
+],
+
+2316 
+icmpv6_pkt
+);
+
+2318 
+gp_¬p
+->
+£ÁPktCouÁ
+++;
+
+2319 
+	}
+}
+
+2324 *
+p–še_¬picmp_msg_»q_cu¡om_hªdËr
+(
+p–še
+ *
+p
+,
+
+2325 *
+msg
+);
+
+2327 
+p–še_msg_»q_hªdËr
+ 
+	ghªdËrs
+[] = {
+
+2328 [
+PIPELINE_MSG_REQ_PING
+] =
+
+2329 
+p–še_msg_»q_pšg_hªdËr
+,
+
+2330 [
+PIPELINE_MSG_REQ_STATS_PORT_IN
+] =
+
+2331 
+p–še_msg_»q_¡©s_pÜt_š_hªdËr
+,
+
+2332 [
+PIPELINE_MSG_REQ_STATS_PORT_OUT
+] =
+
+2333 
+p–še_msg_»q_¡©s_pÜt_out_hªdËr
+,
+
+2334 [
+PIPELINE_MSG_REQ_STATS_TABLE
+] =
+
+2335 
+p–še_msg_»q_¡©s_bË_hªdËr
+,
+
+2336 [
+PIPELINE_MSG_REQ_PORT_IN_ENABLE
+] =
+
+2337 
+p–še_msg_»q_pÜt_š_’abË_hªdËr
+,
+
+2338 [
+PIPELINE_MSG_REQ_PORT_IN_DISABLE
+] =
+
+2339 
+p–še_msg_»q_pÜt_š_di§bË_hªdËr
+,
+
+2340 [
+PIPELINE_MSG_REQ_CUSTOM
+] =
+
+2341 
+p–še_¬picmp_msg_»q_cu¡om_hªdËr
+,
+
+2345 *
+p–še_¬picmp_msg_»q_’Œy_dbg_hªdËr
+(
+p–še
+ *
+p
+,
+
+2346 *
+msg
+);
+
+2347 *
+	$p–še_¬picmp_msg_»q_’Œy_dbg_hªdËr
+(
+
+2348 
+__¹e_unu£d
+ 
+p–še
+ *
+p
+,
+
+2349 
+__¹e_unu£d
+ *
+msg
+)
+
+2352  
+NULL
+;
+
+2353 
+	}
+}
+
+2355 
+__¹e_unu£d
+ 
+p–še_msg_»q_hªdËr
+ 
+	gcu¡om_hªdËrs
+[] = {
+
+2356 [
+PIPELINE_ARPICMP_MSG_REQ_ENTRY_DBG
+] =
+
+2357 
+p–še_¬picmp_msg_»q_’Œy_dbg_hªdËr
+,
+
+2371 *
+	$p–še_¬picmp_msg_»q_cu¡om_hªdËr
+(
+p–še
+ *
+p
+, *
+msg
+)
+
+2373 
+p–še_¬picmp
+ *
+p_¬p
+ = (p–še_¬picm°*)
+p
+;
+
+2374 
+p–še_cu¡om_msg_»q
+ *
+»q
+ = 
+msg
+;
+
+2375 
+p–še_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–še_msg_»q_šv®id_hªdËr
+;
+
+2381 ià(
+f_hªdË
+ =ð
+NULL
+)
+
+2382 
+f_hªdË
+ = 
+p–še_msg_»q_šv®id_hªdËr
+;
+
+2384  
+	`f_hªdË
+(
+p
+, 
+»q
+);
+
+2385 
+	}
+}
+
+2387 #ifdeà
+VNF_ACL
+
+
+2393 
+p–še_¬picmp_·r£_¬gs
+(
+p–še_¬picmp
+ *
+p
+,
+
+2394 
+p–še_·¿ms
+ *
+·¿ms
+);
+
+2396 
+	$p–še_¬picmp_·r£_¬gs
+(
+
+2397 
+__¹e_unu£d
+ 
+p–še_¬picmp
+ *
+p
+,
+
+2398 
+p–še_·¿ms
+ *
+·¿ms
+)
+
+2401 
+ušt32_t
+ 
+i
+;
+
+2402 
+ušt32_t
+ 
+¬p_m‘a_off£t_´e£Á
+ = 0;
+
+2404 
+ušt32_t
+ 
+¬p_rou‹_tbl_´e£Á
+ = 0;
+
+2405 
+ušt32_t
+ 
+nd_rou‹_tbl_´e£Á
+ = 0;
+
+2406 
+ušt32_t
+ 
+pÜts_mac_li¡_´e£Á
+ = 0;
+
+2407 
+ušt32_t
+ 
+pktq_š_´v_´e£Á
+ = 0;
+
+2408 
+ušt32_t
+ 
+´v_to_pub_m­_´e£Á
+ = 0;
+
+2410 
+ušt8_t
+ 
+n_´v_š_pÜt
+ = 0;
+
+2411 
+i
+ = 0; i < 
+PIPELINE_MAX_PORT_IN
+; i++) {
+
+2412 
+š_pÜt_dœ_a
+[
+i
+] = 0;
+
+2413 
+´v_to_pub_m­
+[
+i
+] = 0xff;
+
+2414 
+pub_to_´v_m­
+[
+i
+] = 0xff;
+
+2417 
+i
+ = 0; i < 
+·¿ms
+->
+n_¬gs
+; i++) {
+
+2418 *
+¬g_Çme
+ = 
+·¿ms
+->
+¬gs_Çme
+[
+i
+];
+
+2419 *
+¬g_v®ue
+ = 
+·¿ms
+->
+¬gs_v®ue
+[
+i
+];
+
+2421 ià(
+ARPICMP_DEBUG
+ > 2) {
+
+2422 
+	`´štf
+("ARP‡rgs[%d]: % %d, %s\n", 
+i
+, 
+¬g_Çme
+,
+
+2423 
+	`©oi
+(
+¬g_v®ue
+),‡rg_value);
+
+2425 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "arp_meta_offset") == 0) {
+
+2426 ià(
+¬p_m‘a_off£t_´e£Á
+) {
+
+2427 
+	`´štf
+("arp_meta_offset "
+
+2431 
+¬p_m‘a_off£t_´e£Á
+ = 1;
+
+2432 
+¬p_m‘a_off£t
+ = 
+	`©oi
+(
+¬g_v®ue
+);
+
+2436 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "pktq_in_prv") == 0) {
+
+2437 ià(
+pktq_š_´v_´e£Á
+) {
+
+2438 
+	`´štf
+("Duplicate…ktq_in_prv ... "
+
+2442 
+pktq_š_´v_´e£Á
+ = 1;
+
+2444 
+rxpÜt
+ = 0, 
+j
+ = 0;
+
+2445 
+phy_pÜt_num
+[5];
+
+2446 *
+tok’
+ = 
+	`¡¹ok
+(
+¬g_v®ue
+, "RXQ");
+
+2447 
+tok’
+) {
+
+2448 
+j
+ = 0;
+
+2449 (
+j
+ < 4è&& (
+tok’
+[j] != '.')) {
+
+2450 
+phy_pÜt_num
+[
+j
+] = 
+tok’
+[j];
+
+2451 
+j
+++;
+
+2453 
+phy_pÜt_num
+[
+j
+] = '\0';
+
+2454 
+rxpÜt
+ = 
+	`©oi
+(
+phy_pÜt_num
+);
+
+2455 
+	`´štf
+("token: %s,…hy_port_str: %s, "
+
+2457 
+tok’
+, 
+phy_pÜt_num
+, 
+rxpÜt
+);
+
+2459 
+´v_š_pÜt_a
+[
+n_´v_š_pÜt
+++] = 
+rxpÜt
+;
+
+2461 if(
+rxpÜt
+ < 
+PIPELINE_MAX_PORT_IN
+)
+
+2462 
+š_pÜt_dœ_a
+[
+rxpÜt
+] = 1;
+
+2463 
+tok’
+ = 
+	`¡¹ok
+(
+NULL
+, "RXQ");
+
+2466 ià(
+n_´v_š_pÜt
+ == 0) {
+
+2467 
+´štf
+
+
+2476 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "prv_to_pub_map") == 0) {
+
+2477 ià(
+´v_to_pub_m­_´e£Á
+) {
+
+2478 
+´štf
+
+
+2483 
+´v_to_pub_m­_´e£Á
+ = 1;
+
+2485 
+rxpÜt
+ = 0, 
+txpÜt
+ = 0, 
+j
+ = 0, 
+k
+ = 0;
+
+2486 
+rx_phy_pÜt_num
+[5];
+
+2487 
+tx_phy_pÜt_num
+[5];
+
+2488 *
+tok’
+ = 
+	`¡¹ok
+(
+¬g_v®ue
+, "(");
+
+2489 
+tok’
+) {
+
+2490 
+j
+ = 0;
+
+2491 (
+j
+ < 4è&& (
+tok’
+[j] != ',')) {
+
+2492 
+rx_phy_pÜt_num
+[
+j
+] = 
+tok’
+[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 (
+k
+ < 4è&& (
+tok’
+[
+j
+ + k] != ')')) {
+
+2501 
+tx_phy_pÜt_num
+[
+k
+] = 
+tok’
+[
+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 
+	`´štf
+("token: %s,"
+
+2510 
+tok’
+, 
+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 (
+š_pÜt_dœ_a
+[
+rxpÜt
+] != 1)) {
+
+2518 
+	`´štf
+("CG-NAPT…arseƒrror - "
+
+2521 
+rxpÜt
+, 
+txpÜt
+, 
+š_pÜt_dœ_a
+[rxport]);
+
+2525 
+´v_to_pub_m­
+[
+rxpÜt
+] = 
+txpÜt
+;
+
+2526 
+pub_to_´v_m­
+[
+txpÜt
+] = 
+rxpÜt
+;
+
+2527 
+tok’
+ = 
+	`¡¹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št32_t
+ 
+i
+ = 0, 
+j
+ = 0, 
+k
+ = 0, 
+MAC_NUM_BYTES
+ = 6;
+
+2546 
+by‹SŒ
+[
+MAC_NUM_BYTES
+][3];
+
+2547 
+ušt32_t
+ 
+by‹
+[
+MAC_NUM_BYTES
+];
+
+2549 *
+tok’
+ = 
+	`¡¹ok
+(
+¬g_v®ue
+, " ");
+
+2550 
+tok’
+) {
+
+2551 
+k
+ = 0;
+
+2552 
+i
+ = 0; i < 
+MAC_NUM_BYTES
+; i++) {
+
+2553 
+j
+ = 0; j < 2; j++)
+
+2554 
+by‹SŒ
+[
+i
+][
+j
+] = 
+tok’
+[
+k
+++];
+
+2555 
+by‹SŒ
+[
+i
+][
+j
+] = '\0';
+
+2556 
+k
+++;
+
+2559 
+i
+ = 0; i < 
+MAC_NUM_BYTES
+; i++)
+
+2560 
+by‹
+[
+i
+] = 
+	`¡¹oul
+(
+by‹SŒ
+[i], 
+NULL
+, 16);
+
+2562 ià(
+ARPICMP_DEBUG
+) {
+
+2563 
+	`´štf
+("tok’: %s", 
+tok’
+);
+
+2564 
+i
+ = 0; i < 
+MAC_NUM_BYTES
+; i++)
+
+2565 
+	`´štf
+(", by‹[%u] %u", 
+i
+,
+
+2566 
+by‹
+[
+i
+]);
+
+2567 
+	`´štf
+("\n");
+
+2570 
+i
+ = 0; i < 
+MAC_NUM_BYTES
+; i++)
+
+2571 
+lšk_hw_addr
+
+
+2572 [
+lšk_hw_addr_¬¿y_idx
+].
+addr_by‹s
+
+
+2573 [
+i
+] = 
+by‹
+[i];
+
+2575 
+lšk_hw_addr_¬¿y_idx
+++;
+
+2576 
+tok’
+ = 
+	`¡¹ok
+(
+NULL
+, " ");
+
+2583 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "arp_route_tbl") == 0) {
+
+2584 
+¬p_rou‹_tbl_´e£Á
+ = 1;
+
+2586 
+ušt32_t
+ 
+de¡_
+ = 0, 
+mask
+ = 0, 
+tx_pÜt
+ = 0, 
+nh_
+ =
+
+2587 0, 
+i
+ = 0, 
+j
+ = 0, 
+k
+ = 0, 
+l
+ = 0;
+
+2588 
+ušt32_t
+ 
+¬p_rou‹_tbl_¡r_max_Ën
+ = 10;
+
+2589 
+de¡__¡r
+[
+¬p_rou‹_tbl_¡r_max_Ën
+];
+
+2590 
+mask_¡r
+[
+¬p_rou‹_tbl_¡r_max_Ën
+];
+
+2591 
+tx_pÜt_¡r
+[
+¬p_rou‹_tbl_¡r_max_Ën
+];
+
+2592 
+nh__¡r
+[
+¬p_rou‹_tbl_¡r_max_Ën
+];
+
+2593 *
+tok’
+ = 
+	`¡¹ok
+(
+¬g_v®ue
+, "(");
+
+2594 
+tok’
+) {
+
+2595 
+i
+ = 0;
+
+2596 (
+i
+ < (
+¬p_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2597 && (
+tok’
+[
+i
+] != ',')) {
+
+2598 
+de¡__¡r
+[
+i
+] = 
+tok’
+[i];
+
+2599 
+i
+++;
+
+2601 
+de¡__¡r
+[
+i
+] = '\0';
+
+2602 
+de¡_
+ = 
+	`¡¹oul
+(
+de¡__¡r
+, 
+NULL
+, 16);
+
+2604 
+i
+++;
+
+2605 
+j
+ = 0;
+
+2606 (
+j
+ < (
+¬p_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2607 && (
+tok’
+[
+i
+ + 
+j
+] != ',')) {
+
+2608 
+mask_¡r
+[
+j
+] = 
+tok’
+[
+i
+ + j];
+
+2609 
+j
+++;
+
+2611 
+mask_¡r
+[
+j
+] = '\0';
+
+2612 
+mask
+ = 
+	`¡¹oul
+(
+mask_¡r
+, 
+NULL
+, 16);
+
+2614 
+j
+++;
+
+2615 
+k
+ = 0;
+
+2616 (
+k
+ < (
+¬p_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2617 && (
+tok’
+[
+i
+ + 
+j
+ + 
+k
+] != ',')) {
+
+2618 
+tx_pÜt_¡r
+[
+k
+] = 
+tok’
+[
+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 (
+l
+ < (
+¬p_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2628 && (
+tok’
+[
+i
+ + 
+j
+ + 
+k
+ + 
+l
+] != ')')) {
+
+2629 
+nh__¡r
+[
+l
+] = 
+tok’
+[
+i
+ + 
+j
+ + 
+k
+ +†];
+
+2630 
+l
+++;
+
+2632 
+nh__¡r
+[
+l
+] = '\0';
+
+2634 
+nh_
+ = 
+	`¡¹oul
+(
+nh__¡r
+, 
+NULL
+, 16);
+
+2636 ià(
+ARPICMP_DEBUG
+) {
+
+2637 
+	`´štf
+("token: %s, "
+
+2642 
+tok’
+, 
+de¡__¡r
+, 
+de¡_
+,
+
+2643 
+mask_¡r
+, 
+mask
+, 
+tx_pÜt_¡r
+,
+
+2644 
+tx_pÜt
+, 
+nh__¡r
+, 
+nh_
+);
+
+2647 ià(
+tx_pÜt
+ >ð
+·¿ms
+->
+n_pÜts_out
+) {
+
+2648 
+	`´štf
+("ARP-ICMP…arseƒrror - "
+
+2650 
+tx_pÜt
+, 
+·¿ms
+->
+n_pÜts_out
+);
+
+2656 
+lib_¬p_rou‹_bË
+[
+¬p_rou‹_tbl_šdex
+].
+
+ =
+
+2657 
+de¡_
+;
+
+2658 
+lib_¬p_rou‹_bË
+[
+¬p_rou‹_tbl_šdex
+].
+mask
+ =
+
+2659 
+mask
+;
+
+2660 
+lib_¬p_rou‹_bË
+[
+¬p_rou‹_tbl_šdex
+].
+pÜt
+ =
+
+2661 
+tx_pÜt
+;
+
+2662 
+lib_¬p_rou‹_bË
+[
+¬p_rou‹_tbl_šdex
+].
+nh
+ =
+
+2663 
+nh_
+;
+
+2664 
+¬p_rou‹_tbl_šdex
+++;
+
+2665 
+tok’
+ = 
+	`¡¹ok
+(
+NULL
+, "(");
+
+2672 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "nd_route_tbl") == 0) {
+
+2673 
+nd_rou‹_tbl_´e£Á
+ = 1;
+
+2675 
+ušt8_t
+ 
+de¡_v6
+[16], 
+d•th
+ = 0, 
+tx_pÜt
+ =
+
+2676 0, 
+nh_v6
+[16], 
+i
+ = 0, 
+j
+ = 0, 
+k
+ = 0, 
+l
+ = 0;
+
+2677 
+ušt8_t
+ 
+nd_rou‹_tbl_¡r_max_Ën
+ = 128;
+
+2678 
+de¡_v6_¡r
+[
+nd_rou‹_tbl_¡r_max_Ën
+];
+
+2679 
+d•th_¡r
+[
+nd_rou‹_tbl_¡r_max_Ën
+];
+
+2680 
+tx_pÜt_¡r
+[
+nd_rou‹_tbl_¡r_max_Ën
+];
+
+2681 
+nh_v6_¡r
+[
+nd_rou‹_tbl_¡r_max_Ën
+];
+
+2682 *
+tok’
+ = 
+	`¡¹ok
+(
+¬g_v®ue
+, "(");
+
+2683 
+tok’
+) {
+
+2684 
+i
+ = 0;
+
+2685 (
+i
+ < (
+nd_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2686 && (
+tok’
+[
+i
+] != ',')) {
+
+2687 
+de¡_v6_¡r
+[
+i
+] = 
+tok’
+[i];
+
+2688 
+i
+++;
+
+2690 
+de¡_v6_¡r
+[
+i
+] = '\0';
+
+2691 
+	`my_š‘_±Ú_v6
+(
+AF_INET6
+, 
+de¡_v6_¡r
+,
+
+2692 &
+de¡_v6
+);
+
+2694 
+i
+++;
+
+2695 
+j
+ = 0;
+
+2696 (
+j
+ < (
+nd_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2697 && (
+tok’
+[
+i
+ + 
+j
+] != ',')) {
+
+2698 
+d•th_¡r
+[
+j
+] = 
+tok’
+[
+i
+ + j];
+
+2699 
+j
+++;
+
+2701 
+d•th_¡r
+[
+j
+] = '\0';
+
+2703 
+s
+;
+
+2704 
+s
+ = 0; 
+d•th_¡r
+[s] != '\0'; ++s)
+
+2705 
+d•th
+ = d•th * 10 + 
+d•th_¡r
+[
+s
+] - '0';
+
+2707 
+j
+++;
+
+2708 
+k
+ = 0;
+
+2709 (
+k
+ < (
+nd_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2710 && (
+tok’
+[
+i
+ + 
+j
+ + 
+k
+] != ',')) {
+
+2711 
+tx_pÜt_¡r
+[
+k
+] = 
+tok’
+[
+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 (
+l
+ < (
+nd_rou‹_tbl_¡r_max_Ën
+ - 1))
+
+2721 && (
+tok’
+[
+i
+ + 
+j
+ + 
+k
+ + 
+l
+] != ')')) {
+
+2722 
+nh_v6_¡r
+[
+l
+] = 
+tok’
+[
+i
+ + 
+j
+ + 
+k
+ +†];
+
+2723 
+l
+++;
+
+2725 
+nh_v6_¡r
+[
+l
+] = '\0';
+
+2726 
+	`my_š‘_±Ú_v6
+(
+AF_INET6
+, 
+nh_v6_¡r
+,
+
+2727 &
+nh_v6
+);
+
+2730 
+i
+ = 0; i < 16; i++) {
+
+2731 
+lib_nd_rou‹_bË
+
+
+2732 [
+nd_rou‹_tbl_šdex
+].
+v6
+[
+i
+] =
+
+2733 
+de¡_v6
+[
+i
+];
+
+2734 
+lib_nd_rou‹_bË
+
+
+2735 [
+nd_rou‹_tbl_šdex
+].
+nhv6
+[
+i
+] =
+
+2736 
+nh_v6
+[
+i
+];
+
+2738 
+lib_nd_rou‹_bË
+[
+nd_rou‹_tbl_šdex
+].
+d•th
+ =
+
+2739 
+d•th
+;
+
+2740 
+lib_nd_rou‹_bË
+[
+nd_rou‹_tbl_šdex
+].
+pÜt
+ =
+
+2741 
+tx_pÜt
+;
+
+2743 
+nd_rou‹_tbl_šdex
+++;
+
+2744 
+tok’
+ = 
+	`¡¹ok
+(
+NULL
+, "(");
+
+2754 ià(!
+¬p_m‘a_off£t_´e£Á
+) {
+
+2755 
+	`´štf
+("ARPICMP:‡rp_meta_offset‚ot initialized\n");
+
+2760 ià(!
+¬p_rou‹_tbl_´e£Á
+ && !
+nd_rou‹_tbl_´e£Á
+) {
+
+2761 
+	`´štf
+("Neither‡rp_route_tbl_present‚or "
+
+2766 ià(!
+pktq_š_´v_´e£Á
+) {
+
+2767 
+	`´štf
+("pktq_in_prv‚ot declared\n");
+
+2771 ià(!
+pÜts_mac_li¡_´e£Á
+) {
+
+2772 
+	`´štf
+("ports_mac_list‚ot declared\n");
+
+2777 
+	}
+}
+
+2781 
+ušt32_t
+ 
+	g¬picmp_pkt_´št_couÁ
+;
+
+2782 
+šlše
+ 
+
+2783 
+	$pkt_key_¬picmp
+(
+¹e_mbuf
+ *
+pkt
+, 
+ušt32_t
+ 
+pkt_num
+, *
+¬g
+)
+
+2786 
+p–še_¬picmp_š_pÜt_h_¬g
+ *
+­
+ = 
+¬g
+;
+
+2787 
+p–še_¬picmp
+ *
+p_¬p
+ = (p–še_¬picm°*)
+­
+->
+p
+;
+
+2789 
+p_¬p
+->
+»ûivedPktCouÁ
+++;
+
+2791 
+ušt8_t
+ 
+š_pÜt_id
+ = 
+pkt
+->
+pÜt
+;
+
+2792 #ifdeà
+VNF_ACL
+
+
+2793 
+­p_lšk_·¿ms
+ *
+lšk
+;
+
+2795 
+ušt8_t
+ *
+´ÙocÞ
+;
+
+2796 
+ušt32_t
+ 
+pkt_mask
+ = 1 << 
+pkt_num
+;
+
+2797 
+ušt32_t
+ 
+‘h_´Ùo_off£t
+ = 
+MBUF_HDR_ROOM
+ + 12;
+
+2799 
+ušt32_t
+ 
+´Ù_off£t
+ =
+
+2800 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_PROTOCOL_OFST
+;
+
+2802 #ifdeà
+VNF_ACL
+
+
+2803 
+ušt32_t
+ 
+out_pÜt
+;
+
+2806 
+ušt16_t
+ *
+‘h_´Ùo
+ =
+
+2807 
+	`RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+, 
+‘h_´Ùo_off£t
+);
+
+2810 #ifdeà
+VNF_ACL
+
+
+2811 
+ušt32_t
+ 
+d¡_addr_off£t
+ =
+
+2812 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_DST_ADR_OFST
+;
+
+2813 
+ušt32_t
+ *
+d¡_addr
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, 
+d¡_addr_off£t
+);
+
+2816 #ifdeà
+IPV6
+
+
+2817 
+ušt32_t
+ 
+´Ù_off£t_v6
+ =
+
+2818 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IPV6_HDR_PROTOCOL_OFST
+;
+
+2820 ià(
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo
+è=ð
+ETHER_TYPE_IPv6
+)
+
+2821 
+´ÙocÞ
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+, 
+´Ù_off£t_v6
+);
+
+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_´št_couÁ
+ < 10)) {
+
+2830 
+	`´št_pkt1
+(
+pkt
+);
+
+2831 
+¬picmp_pkt_´št_couÁ
+++;
+
+2832 
+	`´štf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+2834 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo
+), *
+´ÙocÞ
+, 
+ETH_TYPE_ARP
+,
+
+2835 
+ETH_TYPE_IPV4
+, 
+IP_PROTOCOL_ICMP
+);
+
+2838 #ifdeà
+VNF_ACL
+
+
+2839 
+lšk
+ = &
+myAµ
+->
+lšk_·¿ms
+[
+š_pÜt_id
+];
+
+2843 ià((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo
+è=ð
+ETH_TYPE_ARP
+) ||
+
+2844 ((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo
+è=ð
+ETH_TYPE_IPV4
+)
+
+2845 && (*
+´ÙocÞ
+ =ð
+IP_PROTOCOL_ICMP
+)
+
+2846 #ifdeà
+VNF_ACL
+
+
+2847 && (
+lšk
+->
+
+ =ð
+	`¹e_be_to_ýu_32
+(*
+d¡_addr
+))
+
+2851 #ifdeà
+VNF_ACL
+
+
+2852 
+out_pÜt
+ = 
+p_¬p
+->
+ouÜt_id
+[
+š_pÜt_id
+];
+
+2853 
+	`´oûss_¬picmp_pkt
+(
+pkt
+, 
+out_pÜt
+, 
+pkt_mask
+);
+
+2855 
+	`´oûss_¬picmp_pkt
+(
+pkt
+, 
+	`ifm_g‘_pÜt
+(
+š_pÜt_id
+));
+
+2859 #ifdeà
+IPV6
+
+
+2860 ià((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo
+è=ð
+ETH_TYPE_IPV6
+)
+
+2861 && (*
+´ÙocÞ
+ =ð
+ICMPV6_PROTOCOL_ID
+)) {
+
+2862 #ifdeà
+VNF_ACL
+
+
+2863 
+out_pÜt
+ = 
+p_¬p
+->
+ouÜt_id
+[
+š_pÜt_id
+];
+
+2864 
+	`´oûss_icmpv6_pkt
+(
+pkt
+, 
+out_pÜt
+, 
+pkt_mask
+);
+
+2866 
+	`´oûss_icmpv6_pkt
+(
+pkt
+, 
+	`ifm_g‘_pÜt
+(
+š_pÜt_id
+));
+
+2874 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_¬p
+->
+p
+.p, 
+pkt_mask
+);
+
+2875 
+p_¬p
+->
+drݳdPktCouÁ
+++;
+
+2877 
+	}
+}
+
+2879 
+šlše
+ 
+
+2880 
+	$pkt4_key_¬picmp
+(
+¹e_mbuf
+ **
+pkt
+, 
+ušt32_t
+ 
+pkt_num
+, *
+¬g
+)
+
+2883 
+p–še_¬picmp_š_pÜt_h_¬g
+ *
+­
+ = 
+¬g
+;
+
+2884 
+p–še_¬picmp
+ *
+p_¬p
+ = (p–še_¬picm°*)
+­
+->
+p
+;
+
+2886 
+p_¬p
+->
+»ûivedPktCouÁ
+ += 4;
+
+2888 
+ušt32_t
+ 
+‘h_´Ùo_off£t
+ = 
+MBUF_HDR_ROOM
+ + 12;
+
+2889 
+ušt8_t
+ 
+š_pÜt_id
+ = 
+pkt
+[0]->
+pÜt
+;
+
+2891 
+ušt32_t
+ 
+´Ù_off£t
+ =
+
+2892 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_PROTOCOL_OFST
+;
+
+2895 #ifdeà
+VNF_ACL
+
+
+2896 
+ušt32_t
+ 
+d¡_addr_off£t
+ =
+
+2897 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_DST_ADR_OFST
+;
+
+2900 
+ušt32_t
+ 
+pkt_mask0
+ = 1 << 
+pkt_num
+;
+
+2901 
+ušt32_t
+ 
+pkt_mask1
+ = 1 << (
+pkt_num
+ + 1);
+
+2902 
+ušt32_t
+ 
+pkt_mask2
+ = 1 << (
+pkt_num
+ + 2);
+
+2903 
+ušt32_t
+ 
+pkt_mask3
+ = 1 << (
+pkt_num
+ + 3);
+
+2905 #ifdeà
+VNF_ACL
+
+
+2906 
+ušt32_t
+ 
+out_pÜt0
+;
+
+2907 
+ušt32_t
+ 
+out_pÜt1
+;
+
+2908 
+ušt32_t
+ 
+out_pÜt2
+;
+
+2909 
+ušt32_t
+ 
+out_pÜt3
+;
+
+2912 
+ušt16_t
+ *
+‘h_´Ùo0
+ =
+
+2913 
+	`RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[0], 
+‘h_´Ùo_off£t
+);
+
+2914 
+ušt16_t
+ *
+‘h_´Ùo1
+ =
+
+2915 
+	`RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[1], 
+‘h_´Ùo_off£t
+);
+
+2916 
+ušt16_t
+ *
+‘h_´Ùo2
+ =
+
+2917 
+	`RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[2], 
+‘h_´Ùo_off£t
+);
+
+2918 
+ušt16_t
+ *
+‘h_´Ùo3
+ =
+
+2919 
+	`RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[3], 
+‘h_´Ùo_off£t
+);
+
+2921 
+ušt8_t
+ *
+´ÙocÞ0
+;
+
+2922 
+ušt8_t
+ *
+´ÙocÞ1
+;
+
+2923 
+ušt8_t
+ *
+´ÙocÞ2
+;
+
+2924 
+ušt8_t
+ *
+´ÙocÞ3
+;
+
+2926 #ifdeà
+VNF_ACL
+
+
+2927 
+ušt32_t
+ *
+d¡_addr0
+ =
+
+2928 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[0], 
+d¡_addr_off£t
+);
+
+2929 
+ušt32_t
+ *
+d¡_addr1
+ =
+
+2930 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[1], 
+d¡_addr_off£t
+);
+
+2931 
+ušt32_t
+ *
+d¡_addr2
+ =
+
+2932 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[2], 
+d¡_addr_off£t
+);
+
+2933 
+ušt32_t
+ *
+d¡_addr3
+ =
+
+2934 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[3], 
+d¡_addr_off£t
+);
+
+2936 
+­p_lšk_·¿ms
+ *
+lšk0
+;
+
+2937 
+­p_lšk_·¿ms
+ *
+lšk1
+;
+
+2938 
+­p_lšk_·¿ms
+ *
+lšk2
+;
+
+2939 
+­p_lšk_·¿ms
+ *
+lšk3
+;
+
+2941 
+lšk0
+ = &
+myAµ
+->
+lšk_·¿ms
+[
+pkt
+[0]->
+pÜt
+];
+
+2942 
+lšk1
+ = &
+myAµ
+->
+lšk_·¿ms
+[
+pkt
+[1]->
+pÜt
+];
+
+2943 
+lšk2
+ = &
+myAµ
+->
+lšk_·¿ms
+[
+pkt
+[2]->
+pÜt
+];
+
+2944 
+lšk3
+ = &
+myAµ
+->
+lšk_·¿ms
+[
+pkt
+[3]->
+pÜt
+];
+
+2947 #ifdeà
+IPV6
+
+
+2948 
+ušt32_t
+ 
+´Ù_off£t_v6
+ =
+
+2949 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IPV6_HDR_PROTOCOL_OFST
+;
+
+2953 #ifdeà
+IPV6
+
+
+2955 ià(
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo0
+è=ð
+ETHER_TYPE_IPv6
+)
+
+2956 
+´ÙocÞ0
+ =
+
+2957 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[0], 
+´Ù_off£t_v6
+);
+
+2959 
+´ÙocÞ0
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[0], 
+´Ù_off£t
+);
+
+2962 ià(
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo1
+è=ð
+ETHER_TYPE_IPv6
+)
+
+2963 
+´ÙocÞ1
+ =
+
+2964 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[1], 
+´Ù_off£t_v6
+);
+
+2966 
+´ÙocÞ1
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[1], 
+´Ù_off£t
+);
+
+2969 ià(
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo2
+è=ð
+ETHER_TYPE_IPv6
+)
+
+2970 
+´ÙocÞ2
+ =
+
+2971 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[2], 
+´Ù_off£t_v6
+);
+
+2973 
+´ÙocÞ2
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[2], 
+´Ù_off£t
+);
+
+2976 ià(
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo3
+è=ð
+ETHER_TYPE_IPv6
+)
+
+2977 
+´ÙocÞ3
+ =
+
+2978 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[3], 
+´Ù_off£t_v6
+);
+
+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_´št_couÁ
+ < 10)) {
+
+2989 
+	`´št_pkt1
+(
+pkt
+[0]);
+
+2990 
+¬picmp_pkt_´št_couÁ
+++;
+
+2991 
+	`´štf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+2993 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo0
+), *
+´ÙocÞ0
+, 
+ETH_TYPE_ARP
+,
+
+2994 
+ETH_TYPE_IPV4
+, 
+IP_PROTOCOL_ICMP
+);
+
+2998 ià((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo0
+è=ð
+ETH_TYPE_ARP
+) ||
+
+2999 ((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo0
+è=ð
+ETH_TYPE_IPV4
+)
+
+3000 && (*
+´ÙocÞ0
+ =ð
+IP_PROTOCOL_ICMP
+)
+
+3001 #ifdeà
+VNF_ACL
+
+
+3002 && (
+lšk0
+->
+
+ =ð
+	`¹e_be_to_ýu_32
+(*
+d¡_addr0
+))
+
+3006 #ifdeà
+VNF_ACL
+
+
+3007 
+out_pÜt0
+ = 
+p_¬p
+->
+ouÜ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‘_pÜt
+(
+š_pÜt_id
+));
+
+3013 
+PKT1
+;
+
+3015 #ifdeà
+IPV6
+
+
+3016 ià((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo0
+è=ð
+ETH_TYPE_IPV6
+)
+
+3017 && (*
+´ÙocÞ0
+ =ð
+ICMPV6_PROTOCOL_ID
+)) {
+
+3019 #ifdeà
+VNF_ACL
+
+
+3020 
+out_pÜt0
+ = 
+p_¬p
+->
+ouÜ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‘_pÜt
+(
+š_pÜt_id
+));
+
+3026 
+PKT1
+;
+
+3031 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_¬p
+->
+p
+.p, 
+pkt_mask0
+);
+
+3032 
+p_¬p
+->
+drݳdPktCouÁ
+++;
+
+3034 
+PKT1
+:
+
+3035 ià((
+ARPICMP_DEBUG
+ > 2è&& (
+¬picmp_pkt_´št_couÁ
+ < 10)) {
+
+3036 
+	`´št_pkt1
+(
+pkt
+[1]);
+
+3037 
+¬picmp_pkt_´št_couÁ
+++;
+
+3038 
+	`´štf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+3040 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo1
+), *
+´ÙocÞ1
+, 
+ETH_TYPE_ARP
+,
+
+3041 
+ETH_TYPE_IPV4
+, 
+IP_PROTOCOL_ICMP
+);
+
+3044 ià((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo1
+è=ð
+ETH_TYPE_ARP
+) ||
+
+3045 ((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo1
+è=ð
+ETH_TYPE_IPV4
+)
+
+3046 && (*
+´ÙocÞ1
+ =ð
+IP_PROTOCOL_ICMP
+)
+
+3047 #ifdeà
+VNF_ACL
+
+
+3048 && (
+lšk1
+->
+
+ =ð
+	`¹e_be_to_ýu_32
+(*
+d¡_addr1
+))
+
+3052 #ifdeà
+VNF_ACL
+
+
+3053 
+out_pÜt1
+ = 
+p_¬p
+->
+ouÜ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‘_pÜt
+(
+š_pÜt_id
+));
+
+3058 
+PKT2
+;
+
+3060 #ifdeà
+IPV6
+
+
+3061 ià((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo1
+è=ð
+ETH_TYPE_IPV6
+)
+
+3062 && (*
+´ÙocÞ1
+ =ð
+ICMPV6_PROTOCOL_ID
+)) {
+
+3064 #ifdeà
+VNF_ACL
+
+
+3065 
+out_pÜt1
+ = 
+p_¬p
+->
+ouÜ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‘_pÜt
+(
+š_pÜt_id
+));
+
+3071 
+PKT2
+;
+
+3076 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_¬p
+->
+p
+.p, 
+pkt_mask1
+);
+
+3077 
+p_¬p
+->
+drݳdPktCouÁ
+++;
+
+3079 
+PKT2
+:
+
+3080 ià((
+ARPICMP_DEBUG
+ > 2è&& (
+¬picmp_pkt_´št_couÁ
+ < 10)) {
+
+3081 
+	`´št_pkt1
+(
+pkt
+[2]);
+
+3082 
+¬picmp_pkt_´št_couÁ
+++;
+
+3083 
+	`´štf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+3085 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo2
+), *
+´ÙocÞ2
+, 
+ETH_TYPE_ARP
+,
+
+3086 
+ETH_TYPE_IPV4
+, 
+IP_PROTOCOL_ICMP
+);
+
+3089 ià((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo2
+è=ð
+ETH_TYPE_ARP
+) ||
+
+3090 ((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo2
+è=ð
+ETH_TYPE_IPV4
+)
+
+3091 && (*
+´ÙocÞ2
+ =ð
+IP_PROTOCOL_ICMP
+)
+
+3092 #ifdeà
+VNF_ACL
+
+
+3093 && (
+lšk2
+->
+
+ =ð
+	`¹e_be_to_ýu_32
+(*
+d¡_addr2
+))
+
+3097 #ifdeà
+VNF_ACL
+
+
+3098 
+out_pÜt2
+ = 
+p_¬p
+->
+ouÜ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‘_pÜt
+(
+š_pÜt_id
+));
+
+3104 
+PKT3
+;
+
+3106 #ifdeà
+IPV6
+
+
+3107 ià((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo2
+è=ð
+ETH_TYPE_IPV6
+)
+
+3108 && (*
+´ÙocÞ2
+ =ð
+ICMPV6_PROTOCOL_ID
+)) {
+
+3110 #ifdeà
+VNF_ACL
+
+
+3111 
+out_pÜt2
+ = 
+p_¬p
+->
+ouÜ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‘_pÜt
+(
+š_pÜt_id
+));
+
+3117 
+PKT3
+;
+
+3122 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_¬p
+->
+p
+.p, 
+pkt_mask2
+);
+
+3123 
+p_¬p
+->
+drݳdPktCouÁ
+++;
+
+3125 
+PKT3
+:
+
+3126 ià((
+ARPICMP_DEBUG
+ > 2è&& (
+¬picmp_pkt_´št_couÁ
+ < 10)) {
+
+3127 
+	`´št_pkt1
+(
+pkt
+[3]);
+
+3128 
+¬picmp_pkt_´št_couÁ
+++;
+
+3129 
+	`´štf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+3131 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo3
+), *
+´ÙocÞ3
+, 
+ETH_TYPE_ARP
+,
+
+3132 
+ETH_TYPE_IPV4
+, 
+IP_PROTOCOL_ICMP
+);
+
+3135 ià((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo3
+è=ð
+ETH_TYPE_ARP
+) ||
+
+3136 ((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo3
+è=ð
+ETH_TYPE_IPV4
+)
+
+3137 && (*
+´ÙocÞ3
+ =ð
+IP_PROTOCOL_ICMP
+)
+
+3139 #ifdeà
+VNF_ACL
+
+
+3140 && (
+lšk3
+->
+
+ =ð
+	`¹e_be_to_ýu_32
+(*
+d¡_addr3
+))
+
+3144 #ifdeà
+VNF_ACL
+
+
+3145 
+out_pÜt3
+ = 
+p_¬p
+->
+ouÜ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‘_pÜt
+(
+š_pÜt_id
+));
+
+3153 #ifdeà
+IPV6
+
+
+3154 ià((
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo3
+è=ð
+ETH_TYPE_IPV6
+)
+
+3155 && (*
+´ÙocÞ3
+ =ð
+ICMPV6_PROTOCOL_ID
+)) {
+
+3157 #ifdeà
+VNF_ACL
+
+
+3158 
+out_pÜt3
+ = 
+p_¬p
+->
+ouÜ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‘_pÜt
+(
+š_pÜt_id
+));
+
+3168 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_¬p
+->
+p
+.p, 
+pkt_mask3
+);
+
+3169 
+p_¬p
+->
+drݳdPktCouÁ
+++;
+
+3172 
+	}
+}
+
+3174 
+PIPELINE_ARPICMP_KEY_PORT_IN_AH
+(
+
+3175 
+pÜt_š_ah_¬picmp
+,
+
+3176 
+pkt_key_¬picmp
+,
+
+3177 
+pkt4_key_¬picmp
+);
+
+3179 *
+	$p–še_¬picmp_š™
+(
+p–še_·¿ms
+ *
+·¿ms
+,
+
+3180 
+__¹e_unu£d
+ *
+¬g
+)
+
+3182 
+p–še
+ *
+p
+;
+
+3183 
+p–še_¬picmp
+ *
+p_¬p
+;
+
+3184 
+ušt32_t
+ 
+size
+, 
+i
+, 
+š_pÜts_¬g_size
+;
+
+3186 
+	`´štf
+("Start…ipeline_arpicmp_init\n");
+
+3189 ià((
+·¿ms
+ =ð
+NULL
+) ||
+
+3190 (
+·¿ms
+->
+n_pÜts_š
+ == 0) ||
+
+3191 (
+·¿ms
+->
+n_pÜts_out
+ == 0))
+
+3192  
+NULL
+;
+
+3195 
+size
+ = 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+p–še_¬picmp
+));
+
+3196 
+p
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+3197 
+p_¬p
+ = (
+p–še_¬picmp
+ *)
+p
+;
+
+3198 ià(
+p
+ =ð
+NULL
+)
+
+3199  
+NULL
+;
+
+3202 
+­p_·¿ms
+ *
+­p
+ = (­p_·¿m *)
+¬g
+;
+
+3203 
+myAµ
+ = 
+¬g
+;
+
+3205 
+	`PLOG
+(
+p
+, 
+HIGH
+, "ARPICMP");
+
+3206 
+	`¡rýy
+(
+p
+->
+Çme
+, 
+·¿ms
+->name);
+
+3207 
+p
+->
+log_Ëv–
+ = 
+·¿ms
+->log_level;
+
+3209 
+p_¬p
+->
+»ûivedPktCouÁ
+ = 0;
+
+3210 
+p_¬p
+->
+drݳdPktCouÁ
+ = 0;
+
+3212 #ifdeà
+VNF_ACL
+
+
+3213 
+i
+ = 0; i < 
+PIPELINE_MAX_PORT_IN
+; i++)
+
+3214 
+p_¬p
+->
+lšks_m­
+[
+i
+] = 0xff;
+
+3216 
+p_¬p
+->
+p–še_num
+ = 0;
+
+3219 ià(
+	`p–še_¬picmp_·r£_¬gs
+(
+p_¬p
+, 
+·¿ms
+))
+
+3220  
+NULL
+;
+
+3222 #iâdeà
+VNF_ACL
+
+
+3223 
+	`lib_¬p_š™
+(
+·¿ms
+, 
+­p
+);
+
+3228 
+¹e_p–še_·¿ms
+ 
+p–še_·¿ms
+ = {
+
+3229 .
+Çme
+ = "ARPICMP",
+
+3230 .
+sock‘_id
+ = 
+·¿ms
+->socket_id,
+
+3231 .
+off£t_pÜt_id
+ = 0,
+
+3235 
+p
+->°ð
+	`¹e_p–še_ü—‹
+(&
+p–še_·¿ms
+);
+
+3236 ià(
+p
+->°=ð
+NULL
+) {
+
+3237 
+	`¹e_ä“
+(
+p
+);
+
+3238  
+NULL
+;
+
+3242 
+p
+->
+n_pÜts_š
+ = 
+·¿ms
+->n_ports_in;
+
+3243 
+p
+->
+n_pÜts_out
+ = 
+·¿ms
+->n_ports_out;
+
+3244 
+p
+->
+n_bËs
+ = 1;
+
+3247 
+š_pÜts_¬g_size
+ = 
+	`RTE_CACHE_LINE_ROUNDUP
+(
+
+3248 ((
+p–še_¬picmp_š_pÜt_h_¬g
+)) *
+
+3249 (
+·¿ms
+->
+n_pÜts_š
+));
+
+3250 
+p–še_¬picmp_š_pÜt_h_¬g
+ *
+­
+ =
+
+3251 (
+p–še_¬picmp_š_pÜt_h_¬g
+ *)
+	`¹e_zm®loc
+(
+NULL
+,
+
+3252 
+š_pÜts_¬g_size
+,
+
+3253 
+RTE_CACHE_LINE_SIZE
+);
+
+3254 ià(
+­
+ =ð
+NULL
+)
+
+3255  
+NULL
+;
+
+3258 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+3260 (
+­
+[
+i
+]).
+p
+ = 
+p_¬p
+;
+
+3261 (
+­
+[
+i
+]).
+š_pÜt_id
+ = i;
+
+3262 
+¹e_p–še_pÜt_š_·¿ms
+ 
+pÜt_·¿ms
+ = {
+
+3263 .
+Ýs
+ =
+
+3264 
+	`p–še_pÜt_š_·¿ms_g‘_Ýs
+(&
+·¿ms
+->
+
+3265 
+pÜt_š
+[
+i
+]),
+
+3266 .
+¬g_ü—‹
+ =
+
+3267 
+	`p–še_pÜt_š_·¿ms_cÚv”t
+(&
+·¿ms
+->
+
+3268 
+pÜt_š
+[
+i
+]),
+
+3269 .
+f_aùiÚ
+ = 
+NULL
+,
+
+3270 .
+¬g_ah
+ = &(
+­
+[
+i
+]),
+
+3271 .
+bur¡_size
+ = 
+·¿ms
+->
+pÜt_š
+[
+i
+].burst_size,
+
+3274 
+pÜt_·¿ms
+.
+f_aùiÚ
+ = 
+pÜt_š_ah_¬picmp
+;
+
+3276 
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_ü—‹
+(
+p
+->p,
+
+3277 &
+pÜt_·¿ms
+,
+
+3278 &
+p
+->
+pÜt_š_id
+[
+i
+]);
+
+3280 ià(
+¡©us
+) {
+
+3281 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+3282 
+	`¹e_ä“
+(
+p
+);
+
+3283  
+NULL
+;
+
+3288 
+i
+ = 0; i < 
+p
+->
+n_pÜts_out
+; i++) {
+
+3289 
+¹e_p–še_pÜt_out_·¿ms
+ 
+pÜt_·¿ms
+ = {
+
+3290 .
+Ýs
+ =
+
+3291 
+	`p–še_pÜt_out_·¿ms_g‘_Ýs
+(&
+·¿ms
+->
+
+3292 
+pÜt_out
+[
+i
+]),
+
+3293 .
+¬g_ü—‹
+ =
+
+3294 
+	`p–še_pÜt_out_·¿ms_cÚv”t
+(&
+·¿ms
+->
+
+3295 
+pÜt_out
+[
+i
+]),
+
+3296 .
+f_aùiÚ
+ = 
+NULL
+,
+
+3297 .
+¬g_ah
+ = 
+NULL
+,
+
+3300 
+¡©us
+ = 
+	`¹e_p–še_pÜt_out_ü—‹
+(
+p
+->p,
+
+3301 &
+pÜt_·¿ms
+,
+
+3302 &
+p
+->
+pÜt_out_id
+[
+i
+]);
+
+3304 ià(
+¡©us
+) {
+
+3305 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+3306 
+	`¹e_ä“
+(
+p
+);
+
+3307  
+NULL
+;
+
+3310 
+p–še_num
+ = 0;
+
+3312 
+¡©us
+ = 
+	`ssÿnf
+(
+·¿ms
+->
+Çme
+, "PIPELINE%d", &
+p–še_num
+);
+
+3314 ià(
+¡©us
+ < 0) {
+
+3315  
+NULL
+;
+
+3316 
+	`´štf
+("Unableo„ead…ipeline‚umber\n");
+
+3319 
+p_¬p
+->
+p–še_num
+ = (
+ušt8_t
+)…ipeline_num;
+
+3321 
+	`»gi¡”_p–še_Qs
+(
+p_¬p
+->
+p–še_num
+, 
+p
+);
+
+3322 
+	`£t_phy_ouÜt_id
+(
+p_¬p
+->
+p–še_num
+, 
+p
+,…_¬p->
+ouÜt_id
+);
+
+3326 
+¹e_p–še_bË_·¿ms
+ 
+bË_·¿ms
+ = {
+
+3327 .
+Ýs
+ = &
+¹e_bË_¡ub_Ýs
+,
+
+3328 .
+¬g_ü—‹
+ = 
+NULL
+,
+
+3329 .
+f_aùiÚ_h™
+ = 
+NULL
+,
+
+3330 .
+f_aùiÚ_miss
+ = 
+NULL
+,
+
+3331 .
+¬g_ah
+ = 
+NULL
+,
+
+3332 .
+aùiÚ_d©a_size
+ = 0,
+
+3335 
+¡©us
+ = 
+	`¹e_p–še_bË_ü—‹
+(
+p
+->p,
+
+3336 &
+bË_·¿ms
+,
+
+3337 &
+p
+->
+bË_id
+[0]);
+
+3339 ià(
+¡©us
+) {
+
+3340 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+3341 
+	`¹e_ä“
+(
+p
+);
+
+3342  
+NULL
+;
+
+3347 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+3349 
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_cÚÃù_to_bË
+(
+p
+->p,
+
+3350 
+p
+->
+
+3351 
+pÜt_š_id
+
+
+3352 [
+i
+],
+
+3353 
+p
+->
+
+3354 
+bË_id
+[0]);
+
+3356 ià(
+¡©us
+) {
+
+3357 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+3358 
+	`¹e_ä“
+(
+p
+);
+
+3359  
+NULL
+;
+
+3365 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+3366 
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_’abË
+(
+p
+->p,
+
+3367 
+p
+->
+pÜt_š_id
+[
+i
+]);
+
+3369 ià(
+¡©us
+) {
+
+3370 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+3371 
+	`¹e_ä“
+(
+p
+);
+
+3372  
+NULL
+;
+
+3377 ià(
+	`¹e_p–še_check
+(
+p
+->p) < 0) {
+
+3378 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+3379 
+	`¹e_ä“
+(
+p
+);
+
+3380  
+NULL
+;
+
+3384 
+p
+->
+n_msgq
+ = 
+·¿ms
+->n_msgq;
+
+3385 
+i
+ = 0; i < 
+p
+->
+n_msgq
+; i++)
+
+3386 
+p
+->
+msgq_š
+[
+i
+] = 
+·¿ms
+->msgq_in[i];
+
+3387 
+i
+ = 0; i < 
+p
+->
+n_msgq
+; i++)
+
+3388 
+p
+->
+msgq_out
+[
+i
+] = 
+·¿ms
+->msgq_out[i];
+
+3391 
+	`memýy
+(
+p
+->
+hªdËrs
+, handlers, (p->handlers));
+
+3393 #ifdeà
+VNF_ACL
+
+
+3396 
+lib_¬p_pktmbuf_tx_poÞ
+ = 
+	`¹e_pktmbuf_poÞ_ü—‹
+(
+
+3398 
+NB_ARPICMP_MBUF
+, 32,
+
+3399 0, 
+RTE_MBUF_DEFAULT_BUF_SIZE
+,
+
+3400 
+	`¹e_sock‘_id
+());
+
+3402 ià(
+lib_¬p_pktmbuf_tx_poÞ
+ =ð
+NULL
+) {
+
+3403 
+	`´štf
+("ARP mbuf…ool create failed.\n");
+
+3404  
+NULL
+;
+
+3407 
+lib_¬p_pkt
+ = 
+	`¹e_pktmbuf_®loc
+(
+lib_¬p_pktmbuf_tx_poÞ
+);
+
+3408 ià(
+lib_¬p_pkt
+ =ð
+NULL
+) {
+
+3409 
+	`´štf
+("ARP†ib_arp_pkt‡lloc failed.\n");
+
+3410  
+NULL
+;
+
+3414 
+¬p_hash_·¿ms
+.
+sock‘_id
+ = 
+	`¹e_sock‘_id
+();
+
+3415 
+¬p_hash_·¿ms
+.
+’Œ›s
+ = 
+MAX_NUM_ARP_ENTRIES
+;
+
+3416 
+¬p_hash_hªdË
+ = 
+	`¹e_hash_ü—‹
+(&
+¬p_hash_·¿ms
+);
+
+3418 ià(
+¬p_hash_hªdË
+ =ð
+NULL
+) {
+
+3419 
+	`´štf
+("ARP„te_hash_create failed. socket %d ...\n",
+
+3420 
+¬p_hash_·¿ms
+.
+sock‘_id
+);
+
+3421  
+NULL
+;
+
+3423 
+	`´štf
+("¬p_hash_hªdË %p\n\n", (*)
+¬p_hash_hªdË
+);
+
+3426 
+nd_hash_·¿ms
+.
+sock‘_id
+ = 
+	`¹e_sock‘_id
+();
+
+3427 
+nd_hash_·¿ms
+.
+’Œ›s
+ = 
+MAX_NUM_ND_ENTRIES
+;
+
+3428 
+nd_hash_hªdË
+ = 
+	`¹e_hash_ü—‹
+(&
+nd_hash_·¿ms
+);
+
+3430 ià(
+nd_hash_hªdË
+ =ð
+NULL
+) {
+
+3431 
+	`´štf
+("ND„te_hash_create failed. socket %d ...\n",
+
+3432 
+nd_hash_·¿ms
+.
+sock‘_id
+);
+
+3433  
+NULL
+;
+
+3436 
+	`´štf
+("nd_hash_hªdË %p\n\n", (*)
+nd_hash_hªdË
+);
+
+3438  
+p
+;
+
+3439 
+	}
+}
+
+3441 
+	$p–še_¬picmp_ä“
+(*
+p–še
+)
+
+3443 
+p–še
+ *
+p
+ = (pipeline *)pipeline;
+
+3446 ià(
+p
+ =ð
+NULL
+)
+
+3450 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+3451 
+	`¹e_ä“
+(
+p
+);
+
+3453 
+	}
+}
+
+3455 
+	$p–še_¬picmp_tim”
+(*
+p–še
+)
+
+3457 
+p–še
+ *
+p
+ = (pipeline *)pipeline;
+
+3459 
+	`p–še_msg_»q_hªdË
+(
+p
+);
+
+3460 
+	`¹e_p–še_æush
+(
+p
+->p);
+
+3463 
+	}
+}
+
+3466 
+	$p–še_¬picmp_Œack
+(*
+p–še
+, 
+ušt32_t
+ 
+pÜt_š
+, ušt32_ˆ*
+pÜt_out
+)
+
+3468 
+p–še
+ *
+p
+ = (pipeline *)pipeline;
+
+3471 ià((
+p
+ =ð
+NULL
+è|| (
+pÜt_š
+ >ðp->
+n_pÜts_š
+è|| (
+pÜt_out
+ == NULL))
+
+3474 *
+pÜt_out
+ = 
+pÜt_š
+ / 
+p
+->
+n_pÜts_š
+;
+
+3476 
+	}
+}
+
+3478 
+p–še_be_Ýs
+ 
+	gp–še_¬picmp_be_Ýs
+ = {
+
+3479 .
+f_š™
+ = 
+p–še_¬picmp_š™
+,
+
+3480 .
+	gf_ä“
+ = 
+p–še_¬picmp_ä“
+,
+
+3481 .
+	gf_run
+ = 
+NULL
+,
+
+3482 .
+	gf_tim”
+ = 
+p–še_¬picmp_tim”
+,
+
+3483 .
+	gf_Œack
+ = 
+p–še_¬picmp_Œack
+,
+
+	@VIL/pipeline_arpicmp/pipeline_arpicmp_be.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_ARPICMP_BE_H__
+
+
+18 
+	#__INCLUDE_PIPELINE_ARPICMP_BE_H__
+
+
+	)
+
+20 
+	~"p–še_commÚ_be.h
+"
+
+21 
+	#PIPELINE_ARPICMP_KEY_PORT_IN_AH
+(
+f_ah
+, 
+f_pkt_wÜk
+, 
+f_pkt4_wÜk
+) \
+
+23 
+	`f_ah
+( \
+
+24 
+__¹e_unu£d
+ 
+¹e_p–še
+ *
+¹e_p
+, \
+
+25 
+¹e_mbuf
+ **
+pkts
+, \
+
+26 
+ušt32_t
+ 
+n_pkts
+, \
+
+27 *
+¬g
+) \
+
+29 
+ušt32_t
+ 
+i
+, 
+j
+; \
+
+31 
+j
+ = 0; j < 
+n_pkts
+; j++) \
+
+32 
+	`¹e_´eãtch0
+(
+pkts
+[
+j
+]); \
+
+34 
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) \
+
+35 
+	`f_pkt4_wÜk
+(&
+pkts
+[
+i
+], i, 
+¬g
+); \
+
+37  ; 
+i
+ < 
+n_pkts
+; i++) \
+
+38 
+	`f_pkt_wÜk
+(
+pkts
+[
+i
+], i, 
+¬g
+); \
+
+42 }
+
+	)
+
+44 

+­p_·¿ms
+ *
+myAµ
+;
+
+45 
+´št_pkt1
+(
+¹e_mbuf
+ *
+pkt
+);
+
+46 
+‘h”_addr
+ *
+g‘_lšk_hw_addr
+(
+ušt8_t
+ 
+out_pÜt
+);
+
+47 #ifdeà
+VNF_ACL
+
+
+49 
+	~<¹e_p–še.h
+>
+
+50 
+	~"¹e_‘h”.h
+"
+
+51 
+	~"­p.h
+"
+
+53 #ià(
+RTE_BYTE_ORDER
+ =ð
+RTE_LITTLE_ENDIAN
+)
+
+56 
+	#CHECK_ENDIAN_16
+(
+x
+è
+	`¹e_be_to_ýu_16
+(x)
+
+	)
+
+57 
+	#CHECK_ENDIAN_32
+(
+x
+è
+	`¹e_be_to_ýu_32
+(x)
+
+	)
+
+59 
+	#CHECK_ENDIAN_16
+(
+x
+è(x)
+
+	)
+
+60 
+	#CHECK_ENDIAN_32
+(
+x
+è(x)
+
+	)
+
+64 
+	#MAX_ARP_RT_ENTRY
+ 16
+
+	)
+
+65 
+	#MAX_ND_RT_ENTRY
+ 16
+
+	)
+
+67 
+	#ND_IPV6_ADDR_SIZE
+ 16
+
+	)
+
+70 
+	mARP_FOUND
+,
+
+71 
+	mARP_NOT_FOUND
+,
+
+72 
+	mNH_NOT_FOUND
+,
+
+75 
+	e¬p_key_ty³
+ {
+
+76 
+	mARP_IPV4
+,
+
+78 
+	mND_IPV6
+,
+
+81 
+	s¬p_key_v4
+ {
+
+82 
+ušt32_t
+ 
+	m
+;
+
+83 
+ušt8_t
+ 
+	mpÜt_id
+;
+
+84 
+ušt8_t
+ 
+	mfžËr1
+;
+
+85 
+ušt8_t
+ 
+	mfžËr2
+;
+
+86 
+ušt8_t
+ 
+	mfžËr3
+;
+
+90 
+	snd_key_v6
+ {
+
+93 
+ušt8_t
+ 
+	mv6
+[
+ND_IPV6_ADDR_SIZE
+];
+
+94 
+ušt8_t
+ 
+	mpÜt_id
+;
+
+95 
+ušt8_t
+ 
+	mfžËr1
+;
+
+96 
+ušt8_t
+ 
+	mfžËr2
+;
+
+97 
+ušt8_t
+ 
+	mfžËr3
+;
+
+100 
+	s¬p_key
+ {
+
+101 
+¬p_key_ty³
+ 
+	mty³
+;
+
+103 
+¬p_key_v4
+ 
+	mv4
+;
+
+104 } 
+	mkey
+;
+
+107 
+	slib_¬p_rou‹_bË_’Œy
+ {
+
+108 
+ušt32_t
+ 
+	m
+;
+
+109 
+ušt32_t
+ 
+	mmask
+;
+
+110 
+ušt32_t
+ 
+	mpÜt
+;
+
+111 
+ušt32_t
+ 
+	mnh
+;
+
+114 
+	slib_nd_rou‹_bË_’Œy
+ {
+
+115 
+ušt8_t
+ 
+	mv6
+[16];
+
+116 
+ušt8_t
+ 
+	md•th
+;
+
+117 
+ušt32_t
+ 
+	mpÜt
+;
+
+118 
+ušt8_t
+ 
+	mnhv6
+[16];
+
+120 

+lib_¬p_rou‹_bË_’Œy
+ 
+lib_¬p_rou‹_bË
+[
+MAX_ARP_RT_ENTRY
+];
+
+121 

+lib_nd_rou‹_bË_’Œy
+ 
+lib_nd_rou‹_bË
+[
+MAX_ND_RT_ENTRY
+];
+
+123 
+ušt8_t
+ 
+´v_š_pÜt_a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+124 

+cÚv”t_´efixËn_to_Ãtmask_v6
+(
+ušt32_t
+ 
+d•th
+,
+
+125 
+ušt8_t
+ 
+Ãtmask_v6
+[]);
+
+126 
+ušt32_t
+ 
+g‘_nh
+(uint32_t, uint32_t*);
+
+127 
+g‘_nh_v6
+(
+ušt8_t
+ 
+v6
+[], 
+ušt32_t
+ *
+pÜt
+, ušt8_ˆ
+nhv6
+[]);
+
+129 
+ušt32_t
+ 
+ARPICMP_DEBUG
+;
+
+133 
+	#COMPLETE
+ 1
+
+	)
+
+135 
+	#INCOMPLETE
+ 0
+
+	)
+
+138 
+ušt32_t
+ 
+NDIPV6_DEBUG
+;
+
+141 
+	#ICMPv6_COMPLETE
+ 1
+
+	)
+
+143 
+	#ICMPv6_INCOMPLETE
+ 0
+
+	)
+
+145 
+	s¬p_’Œy_d©a
+ {
+
+146 
+‘h”_addr
+ 
+	m‘h_addr
+;
+
+147 
+ušt8_t
+ 
+	mpÜt
+;
+
+148 
+ušt8_t
+ 
+	m¡©us
+;
+
+149 
+ušt32_t
+ 
+	m
+;
+
+150 } 
+__©Œibu‹__
+ ((
+__·cked__
+));
+
+153 
+	snd_’Œy_d©a
+ {
+
+154 
+‘h”_addr
+ 
+	m‘h_addr
+;
+
+155 
+ušt8_t
+ 
+	mpÜt
+;
+
+156 
+ušt8_t
+ 
+	m¡©us
+;
+
+157 
+ušt8_t
+ 
+	mv6
+[
+ND_IPV6_ADDR_SIZE
+];
+
+158 } 
+__©Œibu‹__
+ ((
+__·cked__
+));
+
+160 
+g‘_de¡_mac_add»ss
+(cÚ¡ 
+ušt32_t
+ 
+addr
+, cÚ¡ ušt32_ˆ
+phy_pÜt
+,
+
+161 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt32_t
+ *
+nh
+);
+
+162 
+g‘_de¡_mac_addr
+(cÚ¡ 
+ušt32_t
+ 
+addr
+, cÚ¡ ušt32_ˆ
+phy_pÜt
+,
+
+163 
+‘h”_addr
+ *
+hw_addr
+);
+
+165 
+g‘_de¡_mac_add»ss_v6
+(
+ušt8_t
+ 
+v6addr
+[], 
+ušt32_t
+ 
+phy_pÜt
+,
+
+166 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt8_t
+ 
+nhv6
+[]);
+
+168 
+lib_¬p_»que¡_¬p
+(
+
+169 cÚ¡ 
+ušt32_t
+ 
+addr
+,
+
+170 cÚ¡ 
+ušt32_t
+ 
+phy_pÜt
+,
+
+171 
+¹e_p–še
+ *
+¹e_p
+);
+
+173 
+´št_¬p_bË
+();
+
+174 
+´št_nd_bË
+();
+
+175 
+»move_¬p_’Œy
+(
+ušt32_t
+ 
+addr
+, 
+ušt8_t
+ 
+pÜtid
+);
+
+176 
+»move_nd_’Œy_v6
+(
+ušt8_t
+ 
+v6addr
+[], ušt8_ˆ
+pÜtid
+);
+
+177 
+pÝuϋ_¬p_’Œy
+(cÚ¡ 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt32_t
+ 
+addr
+,
+
+178 
+ušt8_t
+ 
+pÜtid
+);
+
+180 
+pÝuϋ_nd_’Œy
+(cÚ¡ 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt8_t
+ 
+
+[],
+
+181 
+ušt8_t
+ 
+pÜtid
+);
+
+182 
+»que¡_¬p
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt32_t
+ 
+
+, 
+¹e_p–še
+ *
+¹e_p
+);
+
+183 
+»que¡_¬p_w¿p
+(
+ušt8_t
+ 
+pÜt_id
+, 
+ušt32_t
+ 
+
+);
+
+184 
+»que¡_echo
+(
+pÜt_id
+, 
+ušt32_t
+ 
+
+);
+
+186 
+´oûss_¬picmp_pkt
+(
+¹e_mbuf
+ *
+pkt
+, 
+ušt32_t
+ 
+out_pÜt
+,
+
+187 
+ušt32_t
+ 
+pkt_num
+);
+
+189 
+¬p_’Œy_d©a
+ *
+»Œ›ve_¬p_’Œy
+(cÚ¡ 
+¬p_key_v4
+ 
+¬p_key
+);
+
+190 
+nd_’Œy_d©a
+ *
+»Œ›ve_nd_’Œy
+(
+nd_key_v6
+ 
+nd_key
+);
+
+192 
+nd_’Œy_d©a
+ *
+»Œ›ve_nd_’Œy
+(
+nd_key_v6
+ 
+nd_key
+);
+
+194 
+lib_nd_š™
+Ð
+­p_·¿ms
+ *
+­p
+);
+
+195 
+´št_pkt1
+(
+¹e_mbuf
+ *
+pkt
+);
+
+199 
+ušt8_t
+ 
+	glb_ouÜt_id
+[
+PIPELINE_MAX_PORT_IN
+];
+
+200 
+p–še
+ *
+	glßdb_p–še
+[
+PIPELINE_MAX_PORT_IN
+];
+
+201 
+p–še
+ *
+	g®l_p–še
+[
+PIPELINE_MAX_PORT_IN
+];
+
+202 
+ušt8_t
+ 
+	gvnf_to_lßdb_m­
+[
+PIPELINE_MAX_PORT_IN
+];
+
+203 
+ušt8_t
+ 
+	gpÜt_to_lßdb_m­
+[
+PIPELINE_MAX_PORT_IN
+];
+
+204 
+ušt8_t
+ 
+	glßdb_p–še_nums
+[
+PIPELINE_MAX_PORT_IN
+];
+
+207 
+ušt8_t
+ 
+	glb_ouÜt_id
+[
+PIPELINE_MAX_PORT_IN
+];
+
+208 
+p–še
+ *
+	g¬p_p–še
+[
+PIPELINE_MAX_PORT_IN
+];
+
+209 
+ušt8_t
+ 
+	gvnf_to_¬p_m­
+[
+PIPELINE_MAX_PORT_IN
+];
+
+210 
+ušt8_t
+ 
+	gpÜt_to_¬p_m­
+[
+PIPELINE_MAX_PORT_IN
+];
+
+211 
+ušt8_t
+ 
+	g¬p_p–še_nums
+[
+PIPELINE_MAX_PORT_IN
+];
+
+214 
+£t_pÜt_to_lßdb_m­
+(
+ušt8_t
+ 
+p–še_num
+);
+
+215 
+ušt8_t
+ 
+g‘_pÜt_to_lßdb_m­
+(ušt8_ˆ
+phy_pÜt_id
+);
+
+218 
+£t_phy_špÜt_m­
+(
+ušt8_t
+ 
+p–še_num
+, ušt8_ˆ*
+m­
+);
+
+219 
+£t_phy_ouÜt_m­
+(
+ušt8_t
+ 
+p–še_num
+, ušt8_ˆ*
+m­
+);
+
+221 
+£t_ouÜt_id
+(
+ušt8_t
+ 
+p–še_num
+, 
+p–še
+ *
+p
+, ušt8_ˆ*
+m­
+);
+
+223 
+ušt8_t
+ 
+g‘_lßdb_ouÜt_id
+(ušt8_ˆ
+aùu®_phy_pÜt
+);
+
+225 
+ušt8_t
+ 
+g‘_vnf_£t_num
+(ušt8_ˆ
+p–še_num
+);
+
+227 
+p–šes_pÜt_šfo
+();
+
+228 
+p–šes_m­_šfo
+();
+
+229 
+»gi¡”_lßdb_to_¬p
+(
+ušt8_t
+ 
+p–še_num
+, 
+p–še
+ *
+p
+,
+
+230 
+__¹e_unu£d
+ 
+­p_·¿ms
+ *
+­p
+);
+
+232 
+ušt8_t
+ 
+	gSWQ_to_PÜt_m­
+[128];
+
+234 

+p–še_be_Ýs
+ 
+p–še_¬picmp_be_Ýs
+;
+
+235 
+»gi¡”_p–še_Qs
+(
+ušt8_t
+ 
+p–še_num
+, 
+p–še
+ *
+p
+);
+
+236 
+£t_lšk_m­
+(
+ušt8_t
+ 
+p–še_num
+, 
+p–še
+ *
+p
+, ušt8_ˆ*
+m­
+);
+
+237 
+£t_ouÜt_id
+(
+ušt8_t
+ 
+p–še_num
+, 
+p–še
+ *
+p
+, ušt8_ˆ*
+m­
+);
+
+238 
+£t_phy_ouÜt_id
+(
+ušt8_t
+ 
+p–še_num
+, 
+p–še
+ *
+p
+, ušt8_ˆ*
+m­
+);
+
+239 
+£t_phy_špÜt_id
+(
+ušt8_t
+ 
+p–še_num
+, 
+p–še
+ *
+p
+, ušt8_ˆ*
+m­
+);
+
+244 
+	ep–še_¬picmp_msg_»q_ty³
+ {
+
+245 
+	mPIPELINE_ARPICMP_MSG_REQ_ENTRY_DBG
+,
+
+246 
+	mPIPELINE_ARPICMP_MSG_REQS
+
+
+252 
+	sp–še_¬picmp_’Œy_dbg_msg_»q
+ {
+
+253 
+p–še_msg_»q_ty³
+ 
+	mty³
+;
+
+254 
+p–še_¬picmp_msg_»q_ty³
+ 
+	msubty³
+;
+
+257 
+ušt8_t
+ 
+	md©a
+[2];
+
+264 
+	sp–še_¬picmp_š_pÜt_h_¬g
+ {
+
+265 
+p–še_¬picmp
+ *
+	mp
+;
+
+266 
+ušt8_t
+ 
+	mš_pÜt_id
+;
+
+269 
+	sp–še_¬picmp_’Œy_dbg_msg_r¥
+ {
+
+270 
+	m¡©us
+;
+
+273 #ifdeà
+VNF_ACL
+
+
+276 
+	sicmpv6_hdr
+ {
+
+277 
+ušt8_t
+ 
+	micmpv6_ty³
+;
+
+278 
+ušt8_t
+ 
+	micmpv6_code
+;
+
+279 
+ušt16_t
+ 
+	micmpv6_cksum
+;
+
+280 } 
+__©Œibu‹__
+ ((
+__·cked__
+));
+
+285 
+	sicmpv6_šfo_hdr
+ {
+
+286 
+ušt16_t
+ 
+	micmpv6_id’t
+;
+
+287 
+ušt16_t
+ 
+	micmpv6_£q_nb
+;
+
+288 } 
+__©Œibu‹__
+ ((
+__·cked__
+));
+
+293 
+	sicmpv6_nd_hdr
+ {
+
+295 
+ušt32_t
+ 
+	micmpv6_ȣrved
+;
+
+298 
+ušt8_t
+ 
+	mrg‘_v6
+[16];
+
+300 
+ušt8_t
+ 
+	mty³
+;
+
+301 
+ušt8_t
+ 
+	mËngth
+;
+
+302 
+‘h”_addr
+ 
+	mlšk_Ïy”_add»ss
+;
+
+303 } 
+__©Œibu‹__
+ ((
+__·cked__
+));
+
+306 
+	#ICMPV6_PROTOCOL_ID
+ 58
+
+	)
+
+307 
+	#ICMPV6_ECHO_REQUEST
+ 0x0080
+
+	)
+
+308 
+	#ICMPV6_ECHO_REPLY
+ 0x0081
+
+	)
+
+309 
+	#ICMPV6_NEIGHBOR_SOLICITATION
+ 0x0087
+
+	)
+
+310 
+	#ICMPV6_NEIGHBOR_ADVERTISEMENT
+ 0x0088
+
+	)
+
+311 
+	#IPV6_MULTICAST
+ 0xFF02
+
+	)
+
+313 
+	#NEIGHBOR_SOLICITATION_SET
+ 0x40000000
+
+	)
+
+314 
+	eicmpv6_lšk_Ïy”_Add»ss_ty³
+ {
+
+315 
+	me_Sourû_Lšk_Lay”_Add»ss
+ = 1,
+
+316 
+	me_T¬g‘_Lšk_Lay”_Add»ss
+,
+
+317 
+	me_Lšk_Lay”_Add»ss
+
+
+320 
+ušt8_t
+ 
+is_muÉiÿ¡_v6_addr
+(ušt8_ˆ
+v6
+[]);
+
+321 
+	sicmpv6_pÜt_add»ss
+ {
+
+322 
+ušt32_t
+ 
+	mv6
+[16];
+
+323 
+ušt64_t
+ 
+	mmac_addr
+;
+
+326 
+icmpv6_pÜt_add»ss
+ 
+	gicmpv6_pÜt_add»s£s
+[
+RTE_MAX_ETHPORTS
+];
+
+328 
+	#MAX_NUM_ICMPv6_ENTRIES
+ 64
+
+	)
+
+330 
+¹e_mbuf
+ *
+	glib_icmpv6_pkt
+;
+
+331 
+»que¡_icmpv6_echo
+(
+ušt32_t
+ 
+pÜt_id
+, 
+ušt8_t
+ 
+v6
+[]);
+
+332 
+»que¡_icmpv6_echo_mes§ge
+(
+ušt16_t
+ 
+pÜt_id
+, 
+ušt8_t
+ 
+v6
+[],
+
+333 
+‘h”_addr
+ *
+gw_addr
+);
+
+335 
+´oûss_icmpv6_pkt
+(
+¹e_mbuf
+ *
+pkt
+, 
+ušt32_t
+ 
+out_pÜt
+, ušt32_ˆ
+pkt_num
+);
+
+337 
+g‘_de¡_mac_addr_pÜt
+(cÚ¡ 
+ušt32_t
+ 
+addr
+,
+
+338 
+ušt32_t
+ *
+phy_pÜt
+, 
+‘h”_addr
+ *
+hw_addr
+);
+
+340 
+g‘_de¡_mac_add»ss_v6_pÜt
+(
+ušt8_t
+ 
+v6addr
+[], 
+ušt32_t
+ *
+phy_pÜt
+,
+
+341 
+‘h”_addr
+ *
+hw_addr
+, 
+ušt8_t
+ 
+nhv6
+[]);
+
+	@VIL/pipeline_common/pipeline_common_be.c
+
+17 
+	~<¹e_commÚ.h
+>
+
+18 
+	~<¹e_ršg.h
+>
+
+19 
+	~<¹e_m®loc.h
+>
+
+21 
+	~"p–še_commÚ_be.h
+"
+
+24 
+	$p–še_msg_»q_pšg_hªdËr
+(
+__¹e_unu£d
+ 
+p–še
+ *
+p
+,
+
+25 *
+msg
+)
+
+27 
+p–še_msg_r¥
+ *
+r¥
+ = 
+msg
+;
+
+29 
+r¥
+->
+¡©us
+ = 0;
+
+31  
+r¥
+;
+
+32 
+	}
+}
+
+35 
+	$p–še_msg_»q_¡©s_pÜt_š_hªdËr
+(
+p–še
+ *
+p
+,
+
+36 *
+msg
+)
+
+38 
+p–še_¡©s_msg_»q
+ *
+»q
+ = 
+msg
+;
+
+39 
+p–še_¡©s_pÜt_š_msg_r¥
+ *
+r¥
+ = 
+msg
+;
+
+40 
+ušt32_t
+ 
+pÜt_id
+;
+
+43 ià(
+»q
+->
+id
+ >ð
+p
+->
+n_pÜts_š
+) {
+
+44 
+r¥
+->
+¡©us
+ = -1;
+
+45  
+r¥
+;
+
+47 
+pÜt_id
+ = 
+p
+->
+pÜt_š_id
+[
+»q
+->
+id
+];
+
+50 
+r¥
+->
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_¡©s_»ad
+(
+p
+->p,
+
+51 
+pÜt_id
+,
+
+52 &
+r¥
+->
+¡©s
+,
+
+55  
+r¥
+;
+
+56 
+	}
+}
+
+59 
+	$p–še_msg_»q_¡©s_pÜt_out_hªdËr
+(
+p–še
+ *
+p
+,
+
+60 *
+msg
+)
+
+62 
+p–še_¡©s_msg_»q
+ *
+»q
+ = 
+msg
+;
+
+63 
+p–še_¡©s_pÜt_out_msg_r¥
+ *
+r¥
+ = 
+msg
+;
+
+64 
+ušt32_t
+ 
+pÜt_id
+;
+
+67 ià(
+»q
+->
+id
+ >ð
+p
+->
+n_pÜts_out
+) {
+
+68 
+r¥
+->
+¡©us
+ = -1;
+
+69  
+r¥
+;
+
+71 
+pÜt_id
+ = 
+p
+->
+pÜt_out_id
+[
+»q
+->
+id
+];
+
+74 
+r¥
+->
+¡©us
+ = 
+	`¹e_p–še_pÜt_out_¡©s_»ad
+(
+p
+->p,
+
+75 
+pÜt_id
+,
+
+76 &
+r¥
+->
+¡©s
+,
+
+79  
+r¥
+;
+
+80 
+	}
+}
+
+83 
+	$p–še_msg_»q_¡©s_bË_hªdËr
+(
+p–še
+ *
+p
+,
+
+84 *
+msg
+)
+
+86 
+p–še_¡©s_msg_»q
+ *
+»q
+ = 
+msg
+;
+
+87 
+p–še_¡©s_bË_msg_r¥
+ *
+r¥
+ = 
+msg
+;
+
+88 
+ušt32_t
+ 
+bË_id
+;
+
+91 ià(
+»q
+->
+id
+ >ð
+p
+->
+n_bËs
+) {
+
+92 
+r¥
+->
+¡©us
+ = -1;
+
+93  
+r¥
+;
+
+95 
+bË_id
+ = 
+p
+->bË_id[
+»q
+->
+id
+];
+
+98 
+r¥
+->
+¡©us
+ = 
+	`¹e_p–še_bË_¡©s_»ad
+(
+p
+->p,
+
+99 
+bË_id
+,
+
+100 &
+r¥
+->
+¡©s
+,
+
+103  
+r¥
+;
+
+104 
+	}
+}
+
+107 
+	$p–še_msg_»q_pÜt_š_’abË_hªdËr
+(
+p–še
+ *
+p
+,
+
+108 *
+msg
+)
+
+110 
+p–še_pÜt_š_msg_»q
+ *
+»q
+ = 
+msg
+;
+
+111 
+p–še_msg_r¥
+ *
+r¥
+ = 
+msg
+;
+
+112 
+ušt32_t
+ 
+pÜt_id
+;
+
+115 ià(
+»q
+->
+pÜt_id
+ >ð
+p
+->
+n_pÜts_š
+) {
+
+116 
+r¥
+->
+¡©us
+ = -1;
+
+117  
+r¥
+;
+
+119 
+pÜt_id
+ = 
+p
+->
+pÜt_š_id
+[
+»q
+->port_id];
+
+122 
+r¥
+->
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_’abË
+(
+p
+->p,
+
+123 
+pÜt_id
+);
+
+125  
+r¥
+;
+
+126 
+	}
+}
+
+129 
+	$p–še_msg_»q_pÜt_š_di§bË_hªdËr
+(
+p–še
+ *
+p
+,
+
+130 *
+msg
+)
+
+132 
+p–še_pÜt_š_msg_»q
+ *
+»q
+ = 
+msg
+;
+
+133 
+p–še_msg_r¥
+ *
+r¥
+ = 
+msg
+;
+
+134 
+ušt32_t
+ 
+pÜt_id
+;
+
+137 ià(
+»q
+->
+pÜt_id
+ >ð
+p
+->
+n_pÜts_š
+) {
+
+138 
+r¥
+->
+¡©us
+ = -1;
+
+139  
+r¥
+;
+
+141 
+pÜt_id
+ = 
+p
+->
+pÜt_š_id
+[
+»q
+->port_id];
+
+144 
+r¥
+->
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_di§bË
+(
+p
+->p,
+
+145 
+pÜt_id
+);
+
+147  
+r¥
+;
+
+148 
+	}
+}
+
+151 
+	$p–še_msg_»q_šv®id_hªdËr
+(
+__¹e_unu£d
+ 
+p–še
+ *
+p
+,
+
+152 *
+msg
+)
+
+154 
+p–še_msg_r¥
+ *
+r¥
+ = 
+msg
+;
+
+156 
+r¥
+->
+¡©us
+ = -1;
+
+158  
+r¥
+;
+
+159 
+	}
+}
+
+162 
+	$p–še_msg_»q_hªdË
+(
+p–še
+ *
+p
+)
+
+164 
+ušt32_t
+ 
+msgq_id
+;
+
+166 
+msgq_id
+ = 0; msgq_id < 
+p
+->
+n_msgq
+; msgq_id++) {
+
+168 
+p–še_msg_»q
+ *
+»q
+;
+
+169 
+p–še_msg_»q_hªdËr
+ 
+f_hªdË
+;
+
+171 
+»q
+ = 
+	`p–še_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–še_msg_»q_šv®id_hªdËr
+;
+
+179 ià(
+f_hªdË
+ =ð
+NULL
+)
+
+180 
+f_hªdË
+ = 
+p–še_msg_»q_šv®id_hªdËr
+;
+
+182 
+	`p–še_msg_£nd
+(
+p
+,
+
+183 
+msgq_id
+,
+
+184 
+	`f_hªdË
+(
+p
+, (*è
+»q
+));
+
+189 
+	}
+}
+
+	@VIL/pipeline_common/pipeline_common_be.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_COMMON_BE_H__
+
+
+18 
+	#__INCLUDE_PIPELINE_COMMON_BE_H__
+
+
+	)
+
+20 
+	~<¹e_commÚ.h
+>
+
+21 
+	~<¹e_ršg.h
+>
+
+22 
+	~<¹e_p–še.h
+>
+
+24 
+	~"p–še_be.h
+"
+
+26 
+	gp–še
+;
+
+28 
+	ep–še_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 *(*
+	tp–še_msg_»q_hªdËr
+)(
+	tp–še
+ *
+	tp
+, *
+	tmsg
+);
+
+41 
+	sp–še
+ {
+
+42 
+¹e_p–še
+ *
+	mp
+;
+
+43 
+ušt32_t
+ 
+	mpÜt_š_id
+[
+PIPELINE_MAX_PORT_IN
+];
+
+44 
+ušt32_t
+ 
+	mpÜt_out_id
+[
+PIPELINE_MAX_PORT_OUT
+];
+
+45 
+ušt32_t
+ 
+	mbË_id
+[
+PIPELINE_MAX_TABLES
+];
+
+46 
+¹e_ršg
+ *
+	mmsgq_š
+[
+PIPELINE_MAX_MSGQ_IN
+];
+
+47 
+¹e_ršg
+ *
+	mmsgq_out
+[
+PIPELINE_MAX_MSGQ_OUT
+];
+
+49 
+ušt32_t
+ 
+	mn_pÜts_š
+;
+
+50 
+ušt32_t
+ 
+	mn_pÜts_out
+;
+
+51 
+ušt32_t
+ 
+	mn_bËs
+;
+
+52 
+ušt32_t
+ 
+	mn_msgq
+;
+
+54 
+p–še_msg_»q_hªdËr
+ 
+	mhªdËrs
+[
+PIPELINE_MSG_REQS
+];
+
+55 
+	mÇme
+[
+PIPELINE_NAME_SIZE
+];
+
+56 
+ušt32_t
+ 
+	mlog_Ëv–
+;
+
+59 
+	ep–še_log_Ëv–
+ {
+
+60 
+	mPIPELINE_LOG_LEVEL_HIGH
+ = 1,
+
+61 
+	mPIPELINE_LOG_LEVEL_LOW
+,
+
+62 
+	mPIPELINE_LOG_LEVELS
+
+
+65 
+	#PLOG
+(
+p
+, 
+Ëv–
+, 
+fmt
+, ...) \
+
+67 ià(
+p
+->
+log_Ëv–
+ >ð
+PIPELINE_LOG_LEVEL_
+ ## 
+Ëv–
+) \
+
+68 
+	`årštf
+(
+¡dout
+, "[%s] " 
+fmt
+ "\n", 
+p
+->
+Çme
+, ## 
+__VA_ARGS__
+);\
+
+69 } 0)
+
+	)
+
+71 
+šlše
+ *
+
+72 
+	$p–še_msg_»cv
+(
+p–še
+ *
+p
+,
+
+73 
+ušt32_t
+ 
+msgq_id
+)
+
+75 
+¹e_ršg
+ *
+r
+ = 
+p
+->
+msgq_š
+[
+msgq_id
+];
+
+76 *
+msg
+;
+
+77 
+¡©us
+ = 
+	`¹e_ršg_sc_dequeue
+(
+r
+, &
+msg
+);
+
+79 ià(
+¡©us
+ != 0)
+
+80  
+NULL
+;
+
+82  
+msg
+;
+
+83 
+	}
+}
+
+85 
+šlše
+ 
+
+86 
+	$p–še_msg_£nd
+(
+p–še
+ *
+p
+,
+
+87 
+ušt32_t
+ 
+msgq_id
+,
+
+88 *
+msg
+)
+
+90 
+¹e_ršg
+ *
+r
+ = 
+p
+->
+msgq_out
+[
+msgq_id
+];
+
+91 
+¡©us
+;
+
+94 
+¡©us
+ = 
+	`¹e_ršg_¥_’queue
+(
+r
+, 
+msg
+);
+
+95 } 
+¡©us
+ =ð-
+ENOBUFS
+);
+
+96 
+	}
+}
+
+98 
+	sp–še_msg_»q
+ {
+
+99 
+p–še_msg_»q_ty³
+ 
+	mty³
+;
+
+102 
+	sp–še_¡©s_msg_»q
+ {
+
+103 
+p–še_msg_»q_ty³
+ 
+	mty³
+;
+
+104 
+ušt32_t
+ 
+	mid
+;
+
+107 
+	sp–še_pÜt_š_msg_»q
+ {
+
+108 
+p–še_msg_»q_ty³
+ 
+	mty³
+;
+
+109 
+ušt32_t
+ 
+	mpÜt_id
+;
+
+112 
+	sp–še_cu¡om_msg_»q
+ {
+
+113 
+p–še_msg_»q_ty³
+ 
+	mty³
+;
+
+114 
+ušt32_t
+ 
+	msubty³
+;
+
+117 
+	sp–še_msg_r¥
+ {
+
+118 
+	m¡©us
+;
+
+121 
+	sp–še_¡©s_pÜt_š_msg_r¥
+ {
+
+122 
+	m¡©us
+;
+
+123 
+¹e_p–še_pÜt_š_¡©s
+ 
+	m¡©s
+;
+
+126 
+	sp–še_¡©s_pÜt_out_msg_r¥
+ {
+
+127 
+	m¡©us
+;
+
+128 
+¹e_p–še_pÜt_out_¡©s
+ 
+	m¡©s
+;
+
+131 
+	sp–še_¡©s_bË_msg_r¥
+ {
+
+132 
+	m¡©us
+;
+
+133 
+¹e_p–še_bË_¡©s
+ 
+	m¡©s
+;
+
+136 *
+p–še_msg_»q_pšg_hªdËr
+(
+p–še
+ *
+p
+, *
+msg
+);
+
+137 *
+p–še_msg_»q_¡©s_pÜt_š_hªdËr
+(
+p–še
+ *
+p
+, *
+msg
+);
+
+138 *
+p–še_msg_»q_¡©s_pÜt_out_hªdËr
+(
+p–še
+ *
+p
+, *
+msg
+);
+
+139 *
+p–še_msg_»q_¡©s_bË_hªdËr
+(
+p–še
+ *
+p
+, *
+msg
+);
+
+140 *
+p–še_msg_»q_pÜt_š_’abË_hªdËr
+(
+p–še
+ *
+p
+, *
+msg
+);
+
+141 *
+p–še_msg_»q_pÜt_š_di§bË_hªdËr
+(
+p–še
+ *
+p
+, *
+msg
+);
+
+142 *
+p–še_msg_»q_šv®id_hªdËr
+(
+p–še
+ *
+p
+, *
+msg
+);
+
+144 
+p–še_msg_»q_hªdË
+(
+p–še
+ *
+p
+);
+
+	@VIL/pipeline_common/pipeline_common_fe.c
+
+17 
+	~<¡dio.h
+>
+
+18 
+	~<fúŽ.h
+>
+
+19 
+	~<uni¡d.h
+>
+
+21 
+	~<¹e_commÚ.h
+>
+
+22 
+	~<¹e_ršg.h
+>
+
+23 
+	~<¹e_m®loc.h
+>
+
+24 
+	~<cmdlše_rdlše.h
+>
+
+25 
+	~<cmdlše_·r£.h
+>
+
+26 
+	~<cmdlše_·r£_num.h
+>
+
+27 
+	~<cmdlše_·r£_¡ršg.h
+>
+
+28 
+	~<cmdlše_·r£_addr.h
+>
+
+29 
+	~<cmdlše_·r£_‘h”addr.h
+>
+
+30 
+	~<cmdlše_sock‘.h
+>
+
+31 
+	~<cmdlše.h
+>
+
+33 
+	~"p–še_commÚ_ã.h
+"
+
+34 #iâdeà
+VNF_ACL
+
+
+35 
+	~"š‹rçû.h
+"
+
+39 
+	$­p_p–še_pšg
+(
+­p_·¿ms
+ *
+­p
+,
+
+40 
+ušt32_t
+ 
+p–še_id
+)
+
+42 
+­p_p–še_·¿ms
+ *
+p
+;
+
+43 
+p–še_msg_»q
+ *
+»q
+;
+
+44 
+p–še_msg_r¥
+ *
+r¥
+;
+
+45 
+¡©us
+ = 0;
+
+48 ià(
+­p
+ =ð
+NULL
+)
+
+51 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+p–še_·¿ms
+, "PIPELINE", 
+p–še_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–še_id
+, 
+»q
+, 
+MSG_TIMEOUT_DEFAULT
+);
+
+65 ià(
+r¥
+ =ð
+NULL
+)
+
+69 
+¡©us
+ = 
+r¥
+->status;
+
+72 
+	`­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+74  
+¡©us
+;
+
+75 
+	}
+}
+
+78 
+	$­p_p–še_¡©s_pÜt_š
+(
+­p_·¿ms
+ *
+­p
+,
+
+79 
+ušt32_t
+ 
+p–še_id
+,
+
+80 
+ušt32_t
+ 
+pÜt_id
+,
+
+81 
+¹e_p–še_pÜt_š_¡©s
+ *
+¡©s
+)
+
+83 
+­p_p–še_·¿ms
+ *
+p
+;
+
+84 
+p–še_¡©s_msg_»q
+ *
+»q
+;
+
+85 
+p–še_¡©s_pÜt_š_msg_r¥
+ *
+r¥
+;
+
+86 
+¡©us
+ = 0;
+
+89 ià((
+­p
+ =ð
+NULL
+) ||
+
+90 (
+¡©s
+ =ð
+NULL
+))
+
+93 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+p–še_·¿ms
+, "PIPELINE", 
+p–še_id
+, 
+p
+);
+
+94 ià((
+p
+ =ð
+NULL
+) ||
+
+95 (
+pÜt_id
+ >ð
+p
+->
+n_pktq_š
+))
+
+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¥
+ = (
+p–še_¡©s_pÜt_š_msg_r¥
+ *)
+
+109 
+	`­p_msg_£nd_»cv
+(
+­p
+, 
+p–še_id
+, 
+»q
+, 
+MSG_TIMEOUT_DEFAULT
+);
+
+110 ià(
+r¥
+ =ð
+NULL
+)
+
+114 
+¡©us
+ = 
+r¥
+->status;
+
+115 ià(
+¡©us
+ == 0)
+
+116 
+	`memýy
+(
+¡©s
+, &
+r¥
+->stats, (rsp->stats));
+
+119 
+	`­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+121  
+¡©us
+;
+
+122 
+	}
+}
+
+125 
+	$­p_p–še_¡©s_pÜt_out
+(
+­p_·¿ms
+ *
+­p
+,
+
+126 
+ušt32_t
+ 
+p–še_id
+,
+
+127 
+ušt32_t
+ 
+pÜt_id
+,
+
+128 
+¹e_p–še_pÜt_out_¡©s
+ *
+¡©s
+)
+
+130 
+­p_p–še_·¿ms
+ *
+p
+;
+
+131 
+p–še_¡©s_msg_»q
+ *
+»q
+;
+
+132 
+p–še_¡©s_pÜt_out_msg_r¥
+ *
+r¥
+;
+
+133 
+¡©us
+ = 0;
+
+136 ià((
+­p
+ =ð
+NULL
+) ||
+
+137 (
+p–še_id
+ >ð
+­p
+->
+n_p–šes
+) ||
+
+138 (
+¡©s
+ =ð
+NULL
+))
+
+141 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+p–še_·¿ms
+, "PIPELINE", 
+p–še_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–še_id
+, 
+»q
+, 
+MSG_TIMEOUT_DEFAULT
+);
+
+157 ià(
+r¥
+ =ð
+NULL
+)
+
+161 
+¡©us
+ = 
+r¥
+->status;
+
+162 ià(
+¡©us
+ == 0)
+
+163 
+	`memýy
+(
+¡©s
+, &
+r¥
+->stats, (rsp->stats));
+
+166 
+	`­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+168  
+¡©us
+;
+
+169 
+	}
+}
+
+172 
+	$­p_p–še_¡©s_bË
+(
+­p_·¿ms
+ *
+­p
+,
+
+173 
+ušt32_t
+ 
+p–še_id
+,
+
+174 
+ušt32_t
+ 
+bË_id
+,
+
+175 
+¹e_p–še_bË_¡©s
+ *
+¡©s
+)
+
+177 
+­p_p–še_·¿ms
+ *
+p
+;
+
+178 
+p–še_¡©s_msg_»q
+ *
+»q
+;
+
+179 
+p–še_¡©s_bË_msg_r¥
+ *
+r¥
+;
+
+180 
+¡©us
+ = 0;
+
+183 ià((
+­p
+ =ð
+NULL
+) ||
+
+184 (
+¡©s
+ =ð
+NULL
+))
+
+187 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+p–še_·¿ms
+, "PIPELINE", 
+p–še_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
+ = 
+bË_id
+;
+
+201 
+r¥
+ = 
+	`­p_msg_£nd_»cv
+(
+­p
+, 
+p–še_id
+, 
+»q
+, 
+MSG_TIMEOUT_DEFAULT
+);
+
+202 ià(
+r¥
+ =ð
+NULL
+)
+
+206 
+¡©us
+ = 
+r¥
+->status;
+
+207 ià(
+¡©us
+ == 0)
+
+208 
+	`memýy
+(
+¡©s
+, &
+r¥
+->stats, (rsp->stats));
+
+211 
+	`­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+213  
+¡©us
+;
+
+214 
+	}
+}
+
+217 
+	$­p_p–še_pÜt_š_’abË
+(
+­p_·¿ms
+ *
+­p
+,
+
+218 
+ušt32_t
+ 
+p–še_id
+,
+
+219 
+ušt32_t
+ 
+pÜt_id
+)
+
+221 
+­p_p–še_·¿ms
+ *
+p
+;
+
+222 
+p–še_pÜt_š_msg_»q
+ *
+»q
+;
+
+223 
+p–še_msg_r¥
+ *
+r¥
+;
+
+224 
+¡©us
+ = 0;
+
+227 ià(
+­p
+ =ð
+NULL
+)
+
+230 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+p–še_·¿ms
+, "PIPELINE", 
+p–še_id
+, 
+p
+);
+
+231 ià((
+p
+ =ð
+NULL
+) ||
+
+232 (
+pÜt_id
+ >ð
+p
+->
+n_pktq_š
+))
+
+236 
+»q
+ = 
+	`­p_msg_®loc
+(
+­p
+);
+
+237 ià(
+»q
+ =ð
+NULL
+)
+
+241 
+»q
+->
+ty³
+ = 
+PIPELINE_MSG_REQ_PORT_IN_ENABLE
+;
+
+242 
+»q
+->
+pÜt_id
+ =…ort_id;
+
+245 
+r¥
+ = 
+	`­p_msg_£nd_»cv
+(
+­p
+, 
+p–še_id
+, 
+»q
+, 
+MSG_TIMEOUT_DEFAULT
+);
+
+246 ià(
+r¥
+ =ð
+NULL
+)
+
+250 
+¡©us
+ = 
+r¥
+->status;
+
+253 
+	`­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+255  
+¡©us
+;
+
+256 
+	}
+}
+
+259 
+	$­p_p–še_pÜt_š_di§bË
+(
+­p_·¿ms
+ *
+­p
+,
+
+260 
+ušt32_t
+ 
+p–še_id
+,
+
+261 
+ušt32_t
+ 
+pÜt_id
+)
+
+263 
+­p_p–še_·¿ms
+ *
+p
+;
+
+264 
+p–še_pÜt_š_msg_»q
+ *
+»q
+;
+
+265 
+p–še_msg_r¥
+ *
+r¥
+;
+
+266 
+¡©us
+ = 0;
+
+269 ià(
+­p
+ =ð
+NULL
+)
+
+272 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+p–še_·¿ms
+, "PIPELINE", 
+p–še_id
+, 
+p
+);
+
+273 ià((
+p
+ =ð
+NULL
+) ||
+
+274 (
+pÜt_id
+ >ð
+p
+->
+n_pktq_š
+))
+
+278 
+»q
+ = 
+	`­p_msg_®loc
+(
+­p
+);
+
+279 ià(
+»q
+ =ð
+NULL
+)
+
+283 
+»q
+->
+ty³
+ = 
+PIPELINE_MSG_REQ_PORT_IN_DISABLE
+;
+
+284 
+»q
+->
+pÜt_id
+ =…ort_id;
+
+287 
+r¥
+ = 
+	`­p_msg_£nd_»cv
+(
+­p
+, 
+p–še_id
+, 
+»q
+, 
+MSG_TIMEOUT_DEFAULT
+);
+
+288 ià(
+r¥
+ =ð
+NULL
+)
+
+292 
+¡©us
+ = 
+r¥
+->status;
+
+295 
+	`­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+297  
+¡©us
+;
+
+298 
+	}
+}
+
+301 
+	$­p_lšk_cÚfig
+(
+­p_·¿ms
+ *
+­p
+,
+
+302 
+ušt32_t
+ 
+lšk_id
+,
+
+303 
+ušt32_t
+ 
+
+,
+
+304 
+ušt32_t
+ 
+d•th
+)
+
+306 
+­p_lšk_·¿ms
+ *
+p
+;
+
+307 
+ušt32_t
+ 
+i
+, 
+Ãtmask
+, 
+ho¡
+, 
+bÿ¡
+;
+
+310 ià(
+­p
+ =ð
+NULL
+)
+
+313 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+lšk_·¿ms
+, "LINK", 
+lšk_id
+, 
+p
+);
+
+314 ià(
+p
+ =ð
+NULL
+) {
+
+315 
+	`APP_LOG
+(
+­p
+, 
+HIGH
+, "LINK%" 
+PRIu32
+ " is‚ot‡ valid†ink",
+
+316 
+lšk_id
+);
+
+320 ià(
+p
+->
+¡©e
+) {
+
+321 
+	`APP_LOG
+(
+­p
+, 
+HIGH
+, "%s is UP,…lease bring it DOWN first",
+
+322 
+p
+->
+Çme
+);
+
+326 
+Ãtmask
+ = (~0Uè<< (32 - 
+d•th
+);
+
+327 
+ho¡
+ = 
+
+ & 
+Ãtmask
+;
+
+328 
+bÿ¡
+ = 
+ho¡
+ | (~
+Ãtmask
+);
+
+330 ià((
+
+ == 0) ||
+
+331 (
+
+ =ð
+UINT32_MAX
+) ||
+
+332 (
+
+ =ð
+ho¡
+) ||
+
+333 (
+
+ =ð
+bÿ¡
+)) {
+
+334 
+	`APP_LOG
+(
+­p
+, 
+HIGH
+, "Illegal IP‡ddress");
+
+338 
+i
+ = 0; i < 
+­p
+->
+n_lšks
+; i++) {
+
+339 
+­p_lšk_·¿ms
+ *
+lšk
+ = &
+­p
+->
+lšk_·¿ms
+[
+i
+];
+
+340 
+mylšk
+[
+i
+] = *
+lšk
+;
+
+341 ià(
+	`¡rcmp
+(
+p
+->
+Çme
+, 
+lšk
+->name) == 0)
+
+344 ià(
+lšk
+->
+
+ == ip) {
+
+345 
+	`APP_LOG
+(
+­p
+, 
+HIGH
+,
+
+347 
+lšk
+->
+Çme
+);
+
+352 ià((
+d•th
+ == 0) || (depth > 32)) {
+
+353 
+	`APP_LOG
+(
+­p
+, 
+HIGH
+, "Illegal value for depth…arameter "
+
+354 "(%" 
+PRIu32
+ ")",
+
+355 
+d•th
+);
+
+360 
+p
+->
+
+ = ip;
+
+361 
+p
+->
+d•th
+ = depth;
+
+362 #iâdeà
+VNF_ACL
+
+
+363 ià(
+	`ifm_add_v4_pÜt
+(
+lšk_id
+, 
+	`¹e_bsw­32
+(
+
+), 
+d•th
+è=ð
+IFM_FAILURE
+)
+
+368 
+	}
+}
+
+371 
+	$cÚv”t_´efixËn_to_Ãtmask_v6
+(
+ušt32_t
+ 
+d•th
+, 
+ušt8_t
+ 
+Ãtmask_v6
+[])
+
+373 
+mod
+, 
+div
+, 
+i
+;
+
+375 
+	`mem£t
+(
+Ãtmask_v6
+, 0, 16);
+
+377 
+mod
+ = 
+d•th
+ % 8;
+
+378 
+div
+ = 
+d•th
+ / 8;
+
+380 
+i
+ = 0; i < 
+div
+; i++)
+
+381 
+Ãtmask_v6
+[
+i
+] = 0xff;
+
+383 
+Ãtmask_v6
+[
+i
+] = (~0 << (8 - 
+mod
+));
+
+386 
+	}
+}
+
+389 
+	$g‘_ho¡_pÜtiÚ_v6
+(
+ušt8_t
+ 
+v6
+[], ušt8_ˆ
+Ãtmask
+[], ušt8_ˆ
+ho¡_v6
+[])
+
+391 
+i
+;
+
+393 
+i
+ = 0; i < 16; i++) {
+
+394 
+ho¡_v6
+[
+i
+] = 
+v6
+[i] & 
+Ãtmask
+[i];
+
+398 
+	}
+}
+
+401 
+	$g‘_bÿ¡_pÜtiÚ_v6
+(
+ušt8_t
+ 
+ho¡
+[], ušt8_ˆ
+Ãtmask
+[], ušt8_ˆ
+bÿ¡_v6
+[])
+
+403 
+i
+;
+
+405 
+i
+ = 0; i < 16; i++) {
+
+406 
+bÿ¡_v6
+[
+i
+] = 
+ho¡
+[i] | ~
+Ãtmask
+[i];
+
+410 
+	}
+}
+
+413 
+	$­p_lšk_cÚfig_v6
+(
+­p_·¿ms
+ *
+­p
+,
+
+414 
+ušt32_t
+ 
+lšk_id
+, 
+ušt8_t
+ 
+v6
+[], ušt32_ˆ
+d•th
+)
+
+416 
+­p_lšk_·¿ms
+ *
+p
+;
+
+417 
+ušt32_t
+ 
+i
+;
+
+418 
+ušt8_t
+ 
+Ãtmask_v6
+[16], 
+ho¡
+[16], 
+bÿ¡
+[16];
+
+421 ià(
+­p
+ =ð
+NULL
+)
+
+424 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+lšk_·¿ms
+, "LINK", 
+lšk_id
+, 
+p
+);
+
+425 ià(
+p
+ =ð
+NULL
+) {
+
+426 
+	`APP_LOG
+(
+­p
+, 
+HIGH
+, "LINK%" 
+PRIu32
+ " is‚ot‡ valid†ink",
+
+427 
+lšk_id
+);
+
+431 ià(
+p
+->
+¡©e
+) {
+
+432 
+	`APP_LOG
+(
+­p
+, 
+HIGH
+, "%s is UP,…lease bring it DOWN first",
+
+433 
+p
+->
+Çme
+);
+
+437 
+	`cÚv”t_´efixËn_to_Ãtmask_v6
+(
+d•th
+, 
+Ãtmask_v6
+);
+
+438 
+	`g‘_ho¡_pÜtiÚ_v6
+(
+v6
+, 
+Ãtmask_v6
+, 
+ho¡
+);
+
+439 
+	`g‘_bÿ¡_pÜtiÚ_v6
+(
+ho¡
+, 
+Ãtmask_v6
+, 
+bÿ¡
+);
+
+441 
+i
+ = 0; i < 
+­p
+->
+n_lšks
+; i++) {
+
+442 
+­p_lšk_·¿ms
+ *
+lšk
+ = &
+­p
+->
+lšk_·¿ms
+[
+i
+];
+
+444 ià(
+	`¡rcmp
+(
+p
+->
+Çme
+, 
+lšk
+->name) == 0)
+
+447 ià(!
+	`memcmp
+(
+lšk
+->
+v6
+, ipv6, 16)) {
+
+448 
+	`APP_LOG
+(
+­p
+, 
+HIGH
+,
+
+450 
+lšk
+->
+Çme
+);
+
+455 ià((
+d•th
+ == 0) || (depth > 128)) {
+
+456 
+	`APP_LOG
+(
+­p
+, 
+HIGH
+, "Illegal value for depth…arameter "
+
+457 "(%" 
+PRIu32
+ ")", 
+d•th
+);
+
+462 
+	`memýy
+(
+p
+->
+v6
+, ipv6, 16);
+
+464 
+p
+->
+d•th_v6
+ = 
+d•th
+;
+
+471 #iâdeà
+VNF_ACL
+
+
+472 ià(
+	`ifm_add_v6_pÜt
+(
+lšk_id
+, 
+v6
+, 
+d•th
+è=ð
+IFM_FAILURE
+)
+
+476 
+	}
+}
+
+479 
+	$­p_lšk_up
+(
+­p_·¿ms
+ *
+­p
+,
+
+480 
+ušt32_t
+ 
+lšk_id
+)
+
+482 
+­p_lšk_·¿ms
+ *
+p
+;
+
+485 ià(
+­p
+ =ð
+NULL
+)
+
+488 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+lšk_·¿ms
+, "LINK", 
+lšk_id
+, 
+p
+);
+
+489 ià(
+p
+ =ð
+NULL
+) {
+
+490 
+	`APP_LOG
+(
+­p
+, 
+HIGH
+, "LINK%" 
+PRIu32
+ " is‚ot‡ valid†ink",
+
+491 
+lšk_id
+);
+
+496 ià(
+p
+->
+¡©e
+) {
+
+497 
+	`APP_LOG
+(
+­p
+, 
+HIGH
+, "% i ®»ady UP", 
+p
+->
+Çme
+);
+
+502 
+ušt8_t
+ 
+‹mp
+[16];
+
+504 
+	`mem£t
+(
+‹mp
+, 0, 16);
+
+506 ià((
+p
+->
+
+ || 
+	`memcmp
+Õ->
+v6
+, 
+‹mp
+, 16)) == 0) {
+
+507 
+	`APP_LOG
+(
+­p
+, 
+HIGH
+, "% IP‡dd»s i nÙ s‘", 
+p
+->
+Çme
+);
+
+511 
+	`­p_lšk_up_š‹º®
+(
+­p
+, 
+p
+);
+
+514 
+	}
+}
+
+517 
+	$­p_lšk_down
+(
+­p_·¿ms
+ *
+­p
+,
+
+518 
+ušt32_t
+ 
+lšk_id
+)
+
+520 
+­p_lšk_·¿ms
+ *
+p
+;
+
+523 ià(
+­p
+ =ð
+NULL
+)
+
+526 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+lšk_·¿ms
+, "LINK", 
+lšk_id
+, 
+p
+);
+
+527 ià(
+p
+ =ð
+NULL
+) {
+
+528 
+	`APP_LOG
+(
+­p
+, 
+HIGH
+, "LINK%" 
+PRIu32
+ " is‚ot‡ valid†ink",
+
+529 
+lšk_id
+);
+
+534 ià(
+p
+->
+¡©e
+ == 0) {
+
+535 
+	`APP_LOG
+(
+­p
+, 
+HIGH
+, "% i ®»ady DOWN", 
+p
+->
+Çme
+);
+
+539 
+	`­p_lšk_down_š‹º®
+(
+­p
+, 
+p
+);
+
+542 
+	}
+}
+
+548 
+	scmd_pšg_»suÉ
+ {
+
+549 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+550 
+ušt32_t
+ 
+	mp–še_id
+;
+
+551 
+cmdlše_fixed_¡ršg_t
+ 
+	mpšg_¡ršg
+;
+
+555 
+	$cmd_pšg_·r£d
+(
+
+556 *
+·r£d_»suÉ
+,
+
+557 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+558 *
+d©a
+)
+
+560 
+cmd_pšg_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+561 
+­p_·¿ms
+ *
+­p
+ = 
+d©a
+;
+
+562 
+¡©us
+;
+
+564 
+¡©us
+ = 
+	`­p_p–še_pšg
+(
+­p
+, 
+·¿ms
+->
+p–še_id
+);
+
+565 ià(
+¡©us
+ != 0)
+
+566 
+	`´štf
+("Command failed\n");
+
+567 
+	}
+}
+
+569 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_pšg_p_¡ršg
+ =
+
+570 
+TOKEN_STRING_INITIALIZER
+(
+cmd_pšg_»suÉ
+, 
+p_¡ršg
+, "p");
+
+572 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_pšg_p–še_id
+ =
+
+573 
+TOKEN_NUM_INITIALIZER
+(
+cmd_pšg_»suÉ
+, 
+p–še_id
+, 
+UINT32
+);
+
+575 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_pšg_pšg_¡ršg
+ =
+
+576 
+TOKEN_STRING_INITIALIZER
+(
+cmd_pšg_»suÉ
+, 
+pšg_¡ršg
+, "ping");
+
+578 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_pšg
+ = {
+
+579 .
+f
+ = 
+cmd_pšg_·r£d
+,
+
+580 .
+	gd©a
+ = 
+NULL
+,
+
+581 .
+	gh–p_¡r
+ = "Pipeline…ing",
+
+582 .
+	gtok’s
+ = {
+
+583 (*è&
+cmd_pšg_p_¡ršg
+,
+
+584 (*è&
+cmd_pšg_p–še_id
+,
+
+585 (*è&
+cmd_pšg_pšg_¡ršg
+,
+
+586 
+NULL
+,
+
+594 
+	scmd_¡©s_pÜt_š_»suÉ
+ {
+
+595 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+596 
+ušt32_t
+ 
+	mp–še_id
+;
+
+597 
+cmdlše_fixed_¡ršg_t
+ 
+	m¡©s_¡ršg
+;
+
+598 
+cmdlše_fixed_¡ršg_t
+ 
+	mpÜt_¡ršg
+;
+
+599 
+cmdlše_fixed_¡ršg_t
+ 
+	mš_¡ršg
+;
+
+600 
+ušt32_t
+ 
+	mpÜt_š_id
+;
+
+604 
+	$cmd_¡©s_pÜt_š_·r£d
+(
+
+605 *
+·r£d_»suÉ
+,
+
+606 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+607 *
+d©a
+)
+
+609 
+cmd_¡©s_pÜt_š_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+610 
+­p_·¿ms
+ *
+­p
+ = 
+d©a
+;
+
+611 
+¹e_p–še_pÜt_š_¡©s
+ 
+¡©s
+;
+
+612 
+¡©us
+;
+
+614 
+¡©us
+ = 
+	`­p_p–še_¡©s_pÜt_š
+(
+­p
+,
+
+615 
+·¿ms
+->
+p–še_id
+,
+
+616 
+·¿ms
+->
+pÜt_š_id
+,
+
+617 &
+¡©s
+);
+
+619 ià(
+¡©us
+ != 0) {
+
+620 
+	`´štf
+("Command failed\n");
+
+625 
+	`´štf
+("P–š%" 
+PRIu32
+ " - stats for input…ort %" PRIu32 ":\n"
+
+626 "\tPkt š: %" 
+PRIu64
+ "\n"
+
+627 "\tPkt drݳd by AH: %" 
+PRIu64
+ "\n"
+
+628 "\tPkt drݳd by oth”: %" 
+PRIu64
+ "\n",
+
+629 
+·¿ms
+->
+p–še_id
+,
+
+630 
+·¿ms
+->
+pÜt_š_id
+,
+
+631 
+¡©s
+.¡©s.
+n_pkts_š
+,
+
+632 
+¡©s
+.
+n_pkts_drݳd_by_ah
+,
+
+633 
+¡©s
+.¡©s.
+n_pkts_drÝ
+);
+
+634 
+	}
+}
+
+636 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¡©s_pÜt_š_p_¡ršg
+ =
+
+637 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¡©s_pÜt_š_»suÉ
+, 
+p_¡ršg
+,
+
+640 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¡©s_pÜt_š_p–še_id
+ =
+
+641 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¡©s_pÜt_š_»suÉ
+, 
+p–še_id
+,
+
+642 
+UINT32
+);
+
+644 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¡©s_pÜt_š_¡©s_¡ršg
+ =
+
+645 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¡©s_pÜt_š_»suÉ
+, 
+¡©s_¡ršg
+,
+
+648 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¡©s_pÜt_š_pÜt_¡ršg
+ =
+
+649 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¡©s_pÜt_š_»suÉ
+, 
+pÜt_¡ršg
+,
+
+652 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¡©s_pÜt_š_š_¡ršg
+ =
+
+653 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¡©s_pÜt_š_»suÉ
+, 
+š_¡ršg
+,
+
+656 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¡©s_pÜt_š_pÜt_š_id
+ =
+
+657 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¡©s_pÜt_š_»suÉ
+, 
+pÜt_š_id
+,
+
+658 
+UINT32
+);
+
+660 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_¡©s_pÜt_š
+ = {
+
+661 .
+f
+ = 
+cmd_¡©s_pÜt_š_·r£d
+,
+
+662 .
+	gd©a
+ = 
+NULL
+,
+
+663 .
+	gh–p_¡r
+ = "Pipeline input…ort stats",
+
+664 .
+	gtok’s
+ = {
+
+665 (*è&
+cmd_¡©s_pÜt_š_p_¡ršg
+,
+
+666 (*è&
+cmd_¡©s_pÜt_š_p–še_id
+,
+
+667 (*è&
+cmd_¡©s_pÜt_š_¡©s_¡ršg
+,
+
+668 (*è&
+cmd_¡©s_pÜt_š_pÜt_¡ršg
+,
+
+669 (*è&
+cmd_¡©s_pÜt_š_š_¡ršg
+,
+
+670 (*è&
+cmd_¡©s_pÜt_š_pÜt_š_id
+,
+
+671 
+NULL
+,
+
+679 
+	scmd_¡©s_pÜt_out_»suÉ
+ {
+
+680 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+681 
+ušt32_t
+ 
+	mp–še_id
+;
+
+682 
+cmdlše_fixed_¡ršg_t
+ 
+	m¡©s_¡ršg
+;
+
+683 
+cmdlše_fixed_¡ršg_t
+ 
+	mpÜt_¡ršg
+;
+
+684 
+cmdlše_fixed_¡ršg_t
+ 
+	mout_¡ršg
+;
+
+685 
+ušt32_t
+ 
+	mpÜt_out_id
+;
+
+689 
+	$cmd_¡©s_pÜt_out_·r£d
+(
+
+690 *
+·r£d_»suÉ
+,
+
+691 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+692 *
+d©a
+)
+
+695 
+cmd_¡©s_pÜt_out_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+696 
+­p_·¿ms
+ *
+­p
+ = 
+d©a
+;
+
+697 
+¹e_p–še_pÜt_out_¡©s
+ 
+¡©s
+;
+
+698 
+¡©us
+;
+
+700 
+¡©us
+ = 
+	`­p_p–še_¡©s_pÜt_out
+(
+­p
+,
+
+701 
+·¿ms
+->
+p–še_id
+,
+
+702 
+·¿ms
+->
+pÜt_out_id
+,
+
+703 &
+¡©s
+);
+
+705 ià(
+¡©us
+ != 0) {
+
+706 
+	`´štf
+("Command failed\n");
+
+711 
+	`´štf
+("P–š%" 
+PRIu32
+ " - stats for output…ort %" PRIu32 ":\n"
+
+712 "\tPkt š: %" 
+PRIu64
+ "\n"
+
+713 "\tPkt drݳd by AH: %" 
+PRIu64
+ "\n"
+
+714 "\tPkt drݳd by oth”: %" 
+PRIu64
+ "\n",
+
+715 
+·¿ms
+->
+p–še_id
+,
+
+716 
+·¿ms
+->
+pÜt_out_id
+,
+
+717 
+¡©s
+.¡©s.
+n_pkts_š
+,
+
+718 
+¡©s
+.
+n_pkts_drݳd_by_ah
+,
+
+719 
+¡©s
+.¡©s.
+n_pkts_drÝ
+);
+
+720 
+	}
+}
+
+722 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¡©s_pÜt_out_p_¡ršg
+ =
+
+723 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¡©s_pÜt_out_»suÉ
+, 
+p_¡ršg
+,
+
+726 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¡©s_pÜt_out_p–še_id
+ =
+
+727 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¡©s_pÜt_out_»suÉ
+, 
+p–še_id
+,
+
+728 
+UINT32
+);
+
+730 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¡©s_pÜt_out_¡©s_¡ršg
+ =
+
+731 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¡©s_pÜt_out_»suÉ
+, 
+¡©s_¡ršg
+,
+
+734 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¡©s_pÜt_out_pÜt_¡ršg
+ =
+
+735 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¡©s_pÜt_out_»suÉ
+, 
+pÜt_¡ršg
+,
+
+738 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¡©s_pÜt_out_out_¡ršg
+ =
+
+739 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¡©s_pÜt_out_»suÉ
+, 
+out_¡ršg
+,
+
+742 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¡©s_pÜt_out_pÜt_out_id
+ =
+
+743 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¡©s_pÜt_out_»suÉ
+, 
+pÜt_out_id
+,
+
+744 
+UINT32
+);
+
+746 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_¡©s_pÜt_out
+ = {
+
+747 .
+f
+ = 
+cmd_¡©s_pÜt_out_·r£d
+,
+
+748 .
+	gd©a
+ = 
+NULL
+,
+
+749 .
+	gh–p_¡r
+ = "Pipeline output…ort stats",
+
+750 .
+	gtok’s
+ = {
+
+751 (*è&
+cmd_¡©s_pÜt_out_p_¡ršg
+,
+
+752 (*è&
+cmd_¡©s_pÜt_out_p–še_id
+,
+
+753 (*è&
+cmd_¡©s_pÜt_out_¡©s_¡ršg
+,
+
+754 (*è&
+cmd_¡©s_pÜt_out_pÜt_¡ršg
+,
+
+755 (*è&
+cmd_¡©s_pÜt_out_out_¡ršg
+,
+
+756 (*è&
+cmd_¡©s_pÜt_out_pÜt_out_id
+,
+
+757 
+NULL
+,
+
+765 
+	scmd_¡©s_bË_»suÉ
+ {
+
+766 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+767 
+ušt32_t
+ 
+	mp–še_id
+;
+
+768 
+cmdlše_fixed_¡ršg_t
+ 
+	m¡©s_¡ršg
+;
+
+769 
+cmdlše_fixed_¡ršg_t
+ 
+	mbË_¡ršg
+;
+
+770 
+ušt32_t
+ 
+	mbË_id
+;
+
+774 
+	$cmd_¡©s_bË_·r£d
+(
+
+775 *
+·r£d_»suÉ
+,
+
+776 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+777 *
+d©a
+)
+
+779 
+cmd_¡©s_bË_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+780 
+­p_·¿ms
+ *
+­p
+ = 
+d©a
+;
+
+781 
+¹e_p–še_bË_¡©s
+ 
+¡©s
+;
+
+782 
+¡©us
+;
+
+784 
+¡©us
+ = 
+	`­p_p–še_¡©s_bË
+(
+­p
+,
+
+785 
+·¿ms
+->
+p–še_id
+,
+
+786 
+·¿ms
+->
+bË_id
+,
+
+787 &
+¡©s
+);
+
+789 ià(
+¡©us
+ != 0) {
+
+790 
+	`´štf
+("Command failed\n");
+
+795 
+	`´štf
+("P–š%" 
+PRIu32
+ " - stats forable %" PRIu32 ":\n"
+
+796 "\tPkt š: %" 
+PRIu64
+ "\n"
+
+797 "\tPkt š w™h†ooku°miss: %" 
+PRIu64
+ "\n"
+
+798 "\tPkt š w™h†ooku°h™ drݳd by AH: %" 
+PRIu64
+ "\n"
+
+799 "\tPkt š w™h†ooku°h™ drݳd by oth”s: %" 
+PRIu64
+ "\n"
+
+800 "\tPkt š w™h†ooku°mis drݳd by AH: %" 
+PRIu64
+ "\n"
+
+801 "\tPkt š w™h†ooku°mis drݳd by oth”s: %" 
+PRIu64
+ "\n",
+
+802 
+·¿ms
+->
+p–še_id
+,
+
+803 
+·¿ms
+->
+bË_id
+,
+
+804 
+¡©s
+.¡©s.
+n_pkts_š
+,
+
+805 
+¡©s
+.¡©s.
+n_pkts_lookup_miss
+,
+
+806 
+¡©s
+.
+n_pkts_drݳd_by_lkp_h™_ah
+,
+
+807 
+¡©s
+.
+n_pkts_drݳd_lkp_h™
+,
+
+808 
+¡©s
+.
+n_pkts_drݳd_by_lkp_miss_ah
+,
+
+809 
+¡©s
+.
+n_pkts_drݳd_lkp_miss
+);
+
+810 
+	}
+}
+
+812 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¡©s_bË_p_¡ršg
+ =
+
+813 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¡©s_bË_»suÉ
+, 
+p_¡ršg
+,
+
+816 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¡©s_bË_p–še_id
+ =
+
+817 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¡©s_bË_»suÉ
+, 
+p–še_id
+,
+
+818 
+UINT32
+);
+
+820 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¡©s_bË_¡©s_¡ršg
+ =
+
+821 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¡©s_bË_»suÉ
+, 
+¡©s_¡ršg
+,
+
+824 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¡©s_bË_bË_¡ršg
+ =
+
+825 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¡©s_bË_»suÉ
+, 
+bË_¡ršg
+,
+
+828 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¡©s_bË_bË_id
+ =
+
+829 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¡©s_bË_»suÉ
+, 
+bË_id
+, 
+UINT32
+);
+
+831 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_¡©s_bË
+ = {
+
+832 .
+f
+ = 
+cmd_¡©s_bË_·r£d
+,
+
+833 .
+	gd©a
+ = 
+NULL
+,
+
+834 .
+	gh–p_¡r
+ = "Pipelineable stats",
+
+835 .
+	gtok’s
+ = {
+
+836 (*è&
+cmd_¡©s_bË_p_¡ršg
+,
+
+837 (*è&
+cmd_¡©s_bË_p–še_id
+,
+
+838 (*è&
+cmd_¡©s_bË_¡©s_¡ršg
+,
+
+839 (*è&
+cmd_¡©s_bË_bË_¡ršg
+,
+
+840 (*è&
+cmd_¡©s_bË_bË_id
+,
+
+841 
+NULL
+,
+
+849 
+	scmd_pÜt_š_’abË_»suÉ
+ {
+
+850 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+851 
+ušt32_t
+ 
+	mp–še_id
+;
+
+852 
+cmdlše_fixed_¡ršg_t
+ 
+	mpÜt_¡ršg
+;
+
+853 
+cmdlše_fixed_¡ršg_t
+ 
+	mš_¡ršg
+;
+
+854 
+ušt32_t
+ 
+	mpÜt_š_id
+;
+
+855 
+cmdlše_fixed_¡ršg_t
+ 
+	m’abË_¡ršg
+;
+
+859 
+	$cmd_pÜt_š_’abË_·r£d
+(
+
+860 *
+·r£d_»suÉ
+,
+
+861 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+862 *
+d©a
+)
+
+864 
+cmd_pÜt_š_’abË_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+865 
+­p_·¿ms
+ *
+­p
+ = 
+d©a
+;
+
+866 
+¡©us
+;
+
+868 
+¡©us
+ = 
+	`­p_p–še_pÜt_š_’abË
+(
+­p
+,
+
+869 
+·¿ms
+->
+p–še_id
+,
+
+870 
+·¿ms
+->
+pÜt_š_id
+);
+
+872 ià(
+¡©us
+ != 0)
+
+873 
+	`´štf
+("Command failed\n");
+
+874 
+	}
+}
+
+876 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_pÜt_š_’abË_p_¡ršg
+ =
+
+877 
+TOKEN_STRING_INITIALIZER
+(
+cmd_pÜt_š_’abË_»suÉ
+, 
+p_¡ršg
+,
+
+880 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_pÜt_š_’abË_p–še_id
+ =
+
+881 
+TOKEN_NUM_INITIALIZER
+(
+cmd_pÜt_š_’abË_»suÉ
+, 
+p–še_id
+,
+
+882 
+UINT32
+);
+
+884 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_pÜt_š_’abË_pÜt_¡ršg
+ =
+
+885 
+TOKEN_STRING_INITIALIZER
+(
+cmd_pÜt_š_’abË_»suÉ
+, 
+pÜt_¡ršg
+,
+
+888 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_pÜt_š_’abË_š_¡ršg
+ =
+
+889 
+TOKEN_STRING_INITIALIZER
+(
+cmd_pÜt_š_’abË_»suÉ
+, 
+š_¡ršg
+,
+
+892 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_pÜt_š_’abË_pÜt_š_id
+ =
+
+893 
+TOKEN_NUM_INITIALIZER
+(
+cmd_pÜt_š_’abË_»suÉ
+, 
+pÜt_š_id
+,
+
+894 
+UINT32
+);
+
+896 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_pÜt_š_’abË_’abË_¡ršg
+ =
+
+897 
+TOKEN_STRING_INITIALIZER
+(
+cmd_pÜt_š_’abË_»suÉ
+,
+
+898 
+’abË_¡ršg
+, "enable");
+
+900 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_pÜt_š_’abË
+ = {
+
+901 .
+f
+ = 
+cmd_pÜt_š_’abË_·r£d
+,
+
+902 .
+	gd©a
+ = 
+NULL
+,
+
+903 .
+	gh–p_¡r
+ = "Pipeline input…ortƒnable",
+
+904 .
+	gtok’s
+ = {
+
+905 (*è&
+cmd_pÜt_š_’abË_p_¡ršg
+,
+
+906 (*è&
+cmd_pÜt_š_’abË_p–še_id
+,
+
+907 (*è&
+cmd_pÜt_š_’abË_pÜt_¡ršg
+,
+
+908 (*è&
+cmd_pÜt_š_’abË_š_¡ršg
+,
+
+909 (*è&
+cmd_pÜt_š_’abË_pÜt_š_id
+,
+
+910 (*è&
+cmd_pÜt_š_’abË_’abË_¡ršg
+,
+
+911 
+NULL
+,
+
+919 
+	scmd_pÜt_š_di§bË_»suÉ
+ {
+
+920 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+921 
+ušt32_t
+ 
+	mp–še_id
+;
+
+922 
+cmdlše_fixed_¡ršg_t
+ 
+	mpÜt_¡ršg
+;
+
+923 
+cmdlše_fixed_¡ršg_t
+ 
+	mš_¡ršg
+;
+
+924 
+ušt32_t
+ 
+	mpÜt_š_id
+;
+
+925 
+cmdlše_fixed_¡ršg_t
+ 
+	mdi§bË_¡ršg
+;
+
+929 
+	$cmd_pÜt_š_di§bË_·r£d
+(
+
+930 *
+·r£d_»suÉ
+,
+
+931 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+932 *
+d©a
+)
+
+934 
+cmd_pÜt_š_di§bË_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+935 
+­p_·¿ms
+ *
+­p
+ = 
+d©a
+;
+
+936 
+¡©us
+;
+
+938 
+¡©us
+ = 
+	`­p_p–še_pÜt_š_di§bË
+(
+­p
+,
+
+939 
+·¿ms
+->
+p–še_id
+,
+
+940 
+·¿ms
+->
+pÜt_š_id
+);
+
+942 ià(
+¡©us
+ != 0)
+
+943 
+	`´štf
+("Command failed\n");
+
+944 
+	}
+}
+
+946 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_pÜt_š_di§bË_p_¡ršg
+ =
+
+947 
+TOKEN_STRING_INITIALIZER
+(
+cmd_pÜt_š_di§bË_»suÉ
+, 
+p_¡ršg
+,
+
+950 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_pÜt_š_di§bË_p–še_id
+ =
+
+951 
+TOKEN_NUM_INITIALIZER
+(
+cmd_pÜt_š_di§bË_»suÉ
+, 
+p–še_id
+,
+
+952 
+UINT32
+);
+
+954 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_pÜt_š_di§bË_pÜt_¡ršg
+ =
+
+955 
+TOKEN_STRING_INITIALIZER
+(
+cmd_pÜt_š_di§bË_»suÉ
+, 
+pÜt_¡ršg
+,
+
+958 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_pÜt_š_di§bË_š_¡ršg
+ =
+
+959 
+TOKEN_STRING_INITIALIZER
+(
+cmd_pÜt_š_di§bË_»suÉ
+, 
+š_¡ršg
+,
+
+962 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_pÜt_š_di§bË_pÜt_š_id
+ =
+
+963 
+TOKEN_NUM_INITIALIZER
+(
+cmd_pÜt_š_di§bË_»suÉ
+, 
+pÜt_š_id
+,
+
+964 
+UINT32
+);
+
+966 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_pÜt_š_di§bË_di§bË_¡ršg
+ =
+
+967 
+TOKEN_STRING_INITIALIZER
+(
+cmd_pÜt_š_di§bË_»suÉ
+,
+
+968 
+di§bË_¡ršg
+, "disable");
+
+970 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_pÜt_š_di§bË
+ = {
+
+971 .
+f
+ = 
+cmd_pÜt_š_di§bË_·r£d
+,
+
+972 .
+	gd©a
+ = 
+NULL
+,
+
+973 .
+	gh–p_¡r
+ = "Pipeline input…ort disable",
+
+974 .
+	gtok’s
+ = {
+
+975 (*è&
+cmd_pÜt_š_di§bË_p_¡ršg
+,
+
+976 (*è&
+cmd_pÜt_š_di§bË_p–še_id
+,
+
+977 (*è&
+cmd_pÜt_š_di§bË_pÜt_¡ršg
+,
+
+978 (*è&
+cmd_pÜt_š_di§bË_š_¡ršg
+,
+
+979 (*è&
+cmd_pÜt_š_di§bË_pÜt_š_id
+,
+
+980 (*è&
+cmd_pÜt_š_di§bË_di§bË_¡ršg
+,
+
+981 
+NULL
+,
+
+990 
+	$´št_lšk_šfo
+(
+­p_lšk_·¿ms
+ *
+p
+)
+
+992 
+¹e_‘h_¡©s
+ 
+¡©s
+;
+
+993 
+‘h”_addr
+ *
+mac_addr
+;
+
+994 
+ušt32_t
+ 
+Ãtmask
+ = (~0Uè<< (32 - 
+p
+->
+d•th
+);
+
+995 
+ušt32_t
+ 
+ho¡
+ = 
+p
+->
+
+ & 
+Ãtmask
+;
+
+996 
+ušt32_t
+ 
+bÿ¡
+ = 
+ho¡
+ | (~
+Ãtmask
+);
+
+998 
+	`mem£t
+(&
+¡©s
+, 0, (stats));
+
+999 
+	`¹e_‘h_¡©s_g‘
+(
+p
+->
+pmd_id
+, &
+¡©s
+);
+
+1001 
+mac_addr
+ = (
+‘h”_addr
+ *è&
+p
+->mac_addr;
+
+1003 ià(
+	`¡¾’
+(
+p
+->
+pci_bdf
+))
+
+1004 
+	`´štf
+("%s(%s): flags=<%s>\n",
+
+1005 
+p
+->
+Çme
+,
+
+1006 
+p
+->
+pci_bdf
+,
+
+1007 (
+p
+->
+¡©e
+) ? "UP" : "DOWN");
+
+1009 
+	`´štf
+("%s: flags=<%s>\n",
+
+1010 
+p
+->
+Çme
+,
+
+1011 (
+p
+->
+¡©e
+) ? "UP" : "DOWN");
+
+1013 ià(
+p
+->
+
+)
+
+1014 
+	`´štf
+("\tš‘ %" 
+PRIu32
+ ".%" PRIu32
+
+1015 ".%" 
+PRIu32
+ ".%" PRIu32
+
+1016 "‚‘mask %" 
+PRIu32
+ ".%" PRIu32
+
+1017 ".%" 
+PRIu32
+ ".%" PRIu32 " "
+
+1018 "brßdÿ¡ %" 
+PRIu32
+ ".%" PRIu32
+
+1019 ".%" 
+PRIu32
+ ".%" PRIu32 "\n",
+
+1020 (
+p
+->
+
+ >> 24) & 0xFF,
+
+1021 (
+p
+->
+
+ >> 16) & 0xFF,
+
+1022 (
+p
+->
+
+ >> 8) & 0xFF,
+
+1023 
+p
+->
+
+ & 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 
+	`´štf
+("\‹th” %02" 
+PRIx32
+ ":%02" PRIx32 ":%02" PRIx32
+
+1034 ":%02" 
+PRIx32
+ ":%02" PRIx32 ":%02" PRIx32 "\n",
+
+1035 
+mac_addr
+->
+addr_by‹s
+[0],
+
+1036 
+mac_addr
+->
+addr_by‹s
+[1],
+
+1037 
+mac_addr
+->
+addr_by‹s
+[2],
+
+1038 
+mac_addr
+->
+addr_by‹s
+[3],
+
+1039 
+mac_addr
+->
+addr_by‹s
+[4],
+
+1040 
+mac_addr
+->
+addr_by‹s
+[5]);
+
+1042 
+	`´štf
+("\tRX…ack‘ %" 
+PRIu64
+
+
+1043 " by‹ %" 
+PRIu64
+
+
+1045 
+¡©s
+.
+ack‘s
+,
+
+1046 
+¡©s
+.
+iby‹s
+);
+
+1048 
+	`´štf
+("\tRXƒ¼Ü %" 
+PRIu64
+
+
+1049 " mis£d %" 
+PRIu64
+
+
+1050 "‚o-mbuà%" 
+PRIu64
+
+
+1052 
+¡©s
+.
+›¼Üs
+,
+
+1053 
+¡©s
+.
+imis£d
+,
+
+1054 
+¡©s
+.
+rx_nombuf
+);
+
+1056 
+	`´štf
+("\tTX…ack‘ %" 
+PRIu64
+
+
+1057 " by‹ %" 
+PRIu64
+ "\n",
+
+1058 
+¡©s
+.
+Ýack‘s
+,
+
+1059 
+¡©s
+.
+oby‹s
+);
+
+1061 
+	`´štf
+("\tTXƒ¼Ü %" 
+PRIu64
+
+
+1063 
+¡©s
+.
+Û¼Üs
+);
+
+1065 
+	`´štf
+("\n");
+
+1066 
+	}
+}
+
+1068 
+	scmd_lšk_cÚfig_»suÉ
+ {
+
+1069 
+cmdlše_fixed_¡ršg_t
+ 
+	mlšk_¡ršg
+;
+
+1070 
+ušt32_t
+ 
+	mlšk_id
+;
+
+1071 
+cmdlše_fixed_¡ršg_t
+ 
+	mcÚfig_¡ršg
+;
+
+1072 
+cmdlše_addr_t
+ 
+	m
+;
+
+1073 
+ušt32_t
+ 
+	md•th
+;
+
+1077 
+cmd_lšk_cÚfig_·r£d
+(
+
+1078 *
+·r£d_»suÉ
+,
+
+1079 
+__©Œibu‹__
+((
+unu£d
+)è
+cmdlše
+ *
+þ
+,
+
+1080 *
+d©a
+)
+
+1082 
+cmd_lšk_cÚfig_»suÉ
+ *
+	g·¿ms
+ = 
+·r£d_»suÉ
+;
+
+1083 
+­p_·¿ms
+ *
+	g­p
+ = 
+d©a
+;
+
+1084 
+	g¡©us
+;
+
+1086 
+ušt32_t
+ 
+	glšk_id
+ = 
+·¿ms
+->
+lšk_id
+;
+
+1087 
+ušt32_t
+ 
+	g
+;
+
+1088 
+ušt8_t
+ 
+	gv6
+[16];
+
+1089 ià(
+	g·¿ms
+->
+	g
+.
+	gçmžy
+ =ð
+AF_INET
+)
+
+1090 
+
+ = 
+¹e_bsw­32
+((
+ušt32_t
+è
+·¿ms
+->.
+addr
+.
+v4
+.
+s_addr
+);
+
+1092 
+memýy
+(
+v6
+, 
+·¿ms
+->
+
+.
+addr
+.v6.
+s6_addr
+, 16);
+
+1094 
+ušt32_t
+ 
+	gd•th
+ = 
+·¿ms
+->
+d•th
+;
+
+1096 ià(
+	g·¿ms
+->
+	g
+.
+	gçmžy
+ =ð
+AF_INET
+)
+
+1097 
+¡©us
+ = 
+­p_lšk_cÚfig
+(
+­p
+, 
+lšk_id
+, 
+
+, 
+d•th
+);
+
+1099 
+	g¡©us
+ = 
+­p_lšk_cÚfig_v6
+(
+­p
+, 
+lšk_id
+, 
+v6
+, 
+d•th
+);
+
+1101 ià(
+	g¡©us
+)
+
+1102 
+´štf
+("Command failed\n");
+
+1104 
+­p_lšk_·¿ms
+ *
+	gp
+;
+
+1106 
+APP_PARAM_FIND_BY_ID
+(
+­p
+->
+lšk_·¿ms
+, "LINK", 
+lšk_id
+, 
+p
+);
+
+1107 ià(
+	gp
+)
+
+1108 
+´št_lšk_šfo
+(
+p
+);
+
+1112 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_lšk_cÚfig_lšk_¡ršg
+ =
+
+1113 
+TOKEN_STRING_INITIALIZER
+(
+cmd_lšk_cÚfig_»suÉ
+, 
+lšk_¡ršg
+,
+
+1116 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_lšk_cÚfig_lšk_id
+ =
+
+1117 
+TOKEN_NUM_INITIALIZER
+(
+cmd_lšk_cÚfig_»suÉ
+, 
+lšk_id
+, 
+UINT32
+);
+
+1119 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_lšk_cÚfig_cÚfig_¡ršg
+ =
+
+1120 
+TOKEN_STRING_INITIALIZER
+(
+cmd_lšk_cÚfig_»suÉ
+, 
+cÚfig_¡ršg
+,
+
+1123 
+cmdlše_·r£_tok’_addr_t
+ 
+	gcmd_lšk_cÚfig_
+ =
+
+1124 
+TOKEN_IPADDR_INITIALIZER
+(
+cmd_lšk_cÚfig_»suÉ
+, 
+
+);
+
+1126 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_lšk_cÚfig_d•th
+ =
+
+1127 
+TOKEN_NUM_INITIALIZER
+(
+cmd_lšk_cÚfig_»suÉ
+, 
+d•th
+, 
+UINT32
+);
+
+1129 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_lšk_cÚfig
+ = {
+
+1130 .
+f
+ = 
+cmd_lšk_cÚfig_·r£d
+,
+
+1131 .
+	gd©a
+ = 
+NULL
+,
+
+1132 .
+	gh–p_¡r
+ = "Link configuration",
+
+1133 .
+	gtok’s
+ = {
+
+1134 (*)&
+cmd_lšk_cÚfig_lšk_¡ršg
+,
+
+1135 (*)&
+cmd_lšk_cÚfig_lšk_id
+,
+
+1136 (*)&
+cmd_lšk_cÚfig_cÚfig_¡ršg
+,
+
+1137 (*)&
+cmd_lšk_cÚfig_
+,
+
+1138 (*)&
+cmd_lšk_cÚfig_d•th
+,
+
+1139 
+NULL
+,
+
+1147 
+	scmd_lšk_up_»suÉ
+ {
+
+1148 
+cmdlše_fixed_¡ršg_t
+ 
+	mlšk_¡ršg
+;
+
+1149 
+ušt32_t
+ 
+	mlšk_id
+;
+
+1150 
+cmdlše_fixed_¡ršg_t
+ 
+	mup_¡ršg
+;
+
+1154 
+cmd_lšk_up_·r£d
+(
+
+1155 *
+·r£d_»suÉ
+,
+
+1156 
+__©Œibu‹__
+((
+unu£d
+)è
+cmdlše
+ *
+þ
+,
+
+1157 *
+d©a
+)
+
+1159 
+cmd_lšk_up_»suÉ
+ *
+	g·¿ms
+ = 
+·r£d_»suÉ
+;
+
+1160 
+­p_·¿ms
+ *
+	g­p
+ = 
+d©a
+;
+
+1161 
+	g¡©us
+;
+
+1163 
+	g¡©us
+ = 
+­p_lšk_up
+(
+­p
+, 
+·¿ms
+->
+lšk_id
+);
+
+1164 ià(
+	g¡©us
+ != 0)
+
+1165 
+´štf
+("Command failed\n");
+
+1167 
+­p_lšk_·¿ms
+ *
+	gp
+;
+
+1169 
+APP_PARAM_FIND_BY_ID
+(
+­p
+->
+lšk_·¿ms
+, "LINK", 
+·¿ms
+->
+lšk_id
+,
+
+1170 
+p
+);
+
+1171 ià(
+	gp
+)
+
+1172 
+´št_lšk_šfo
+(
+p
+);
+
+1176 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_lšk_up_lšk_¡ršg
+ =
+
+1177 
+TOKEN_STRING_INITIALIZER
+(
+cmd_lšk_up_»suÉ
+, 
+lšk_¡ršg
+,
+
+1180 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_lšk_up_lšk_id
+ =
+
+1181 
+TOKEN_NUM_INITIALIZER
+(
+cmd_lšk_up_»suÉ
+, 
+lšk_id
+, 
+UINT32
+);
+
+1183 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_lšk_up_up_¡ršg
+ =
+
+1184 
+TOKEN_STRING_INITIALIZER
+(
+cmd_lšk_up_»suÉ
+, 
+up_¡ršg
+, "up");
+
+1186 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_lšk_up
+ = {
+
+1187 .
+f
+ = 
+cmd_lšk_up_·r£d
+,
+
+1188 .
+	gd©a
+ = 
+NULL
+,
+
+1189 .
+	gh–p_¡r
+ = "Link UP",
+
+1190 .
+	gtok’s
+ = {
+
+1191 (*)&
+cmd_lšk_up_lšk_¡ršg
+,
+
+1192 (*)&
+cmd_lšk_up_lšk_id
+,
+
+1193 (*)&
+cmd_lšk_up_up_¡ršg
+,
+
+1194 
+NULL
+,
+
+1202 
+	scmd_lšk_down_»suÉ
+ {
+
+1203 
+cmdlše_fixed_¡ršg_t
+ 
+	mlšk_¡ršg
+;
+
+1204 
+ušt32_t
+ 
+	mlšk_id
+;
+
+1205 
+cmdlše_fixed_¡ršg_t
+ 
+	mdown_¡ršg
+;
+
+1209 
+cmd_lšk_down_·r£d
+(
+
+1210 *
+·r£d_»suÉ
+,
+
+1211 
+__©Œibu‹__
+((
+unu£d
+)è
+cmdlše
+ *
+þ
+,
+
+1212 *
+d©a
+)
+
+1214 
+cmd_lšk_down_»suÉ
+ *
+	g·¿ms
+ = 
+·r£d_»suÉ
+;
+
+1215 
+­p_·¿ms
+ *
+	g­p
+ = 
+d©a
+;
+
+1216 
+	g¡©us
+;
+
+1218 
+	g¡©us
+ = 
+­p_lšk_down
+(
+­p
+, 
+·¿ms
+->
+lšk_id
+);
+
+1219 ià(
+	g¡©us
+ != 0)
+
+1220 
+´štf
+("Command failed\n");
+
+1222 
+­p_lšk_·¿ms
+ *
+	gp
+;
+
+1224 
+APP_PARAM_FIND_BY_ID
+(
+­p
+->
+lšk_·¿ms
+, "LINK", 
+·¿ms
+->
+lšk_id
+,
+
+1225 
+p
+);
+
+1226 ià(
+	gp
+)
+
+1227 
+´št_lšk_šfo
+(
+p
+);
+
+1231 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_lšk_down_lšk_¡ršg
+ =
+
+1232 
+TOKEN_STRING_INITIALIZER
+(
+cmd_lšk_down_»suÉ
+, 
+lšk_¡ršg
+,
+
+1235 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_lšk_down_lšk_id
+ =
+
+1236 
+TOKEN_NUM_INITIALIZER
+(
+cmd_lšk_down_»suÉ
+, 
+lšk_id
+, 
+UINT32
+);
+
+1238 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_lšk_down_down_¡ršg
+ =
+
+1239 
+TOKEN_STRING_INITIALIZER
+(
+cmd_lšk_down_»suÉ
+, 
+down_¡ršg
+,
+
+1242 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_lšk_down
+ = {
+
+1243 .
+f
+ = 
+cmd_lšk_down_·r£d
+,
+
+1244 .
+	gd©a
+ = 
+NULL
+,
+
+1245 .
+	gh–p_¡r
+ = "Link DOWN",
+
+1246 .
+	gtok’s
+ = {
+
+1247 (*è&
+cmd_lšk_down_lšk_¡ršg
+,
+
+1248 (*è&
+cmd_lšk_down_lšk_id
+,
+
+1249 (*è&
+cmd_lšk_down_down_¡ršg
+,
+
+1250 
+NULL
+,
+
+1258 
+	scmd_lšk_ls_»suÉ
+ {
+
+1259 
+cmdlše_fixed_¡ršg_t
+ 
+	mlšk_¡ršg
+;
+
+1260 
+cmdlše_fixed_¡ršg_t
+ 
+	mls_¡ršg
+;
+
+1264 
+cmd_lšk_ls_·r£d
+(
+
+1265 
+__©Œibu‹__
+((
+unu£d
+)è*
+·r£d_»suÉ
+,
+
+1266 
+__©Œibu‹__
+((
+unu£d
+)è
+cmdlše
+ *
+þ
+,
+
+1267 *
+d©a
+)
+
+1269 
+­p_·¿ms
+ *
+	g­p
+ = 
+d©a
+;
+
+1270 
+ušt32_t
+ 
+	glšk_id
+;
+
+1272 
+	glšk_id
+ = 0;†šk_id < 
+	g­p
+->
+	gn_lšks
+;†ink_id++) {
+
+1273 
+­p_lšk_·¿ms
+ *
+	gp
+;
+
+1275 
+APP_PARAM_FIND_BY_ID
+(
+­p
+->
+lšk_·¿ms
+, "LINK", 
+lšk_id
+, 
+p
+);
+
+1276 ià(
+	gp
+)
+
+1277 
+´št_lšk_šfo
+(
+p
+);
+
+1279 #iâdeà
+VNF_ACL
+
+
+1280 
+´št_š‹rçû_d‘ažs
+();
+
+1284 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_lšk_ls_lšk_¡ršg
+ =
+
+1285 
+TOKEN_STRING_INITIALIZER
+(
+cmd_lšk_ls_»suÉ
+, 
+lšk_¡ršg
+,
+
+1288 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_lšk_ls_ls_¡ršg
+ =
+
+1289 
+TOKEN_STRING_INITIALIZER
+(
+cmd_lšk_ls_»suÉ
+, 
+ls_¡ršg
+, "ls");
+
+1291 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_lšk_ls
+ = {
+
+1292 .
+f
+ = 
+cmd_lšk_ls_·r£d
+,
+
+1293 .
+	gd©a
+ = 
+NULL
+,
+
+1294 .
+	gh–p_¡r
+ = "Link†ist",
+
+1295 .
+	gtok’s
+ = {
+
+1296 (*)&
+cmd_lšk_ls_lšk_¡ršg
+,
+
+1297 (*)&
+cmd_lšk_ls_ls_¡ršg
+,
+
+1298 
+NULL
+,
+
+1306 
+	scmd_qu™_»suÉ
+ {
+
+1307 
+cmdlše_fixed_¡ršg_t
+ 
+	mqu™
+;
+
+1311 
+	$cmd_qu™_·r£d
+(
+
+1312 
+__¹e_unu£d
+ *
+·r£d_»suÉ
+,
+
+1313 
+cmdlše
+ *
+þ
+,
+
+1314 
+__¹e_unu£d
+ *
+d©a
+)
+
+1316 
+	`cmdlše_qu™
+(
+þ
+);
+
+1317 
+	}
+}
+
+1319 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_qu™_qu™
+ =
+
+1320 
+TOKEN_STRING_INITIALIZER
+(
+cmd_qu™_»suÉ
+, 
+qu™
+, "quit");
+
+1322 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_qu™
+ = {
+
+1323 .
+f
+ = 
+cmd_qu™_·r£d
+,
+
+1324 .
+	gd©a
+ = 
+NULL
+,
+
+1325 .
+	gh–p_¡r
+ = "Quit",
+
+1326 .
+	gtok’s
+ = {
+
+1327 (*è&
+cmd_qu™_qu™
+,
+
+1328 
+NULL
+,
+
+1337 
+	$­p_run_fže
+(
+
+1338 
+cmdlše_·r£_ùx_t
+ *
+ùx
+,
+
+1339 cÚ¡ *
+fže_Çme
+)
+
+1341 
+cmdlše
+ *
+fže_þ
+;
+
+1342 
+fd
+;
+
+1344 
+fd
+ = 
+	`ݒ
+(
+fže_Çme
+, 
+O_RDONLY
+);
+
+1345 ià(
+fd
+ < 0) {
+
+1346 
+	`´štf
+("CªnÙ o³Àfž\"%s\"\n", 
+fže_Çme
+);
+
+1350 
+fže_þ
+ = 
+	`cmdlše_Ãw
+(
+ùx
+, "", 
+fd
+, 1);
+
+1351 
+	`cmdlše_š‹¿ù
+(
+fže_þ
+);
+
+1352 
+	`þo£
+(
+fd
+);
+
+1353 
+	}
+}
+
+1355 
+	scmd_run_fže_»suÉ
+ {
+
+1356 
+cmdlše_fixed_¡ršg_t
+ 
+	mrun_¡ršg
+;
+
+1357 
+	mfže_Çme
+[
+APP_FILE_NAME_SIZE
+];
+
+1361 
+cmd_run_·r£d
+(
+
+1362 *
+·r£d_»suÉ
+,
+
+1363 
+cmdlše
+ *
+þ
+,
+
+1364 
+__©Œibu‹__
+((
+unu£d
+)è*
+d©a
+)
+
+1366 
+cmd_run_fže_»suÉ
+ *
+	g·¿ms
+ = 
+·r£d_»suÉ
+;
+
+1368 
+­p_run_fže
+(
+þ
+->
+ùx
+, 
+·¿ms
+->
+fže_Çme
+);
+
+1371 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_run_run_¡ršg
+ =
+
+1372 
+TOKEN_STRING_INITIALIZER
+(
+cmd_run_fže_»suÉ
+, 
+run_¡ršg
+,
+
+1375 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_run_fže_Çme
+ =
+
+1376 
+TOKEN_STRING_INITIALIZER
+(
+cmd_run_fže_»suÉ
+, 
+fže_Çme
+, 
+NULL
+);
+
+1378 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_run
+ = {
+
+1379 .
+f
+ = 
+cmd_run_·r£d
+,
+
+1380 .
+	gd©a
+ = 
+NULL
+,
+
+1381 .
+	gh–p_¡r
+ = "Run CLI script file",
+
+1382 .
+	gtok’s
+ = {
+
+1383 (*è&
+cmd_run_run_¡ršg
+,
+
+1384 (*è&
+cmd_run_fže_Çme
+,
+
+1385 
+NULL
+,
+
+1389 
+cmdlše_·r£_ùx_t
+ 
+	gp–še_commÚ_cmds
+[] = {
+
+1390 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_qu™
+,
+
+1391 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_run
+,
+
+1393 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_lšk_cÚfig
+,
+
+1394 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_lšk_up
+,
+
+1395 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_lšk_down
+,
+
+1396 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_lšk_ls
+,
+
+1398 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_pšg
+,
+
+1399 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_¡©s_pÜt_š
+,
+
+1400 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_¡©s_pÜt_out
+,
+
+1401 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_¡©s_bË
+,
+
+1402 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_pÜt_š_’abË
+,
+
+1403 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_pÜt_š_di§bË
+,
+
+1404 
+NULL
+,
+
+1408 
+	$­p_p–še_commÚ_cmd_push
+(
+­p_·¿ms
+ *
+­p
+)
+
+1410 
+ušt32_t
+ 
+n_cmds
+, 
+i
+;
+
+1413 
+n_cmds
+ = 
+	`RTE_DIM
+(
+p–še_commÚ_cmds
+) - 1;
+
+1414 ià(
+n_cmds
+ > 
+APP_MAX_CMDS
+ - 
+­p
+->n_cmds)
+
+1415  -
+ENOMEM
+;
+
+1418 
+	`memýy
+(&
+­p
+->
+cmds
+[­p->
+n_cmds
+],
+
+1419 
+p–še_commÚ_cmds
+,
+
+1420 
+n_cmds
+ * (
+cmdlše_·r£_ùx_t
+));
+
+1422 
+i
+ = 0; i < 
+n_cmds
+; i++)
+
+1423 
+­p
+->
+cmds
+[­p->
+n_cmds
+ + 
+i
+]->
+d©a
+ =‡pp;
+
+1425 
+­p
+->
+n_cmds
+ +=‚_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 
+	#__INCLUDE_PIPELINE_COMMON_FE_H__
+
+
+	)
+
+20 
+	~<¹e_commÚ.h
+>
+
+21 
+	~<¹e_cyþes.h
+>
+
+22 
+	~<¹e_m®loc.h
+>
+
+23 
+	~<cmdlše_·r£.h
+>
+
+25 
+	~"p–še_commÚ_be.h
+"
+
+26 
+	~"p–še.h
+"
+
+27 
+	~"­p.h
+"
+
+29 #iâdeà
+MSG_TIMEOUT_DEFAULT
+
+
+30 
+	#MSG_TIMEOUT_DEFAULT
+ 1000
+
+	)
+
+32 
+­p_lšk_·¿ms
+ 
+	gmylšk
+[
+APP_MAX_LINKS
+];
+
+33 
+šlše
+ 
+­p_p–še_d©a
+ *
+
+34 
+	$­p_p–še_d©a
+(
+­p_·¿ms
+ *
+­p
+, 
+ušt32_t
+ 
+id
+)
+
+36 
+­p_p–še_·¿ms
+ *
+·¿ms
+;
+
+38 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+p–še_·¿ms
+, "PIPELINE", 
+id
+, 
+·¿ms
+);
+
+39 ià(
+·¿ms
+ =ð
+NULL
+)
+
+40  
+NULL
+;
+
+42  &
+­p
+->
+p–še_d©a
+[
+·¿ms
+ -‡µ->
+p–še_·¿ms
+];
+
+43 
+	}
+}
+
+45 
+šlše
+ *
+
+46 
+	$­p_p–še_d©a_ã
+(
+­p_·¿ms
+ *
+­p
+, 
+ušt32_t
+ 
+id
+, 
+p–še_ty³
+ *
+±y³
+)
+
+48 
+­p_p–še_d©a
+ *
+p–še_d©a
+;
+
+50 
+p–še_d©a
+ = 
+	`­p_p–še_d©a
+(
+­p
+, 
+id
+);
+
+51 ià(
+p–še_d©a
+ =ð
+NULL
+)
+
+52  
+NULL
+;
+
+54 ià(
+	`¡rcmp
+(
+p–še_d©a
+->
+±y³
+->
+Çme
+,…type->name) != 0)
+
+55  
+NULL
+;
+
+57 ià(
+p–še_d©a
+->
+’abËd
+ == 0)
+
+58  
+NULL
+;
+
+60  
+p–še_d©a
+->
+ã
+;
+
+61 
+	}
+}
+
+63 
+šlše
+ 
+¹e_ršg
+ *
+
+64 
+	$­p_p–še_msgq_š_g‘
+(
+­p_·¿ms
+ *
+­p
+,
+
+65 
+ušt32_t
+ 
+p–še_id
+)
+
+67 
+­p_msgq_·¿ms
+ *
+p
+;
+
+69 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+msgq_·¿ms
+,
+
+71 
+p–še_id
+,
+
+72 
+p
+);
+
+73 ià(
+p
+ =ð
+NULL
+)
+
+74  
+NULL
+;
+
+76  
+­p
+->
+msgq
+[
+p
+ -‡µ->
+msgq_·¿ms
+];
+
+77 
+	}
+}
+
+79 
+šlše
+ 
+¹e_ršg
+ *
+
+80 
+	$­p_p–še_msgq_out_g‘
+(
+­p_·¿ms
+ *
+­p
+,
+
+81 
+ušt32_t
+ 
+p–še_id
+)
+
+83 
+­p_msgq_·¿ms
+ *
+p
+;
+
+85 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+msgq_·¿ms
+,
+
+87 
+p–še_id
+,
+
+88 
+p
+);
+
+89 ià(
+p
+ =ð
+NULL
+)
+
+90  
+NULL
+;
+
+92  
+­p
+->
+msgq
+[
+p
+ -‡µ->
+msgq_·¿ms
+];
+
+93 
+	}
+}
+
+95 
+šlše
+ *
+
+96 
+	$­p_msg_®loc
+(
+__¹e_unu£d
+ 
+­p_·¿ms
+ *
+­p
+)
+
+98  
+	`¹e_m®loc
+(
+NULL
+, 2048, 
+RTE_CACHE_LINE_SIZE
+);
+
+99 
+	}
+}
+
+101 
+šlše
+ 
+
+102 
+	$­p_msg_ä“
+(
+__¹e_unu£d
+ 
+­p_·¿ms
+ *
+­p
+,
+
+103 *
+msg
+)
+
+105 
+	`¹e_ä“
+(
+msg
+);
+
+106 
+	}
+}
+
+108 
+šlše
+ 
+
+109 
+	$­p_msg_£nd
+(
+­p_·¿ms
+ *
+­p
+,
+
+110 
+ušt32_t
+ 
+p–še_id
+,
+
+111 *
+msg
+)
+
+113 
+¹e_ršg
+ *
+r
+ = 
+	`­p_p–še_msgq_š_g‘
+(
+­p
+, 
+p–še_id
+);
+
+114 
+¡©us
+;
+
+117 
+¡©us
+ = 
+	`¹e_ršg_¥_’queue
+(
+r
+, 
+msg
+);
+
+118 } 
+¡©us
+ =ð-
+ENOBUFS
+);
+
+119 
+	}
+}
+
+121 
+šlše
+ *
+
+122 
+	$­p_msg_»cv
+(
+­p_·¿ms
+ *
+­p
+,
+
+123 
+ušt32_t
+ 
+p–še_id
+)
+
+125 
+¹e_ršg
+ *
+r
+ = 
+	`­p_p–še_msgq_out_g‘
+(
+­p
+, 
+p–še_id
+);
+
+126 *
+msg
+;
+
+127 
+¡©us
+ = 
+	`¹e_ršg_sc_dequeue
+(
+r
+, &
+msg
+);
+
+129 ià(
+¡©us
+ != 0)
+
+130  
+NULL
+;
+
+132  
+msg
+;
+
+133 
+	}
+}
+
+135 
+šlše
+ *
+
+136 
+	$­p_msg_£nd_»cv
+(
+­p_·¿ms
+ *
+­p
+,
+
+137 
+ušt32_t
+ 
+p–še_id
+,
+
+138 *
+msg
+,
+
+139 
+ušt32_t
+ 
+timeout_ms
+)
+
+141 
+¹e_ršg
+ *
+r_»q
+ = 
+	`­p_p–še_msgq_š_g‘
+(
+­p
+, 
+p–še_id
+);
+
+142 
+¹e_ršg
+ *
+r_r¥
+ = 
+	`­p_p–še_msgq_out_g‘
+(
+­p
+, 
+p–še_id
+);
+
+143 
+ušt64_t
+ 
+hz
+ = 
+	`¹e_g‘_tsc_hz
+();
+
+144 *
+msg_»cv
+ = 
+NULL
+;
+
+145 
+ušt64_t
+ 
+d—dlše
+;
+
+146 
+¡©us
+ = 0;
+
+150 if(
+r_»q
+)
+
+151 
+¡©us
+ = 
+	`¹e_ršg_¥_’queue
+(
+r_»q
+, (*è
+msg
+);
+
+152 } 
+¡©us
+ =ð-
+ENOBUFS
+);
+
+155 
+d—dlše
+ = (
+timeout_ms
+) ?
+
+156 (
+	`¹e_rdtsc
+(è+ ((
+hz
+ * 
+timeout_ms
+) / 1000)) :
+
+157 
+UINT64_MAX
+;
+
+160 ià(
+	`¹e_rdtsc
+(è> 
+d—dlše
+)
+
+161  
+NULL
+;
+
+162 ià(
+r_r¥
+)
+
+163 
+¡©us
+ = 
+	`¹e_ršg_sc_dequeue
+(
+r_r¥
+, &
+msg_»cv
+);
+
+164 } 
+¡©us
+ != 0);
+
+166  
+msg_»cv
+;
+
+167 
+	}
+}
+
+170 
+­p_p–še_pšg
+(
+­p_·¿ms
+ *
+­p
+,
+
+171 
+ušt32_t
+ 
+p–še_id
+);
+
+174 
+­p_p–še_¡©s_pÜt_š
+(
+­p_·¿ms
+ *
+­p
+,
+
+175 
+ušt32_t
+ 
+p–še_id
+,
+
+176 
+ušt32_t
+ 
+pÜt_id
+,
+
+177 
+¹e_p–še_pÜt_š_¡©s
+ *
+¡©s
+);
+
+180 
+­p_p–še_¡©s_pÜt_out
+(
+­p_·¿ms
+ *
+­p
+,
+
+181 
+ušt32_t
+ 
+p–še_id
+,
+
+182 
+ušt32_t
+ 
+pÜt_id
+,
+
+183 
+¹e_p–še_pÜt_out_¡©s
+ *
+¡©s
+);
+
+186 
+­p_p–še_¡©s_bË
+(
+­p_·¿ms
+ *
+­p
+,
+
+187 
+ušt32_t
+ 
+p–še_id
+,
+
+188 
+ušt32_t
+ 
+bË_id
+,
+
+189 
+¹e_p–še_bË_¡©s
+ *
+¡©s
+);
+
+192 
+­p_p–še_pÜt_š_’abË
+(
+­p_·¿ms
+ *
+­p
+,
+
+193 
+ušt32_t
+ 
+p–še_id
+,
+
+194 
+ušt32_t
+ 
+pÜt_id
+);
+
+197 
+­p_p–še_pÜt_š_di§bË
+(
+­p_·¿ms
+ *
+­p
+,
+
+198 
+ušt32_t
+ 
+p–še_id
+,
+
+199 
+ušt32_t
+ 
+pÜt_id
+);
+
+202 
+­p_lšk_cÚfig
+(
+­p_·¿ms
+ *
+­p
+,
+
+203 
+ušt32_t
+ 
+lšk_id
+,
+
+204 
+ušt32_t
+ 
+
+,
+
+205 
+ušt32_t
+ 
+d•th
+);
+
+208 
+­p_lšk_up
+(
+­p_·¿ms
+ *
+­p
+,
+
+209 
+ušt32_t
+ 
+lšk_id
+);
+
+212 
+­p_lšk_down
+(
+­p_·¿ms
+ *
+­p
+,
+
+213 
+ušt32_t
+ 
+lšk_id
+);
+
+216 
+­p_p–še_commÚ_cmd_push
+(
+­p_·¿ms
+ *
+­p
+);
+
+219 
+cÚv”t_´efixËn_to_Ãtmask_v6
+(
+ušt32_t
+ 
+d•th
+, 
+ušt8_t
+ 
+Ãtmask_v6
+[]);
+
+222 
+g‘_ho¡_pÜtiÚ_v6
+(
+ušt8_t
+ 
+v6
+[], ušt8_ˆ
+Ãtmask
+[], ušt8_ˆ
+ho¡_v6
+[]);
+
+225 
+g‘_bÿ¡_pÜtiÚ_v6
+(
+ušt8_t
+ 
+ho¡
+[], ušt8_ˆ
+Ãtmask
+[], ušt8_ˆ
+bÿ¡_v6
+[]);
+
+228 
+­p_lšk_cÚfig_v6
+(
+­p_·¿ms
+ *
+­p
+,
+
+229 
+ušt32_t
+ 
+lšk_id
+, 
+ušt8_t
+ 
+v6
+[], ušt32_ˆ
+d•th
+);
+
+	@VIL/pipeline_loadb/pipeline_loadb.c
+
+17 
+	~<cmdlše_·r£.h
+>
+
+18 
+	~<cmdlše_·r£_num.h
+>
+
+19 
+	~<cmdlše_·r£_¡ršg.h
+>
+
+20 
+	~<cmdlše_·r£_addr.h
+>
+
+21 
+	~<cmdlše_·r£_‘h”addr.h
+>
+
+23 
+	~"­p.h
+"
+
+24 
+	~"p–še_commÚ_ã.h
+"
+
+25 
+	~"p–še_lßdb.h
+"
+
+26 
+	~"vnf_commÚ.h
+"
+
+28 
+	~"p–še_¬picmp_be.h
+"
+
+32 
+	$­p_p–še_lßdb_’Œy_dbg
+(
+­p_·¿ms
+ *
+­p
+,
+
+33 
+ušt32_t
+ 
+p–še_id
+, 
+ušt8_t
+ *
+msg
+)
+
+35 
+p–še_lßdb_’Œy_dbg_msg_»q
+ *
+»q
+;
+
+36 
+p–še_lßdb_’Œy_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–še_id
+, 
+»q
+, 
+MSG_TIMEOUT_DEFAULT
+);
+
+53 ià(
+r¥
+ =ð
+NULL
+)
+
+57 ià(
+r¥
+->
+¡©us
+) {
+
+58 
+	`­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+59 
+	`´štf
+("E¼Ü„¥->¡©u %d\n", 
+r¥
+->
+¡©us
+);
+
+64 
+	`­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+67 
+	}
+}
+
+73 
+	scmd_’Œy_dbg_»suÉ
+ {
+
+74 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+75 
+ušt32_t
+ 
+	mp
+;
+
+76 
+cmdlše_fixed_¡ršg_t
+ 
+	m’Œy_¡ršg
+;
+
+77 
+cmdlše_fixed_¡ršg_t
+ 
+	mdbg_¡ršg
+;
+
+78 
+ušt8_t
+ 
+	mcmd
+;
+
+79 
+ušt8_t
+ 
+	md1
+;
+
+83 
+	$cmd_’Œy_dbg_·r£d
+(*
+·r£d_»suÉ
+,
+
+84 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+, *
+d©a
+)
+
+86 
+cmd_’Œy_dbg_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+87 
+­p_·¿ms
+ *
+­p
+ = 
+d©a
+;
+
+88 
+ušt8_t
+ 
+msg
+[2];
+
+89 
+¡©us
+;
+
+91 
+msg
+[0] = 
+·¿ms
+->
+cmd
+;
+
+92 
+msg
+[1] = 
+·¿ms
+->
+d1
+;
+
+93 
+¡©us
+ = 
+	`­p_p–še_lßdb_’Œy_dbg
+(
+­p
+, 
+·¿ms
+->
+p
+, 
+msg
+);
+
+95 ià(
+¡©us
+ != 0) {
+
+96 
+	`´štf
+("Dbg Command failed\n");
+
+99 
+	}
+}
+
+101 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	glb_cmd_’Œy_dbg_p_¡ršg
+ =
+
+102 
+TOKEN_STRING_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+p_¡ršg
+, "p");
+
+104 
+cmdlše_·r£_tok’_num_t
+ 
+	glb_cmd_’Œy_dbg_p
+ =
+
+105 
+TOKEN_NUM_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+p
+, 
+UINT32
+);
+
+107 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	glb_cmd_’Œy_dbg_’Œy_¡ršg
+ =
+
+108 
+TOKEN_STRING_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+,
+
+109 
+’Œy_¡ršg
+, "lbentry");
+
+111 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	glb_cmd_’Œy_dbg_dbg_¡ršg
+ =
+
+112 
+TOKEN_STRING_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+dbg_¡ršg
+,
+
+115 
+cmdlše_·r£_tok’_num_t
+ 
+	glb_cmd_’Œy_dbg_cmd
+ =
+
+116 
+TOKEN_NUM_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+cmd
+, 
+UINT8
+);
+
+118 
+cmdlše_·r£_tok’_num_t
+ 
+	glb_cmd_’Œy_dbg_d1
+ =
+
+119 
+TOKEN_NUM_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+d1
+, 
+UINT8
+);
+
+121 
+cmdlše_·r£_š¡_t
+ 
+	glb_cmd_’Œy_dbg
+ = {
+
+122 .
+f
+ = 
+cmd_’Œy_dbg_·r£d
+,
+
+123 .
+	gd©a
+ = 
+NULL
+,
+
+124 .
+	gh–p_¡r
+ = "LOADB dbg cmd",
+
+125 .
+	gtok’s
+ = {
+
+126 (*)&
+lb_cmd_’Œy_dbg_p_¡ršg
+,
+
+127 (*)&
+lb_cmd_’Œy_dbg_p
+,
+
+128 (*)&
+lb_cmd_’Œy_dbg_’Œy_¡ršg
+,
+
+129 (*)&
+lb_cmd_’Œy_dbg_dbg_¡ršg
+,
+
+130 (*)&
+lb_cmd_’Œy_dbg_cmd
+,
+
+131 (*)&
+lb_cmd_’Œy_dbg_d1
+,
+
+132 
+NULL
+,
+
+162 
+	scmd_¬p_add_»suÉ
+ {
+
+163 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+164 
+ušt32_t
+ 
+	mp
+;
+
+165 
+cmdlše_fixed_¡ršg_t
+ 
+	m¬·dd_¡ršg
+;
+
+166 
+ušt32_t
+ 
+	mpÜt_id
+;
+
+167 
+cmdlše_addr_t
+ 
+	m
+;
+
+168 
+‘h”_addr
+ 
+	mmaÿddr
+;
+
+173 
+	$cmd_¬p_add_·r£d
+(*
+·r£d_»suÉ
+,
+
+174 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+, __¹e_unu£d *
+d©a
+)
+
+176 
+cmd_¬p_add_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+177 
+ušt8_t
+ 
+v6
+[16];
+
+186 ià(
+·¿ms
+->
+
+.
+çmžy
+ =ð
+AF_INET
+) {
+
+187 
+	`pÝuϋ_¬p_’Œy
+(&
+·¿ms
+->
+maÿddr
+,
+
+188 
+	`¹e_ýu_to_be_32
+(
+·¿ms
+->
+
+.
+addr
+.
+
+189 
+v4
+.
+s_addr
+),
+
+190 
+·¿ms
+->
+pÜt_id
+, 
+STATIC_ARP
+);
+
+192 
+	`memýy
+(
+v6
+, 
+·¿ms
+->
+
+.
+addr
+.v6.
+s6_addr
+, 16);
+
+193 
+	`pÝuϋ_nd_’Œy
+(&
+·¿ms
+->
+maÿddr
+, 
+v6
+,…¬ams->
+pÜt_id
+, 
+STATIC_ND
+);
+
+195 
+	}
+}
+
+197 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_add_p_¡ršg
+ =
+
+198 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_add_»suÉ
+, 
+p_¡ršg
+,
+
+201 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¬p_add_p
+ =
+
+202 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¬p_add_»suÉ
+, 
+p
+, 
+UINT32
+);
+
+204 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_add_¬p_¡ršg
+ =
+
+205 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_add_»suÉ
+, 
+¬·dd_¡ršg
+, "arpadd");
+
+207 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¬p_add_pÜt_id
+ =
+
+208 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¬p_add_»suÉ
+, 
+pÜt_id
+, 
+UINT32
+);
+
+210 
+cmdlše_·r£_tok’_addr_t
+ 
+	gcmd_¬p_add_
+ =
+
+211 
+TOKEN_IPADDR_INITIALIZER
+(
+cmd_¬p_add_»suÉ
+, 
+
+);
+
+213 
+cmdlše_·r£_tok’_‘h”addr_t
+ 
+	gcmd_¬p_add_maÿddr
+ =
+
+214 
+TOKEN_ETHERADDR_INITIALIZER
+(
+cmd_¬p_add_»suÉ
+, 
+maÿddr
+);
+
+216 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_¬p_add
+ = {
+
+217 .
+f
+ = 
+cmd_¬p_add_·r£d
+,
+
+218 .
+	gd©a
+ = 
+NULL
+,
+
+219 .
+	gh–p_¡r
+ = "ARP‡dd",
+
+220 .
+	gtok’s
+ = {
+
+221 (*)&
+cmd_¬p_add_p_¡ršg
+,
+
+222 (*)&
+cmd_¬p_add_p
+,
+
+223 (*)&
+cmd_¬p_add_¬p_¡ršg
+,
+
+224 (*)&
+cmd_¬p_add_pÜt_id
+,
+
+225 (*)&
+cmd_¬p_add_
+,
+
+226 (*)&
+cmd_¬p_add_maÿddr
+,
+
+227 
+NULL
+,
+
+235 
+	scmd_¬p_d–_»suÉ
+ {
+
+236 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+237 
+ušt32_t
+ 
+	mp
+;
+
+238 
+cmdlše_fixed_¡ršg_t
+ 
+	m¬p_¡ršg
+;
+
+239 
+ušt32_t
+ 
+	mpÜt_id
+;
+
+240 
+cmdlše_addr_t
+ 
+	m
+;
+
+244 
+	$cmd_¬p_d–_·r£d
+(*
+·r£d_»suÉ
+,
+
+245 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+, __¹e_unu£d *
+d©a
+)
+
+247 
+cmd_¬p_d–_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+248 
+ušt8_t
+ 
+v6
+[16];
+
+257 ià(
+·¿ms
+->
+
+.
+çmžy
+ =ð
+AF_INET
+) {
+
+258 
+	`»move_¬p_’Œy
+(
+	`¹e_ýu_to_be_32
+(
+·¿ms
+->
+
+.
+addr
+.
+v4
+.
+s_addr
+),
+
+259 
+·¿ms
+->
+pÜt_id
+, 
+NULL
+);
+
+261 
+	`memýy
+(
+v6
+, 
+·¿ms
+->
+
+.
+addr
+.v6.
+s6_addr
+, 16);
+
+262 
+	`»move_nd_’Œy_v6
+(
+v6
+, 
+·¿ms
+->
+pÜt_id
+);
+
+264 
+	}
+}
+
+266 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_d–_p_¡ršg
+ =
+
+267 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_d–_»suÉ
+, 
+p_¡ršg
+,
+
+270 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¬p_d–_p
+ =
+
+271 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¬p_d–_»suÉ
+, 
+p
+, 
+UINT32
+);
+
+273 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_d–_¬p_¡ršg
+ =
+
+274 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_d–_»suÉ
+, 
+¬p_¡ršg
+, "arpdel");
+
+276 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¬p_d–_pÜt_id
+ =
+
+277 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¬p_d–_»suÉ
+, 
+pÜt_id
+, 
+UINT32
+);
+
+279 
+cmdlše_·r£_tok’_addr_t
+ 
+	gcmd_¬p_d–_
+ =
+
+280 
+TOKEN_IPADDR_INITIALIZER
+(
+cmd_¬p_d–_»suÉ
+, 
+
+);
+
+282 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_¬p_d–
+ = {
+
+283 .
+f
+ = 
+cmd_¬p_d–_·r£d
+,
+
+284 .
+	gd©a
+ = 
+NULL
+,
+
+285 .
+	gh–p_¡r
+ = "ARP delete",
+
+286 .
+	gtok’s
+ = {
+
+287 (*)&
+cmd_¬p_d–_p_¡ršg
+,
+
+288 (*)&
+cmd_¬p_d–_p
+,
+
+289 (*)&
+cmd_¬p_d–_¬p_¡ršg
+,
+
+290 (*)&
+cmd_¬p_d–_pÜt_id
+,
+
+291 (*)&
+cmd_¬p_d–_
+,
+
+292 
+NULL
+,
+
+303 
+	$cmd_¬p_»q_·r£d
+(*
+·r£d_»suÉ
+,
+
+304 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+, __¹e_unu£d *
+d©a
+)
+
+306 
+cmd_¬p_d–_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+309 
+¬p_key_v4
+ 
+key
+;
+
+315 
+key
+.
+
+ = 
+	`¹e_ýu_to_be_32
+(
+·¿ms
+->.
+addr
+.
+v4
+.
+s_addr
+);
+
+316 
+key
+.
+pÜt_id
+ = 
+·¿ms
+->port_id;
+
+317 
+key
+.
+fžËr1
+ = 0;
+
+318 
+key
+.
+fžËr2
+ = 0;
+
+319 
+key
+.
+fžËr3
+ = 0;
+
+321 
+¬p_’Œy_d©a
+ *
+¬p_d©a
+ = 
+	`»Œ›ve_¬p_’Œy
+(
+key
+);
+
+323 ià(
+¬p_d©a
+) {
+
+324 ià(
+ARPICMP_DEBUG
+)
+
+325 
+	`´štf
+("ARPƒntryƒxists for ip 0x%x,…ort %d\n",
+
+326 
+·¿ms
+->
+
+.
+addr
+.
+v4
+.
+s_addr
+,…¬ams->
+pÜt_id
+);
+
+330 ià(
+ARPICMP_DEBUG
+)
+
+331 
+	`´štf
+("ARP -„equesting‡rp for ip 0x%x,…ort %d\n",
+
+332 
+·¿ms
+->
+
+.
+addr
+.
+v4
+.
+s_addr
+,…¬ams->
+pÜt_id
+);
+
+333 
+	`»que¡_¬p
+(
+·¿ms
+->
+pÜt_id
+,…¬ams->
+
+.
+addr
+.
+v4
+.
+s_addr
+);
+
+335 
+	}
+}
+
+337 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_»q_¡ršg
+ =
+
+338 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_d–_»suÉ
+, 
+¬p_¡ršg
+, "arpreq");
+
+340 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_¬p_»q
+ = {
+
+341 .
+f
+ = 
+cmd_¬p_»q_·r£d
+,
+
+342 .
+	gd©a
+ = 
+NULL
+,
+
+343 .
+	gh–p_¡r
+ = "ARP„equest",
+
+344 .
+	gtok’s
+ = {
+
+345 (*)&
+cmd_¬p_d–_p_¡ršg
+,
+
+346 (*)&
+cmd_¬p_d–_p
+,
+
+347 (*)&
+cmd_¬p_»q_¡ršg
+,
+
+348 (*)&
+cmd_¬p_d–_pÜt_id
+,
+
+349 (*)&
+cmd_¬p_d–_
+,
+
+350 
+NULL
+,
+
+361 
+	$cmd_icmp_echo_»q_·r£d
+(*
+·r£d_»suÉ
+,
+
+362 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+363 
+__¹e_unu£d
+ *
+d©a
+)
+
+365 
+cmd_¬p_d–_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+366 
+¹e_mbuf
+ *
+pkt
+;
+
+367 
+l2_phy_š‹rçû_t
+ *
+pÜt
+ = (l2_phy_š‹rçû_ˆ*è
+	`ifm_g‘_pÜt
+((
+ušt8_t
+)
+·¿ms
+->
+pÜt_id
+);
+
+369 ià(
+ARPICMP_DEBUG
+)
+
+370 
+	`´štf
+("Echo Req Handler ip %x,…ort %d\n",
+
+371 
+·¿ms
+->
+
+.
+addr
+.
+v4
+.
+s_addr
+,…¬ams->
+pÜt_id
+);
+
+373 
+pkt
+ = 
+	`»que¡_echo
+(
+·¿ms
+->
+pÜt_id
+,…¬ams->
+
+.
+addr
+.
+v4
+.
+s_addr
+);
+
+374 
+pÜt
+->
+	`Œªsm™_sšgË_pkt
+ÕÜt, 
+pkt
+);
+
+375 
+	}
+}
+
+377 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_icmp_echo_»q_¡ršg
+ =
+
+378 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_d–_»suÉ
+, 
+¬p_¡ršg
+, "icmpecho");
+
+380 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_icmp_echo_»q
+ = {
+
+381 .
+f
+ = 
+cmd_icmp_echo_»q_·r£d
+,
+
+382 .
+	gd©a
+ = 
+NULL
+,
+
+383 .
+	gh–p_¡r
+ = "ICMPƒcho„equest",
+
+384 .
+	gtok’s
+ = {
+
+385 (*)&
+cmd_¬p_d–_p_¡ršg
+,
+
+386 (*)&
+cmd_¬p_d–_p
+,
+
+387 (*)&
+cmd_icmp_echo_»q_¡ršg
+,
+
+388 (*)&
+cmd_¬p_d–_pÜt_id
+,
+
+389 (*)&
+cmd_¬p_d–_
+,
+
+390 
+NULL
+,
+
+398 
+	scmd_¬p_ls_»suÉ
+ {
+
+399 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+400 
+ušt32_t
+ 
+	mp
+;
+
+401 
+cmdlše_fixed_¡ršg_t
+ 
+	m¬p_¡ršg
+;
+
+405 
+	$cmd_¬p_ls_·r£d
+(
+__¹e_unu£d
+ *
+·r£d_»suÉ
+,
+
+406 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+, __¹e_unu£d *
+d©a
+)
+
+408 
+	`´štf
+("\nARPable ...\n");
+
+409 
+	`´štf
+("-------------\n");
+
+410 
+	`´št_¬p_bË
+();
+
+412 
+´štf
+
+
+415 
+	`´štf
+("\nND IPv6able:\n");
+
+416 
+	`´štf
+("--------------\n");
+
+417 
+	`´št_nd_bË
+();
+
+418 
+	}
+}
+
+420 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_ls_p_¡ršg
+ =
+
+421 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_ls_»suÉ
+, 
+p_¡ršg
+,
+
+424 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_¬p_ls_p
+ =
+
+425 
+TOKEN_NUM_INITIALIZER
+(
+cmd_¬p_ls_»suÉ
+, 
+p
+, 
+UINT32
+);
+
+427 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_¬p_ls_¬p_¡ršg
+ =
+
+428 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_ls_»suÉ
+, 
+¬p_¡ršg
+,
+
+431 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_¬p_ls
+ = {
+
+432 .
+f
+ = 
+cmd_¬p_ls_·r£d
+,
+
+433 .
+	gd©a
+ = 
+NULL
+,
+
+434 .
+	gh–p_¡r
+ = "ARP†ist",
+
+435 .
+	gtok’s
+ = {
+
+436 (*)&
+cmd_¬p_ls_p_¡ršg
+,
+
+437 (*)&
+cmd_¬p_ls_p
+,
+
+438 (*)&
+cmd_¬p_ls_¬p_¡ršg
+,
+
+439 
+NULL
+,
+
+447 
+	scmd_show_pÜts_šfo_»suÉ
+ {
+
+448 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+449 
+ušt32_t
+ 
+	mp
+;
+
+450 
+cmdlše_fixed_¡ršg_t
+ 
+	m¬p_¡ršg
+;
+
+454 
+	$cmd_show_pÜts_šfo_·r£d
+(
+__¹e_unu£d
+ *
+·r£d_»suÉ
+,
+
+455 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+456 
+__¹e_unu£d
+ *
+d©a
+)
+
+458 
+	`show_pÜts_šfo
+();
+
+459 
+	}
+}
+
+461 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_show_pÜts_šfo_¡ršg
+ =
+
+462 
+TOKEN_STRING_INITIALIZER
+(
+cmd_¬p_ls_»suÉ
+, 
+¬p_¡ršg
+,
+
+465 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_show_pÜts_šfo
+ = {
+
+466 .
+f
+ = 
+cmd_show_pÜts_šfo_·r£d
+,
+
+467 .
+	gd©a
+ = 
+NULL
+,
+
+468 .
+	gh–p_¡r
+ = "show…orts info",
+
+469 .
+	gtok’s
+ = {
+
+470 (*)&
+cmd_¬p_ls_p_¡ršg
+,
+
+471 (*)&
+cmd_¬p_ls_p
+,
+
+472 (*)&
+cmd_show_pÜts_šfo_¡ršg
+,
+
+473 
+NULL
+,
+
+478 
+cmdlše_·r£_ùx_t
+ 
+	gp–še_cmds
+[] = {
+
+479 (
+cmdlše_·r£_š¡_t
+ *è&
+lb_cmd_’Œy_dbg
+,
+
+480 
+NULL
+,
+
+483 
+p–še_ã_Ýs
+ 
+	gp–še_lßdb_ã_Ýs
+ = {
+
+484 .
+f_š™
+ = 
+NULL
+,
+
+485 .
+	gf_ä“
+ = 
+NULL
+,
+
+486 .
+	gcmds
+ = 
+p–še_cmds
+,
+
+489 
+p–še_ty³
+ 
+	gp–še_lßdb
+ = {
+
+490 .
+Çme
+ = "LOADB",
+
+491 .
+	gbe_Ýs
+ = &
+p–še_lßdb_be_Ýs
+,
+
+492 .
+	gã_Ýs
+ = &
+p–še_lßdb_ã_Ýs
+,
+
+	@VIL/pipeline_loadb/pipeline_loadb.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_LOADB_H__
+
+
+18 
+	#__INCLUDE_PIPELINE_LOADB_H__
+
+
+	)
+
+20 
+	~"p–še.h
+"
+
+21 
+	~"p–še_lßdb_be.h
+"
+
+27 

+p–še_ty³
+ 
+p–še_lßdb
+;
+
+	@VIL/pipeline_loadb/pipeline_loadb_be.c
+
+17 
+	~<¡dio.h
+>
+
+18 
+	~<¡dlib.h
+>
+
+19 
+	~<¡dšt.h
+>
+
+20 
+	~<¡ršg.h
+>
+
+21 
+	~<uni¡d.h
+>
+
+23 
+	~<¹e_commÚ.h
+>
+
+24 
+	~<¹e_m®loc.h
+>
+
+25 
+	~<¹e_.h
+>
+
+26 
+	~<¹e_hash.h
+>
+
+27 
+	~<¹e_by‹Üd”.h
+>
+
+28 
+	~<¹e_bË_Ím.h
+>
+
+29 
+	~<¹e_bË_hash.h
+>
+
+30 
+	~<¹e_jhash.h
+>
+
+31 
+	~<¹e_thash.h
+>
+
+32 
+	~<¹e_cyþes.h
+>
+
+33 
+	~<¹e_‘hdev.h
+>
+
+34 
+	~<¹e_´eãtch.h
+>
+
+35 
+	~<¹e_bË_¬¿y.h
+>
+
+36 
+	~"p–še_lßdb_be.h
+"
+
+37 
+	~"p–še_aùiÚs_commÚ.h
+"
+
+38 
+	~"hash_func.h
+"
+
+39 
+	~"p–še_¬picmp_be.h
+"
+
+40 
+	~"vnf_commÚ.h
+"
+
+41 
+	~"­p.h
+"
+
+43 
+	#BYTES_TO_BITS
+ 8
+
+	)
+
+44 
+	#ROTATE_15_BITS
+ 15
+
+	)
+
+46 
+	#MAX_VNF_THREADS
+ 16
+
+	)
+
+48 
+	gpkt_bur¡_út
+;
+
+50 
+ušt8_t
+ 
+	gLOADB_DEBUG
+;
+
+51 
+ušt8_t
+ 
+	gtÙ®_vnf_th»ads
+;
+
+52 
+ušt32_t
+ 
+	gphypÜt_off£t
+;
+
+54 
+	sp–še_lßdb
+ {
+
+55 
+p–še
+ 
+	mp
+;
+
+56 
+p–še_msg_»q_hªdËr
+ 
+	mcu¡om_hªdËrs
+[
+PIPELINE_LOADB_MSG_REQS
+];
+
+58 
+ušt8_t
+ 
+	mn_vnf_th»ads
+;
+
+59 
+ušt8_t
+ 
+	mn_lb_tu¶es
+;
+
+60 
+ušt32_t
+ 
+	mouÜt_off£t
+;
+
+61 
+ušt64_t
+ 
+	m»ûivedLBPktCouÁ
+;
+
+62 
+ušt64_t
+ 
+	mdrݳdLBPktCouÁ
+;
+
+63 
+ušt8_t
+ 
+	mlšks_m­
+[
+PIPELINE_MAX_PORT_IN
+];
+
+64 
+ušt8_t
+ 
+	mouÜt_id
+[
+PIPELINE_MAX_PORT_IN
+];
+
+65 
+ušt8_t
+ 
+	mn_´v_Q
+;
+
+66 
+ušt8_t
+ 
+	mn_pub_Q
+;
+
+67 
+ušt8_t
+ 
+	mp–še_num
+;
+
+68 } 
+	g__¹e_ÿche_®igÃd
+;
+
+70 
+ušt8_t
+ 
+	gdeçuÉ_rss_key
+[] = {
+
+78 *
+p–še_lßdb_msg_»q_cu¡om_hªdËr
+(
+p–še
+ *
+p
+,
+
+79 *
+msg
+);
+
+81 
+p–še_msg_»q_hªdËr
+ 
+	ghªdËrs
+[] = {
+
+82 [
+PIPELINE_MSG_REQ_PING
+] =
+
+83 
+p–še_msg_»q_pšg_hªdËr
+,
+
+84 [
+PIPELINE_MSG_REQ_STATS_PORT_IN
+] =
+
+85 
+p–še_msg_»q_¡©s_pÜt_š_hªdËr
+,
+
+86 [
+PIPELINE_MSG_REQ_STATS_PORT_OUT
+] =
+
+87 
+p–še_msg_»q_¡©s_pÜt_out_hªdËr
+,
+
+88 [
+PIPELINE_MSG_REQ_STATS_TABLE
+] =
+
+89 
+p–še_msg_»q_¡©s_bË_hªdËr
+,
+
+90 [
+PIPELINE_MSG_REQ_PORT_IN_ENABLE
+] =
+
+91 
+p–še_msg_»q_pÜt_š_’abË_hªdËr
+,
+
+92 [
+PIPELINE_MSG_REQ_PORT_IN_DISABLE
+] =
+
+93 
+p–še_msg_»q_pÜt_š_di§bË_hªdËr
+,
+
+94 [
+PIPELINE_MSG_REQ_CUSTOM
+] =
+
+95 
+p–še_lßdb_msg_»q_cu¡om_hªdËr
+,
+
+99 *
+p–še_lßdb_msg_»q_’Œy_dbg_hªdËr
+(
+p–še
+ *,
+
+100 *
+msg
+);
+
+102 
+p–še_msg_»q_hªdËr
+ 
+	gcu¡om_hªdËrs
+[] = {
+
+103 [
+PIPELINE_LOADB_MSG_REQ_ENTRY_DBG
+] =
+
+104 
+p–še_lßdb_msg_»q_’Œy_dbg_hªdËr
+,
+
+110 
+	slßdb_bË_’Œy
+ {
+
+111 
+¹e_p–še_bË_’Œy
+ 
+	mh—d
+;
+
+112 } 
+	g__¹e_ÿche_®igÃd
+;
+
+114 *
+	$p–še_lßdb_msg_»q_cu¡om_hªdËr
+(
+p–še
+ *
+p
+, *
+msg
+)
+
+116 
+p–še_lßdb
+ *
+p_lb
+ = (p–še_lßdb *)
+p
+;
+
+117 
+p–še_cu¡om_msg_»q
+ *
+»q
+ = 
+msg
+;
+
+118 
+p–še_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–še_msg_»q_šv®id_hªdËr
+;
+
+124 ià(
+f_hªdË
+ =ð
+NULL
+)
+
+125 
+f_hªdË
+ = 
+p–še_msg_»q_šv®id_hªdËr
+;
+
+127  
+	`f_hªdË
+(
+p
+, 
+»q
+);
+
+128 
+	}
+}
+
+130 
+ušt32_t
+ 
+	glb_pkt_´št_couÁ
+;
+
+132 
+ušt8_t
+ 
+	$ÿlcuϋ_lb_th»ad_´v
+(
+¹e_mbuf
+ *
+pkt
+, *
+¬g
+)
+
+134 
+ušt32_t
+ 
+hash_key
+[2], 
+hash_v4
+;
+
+135 
+ušt32_t
+ 
+‹mp1
+, 
+‹mp2
+, 
+‹mp3
+;
+
+136 
+ušt8_t
+ 
+th»ad
+;
+
+137 
+p–še_lßdb_š_pÜt_h_¬g
+ *
+­
+ = 
+¬g
+;
+
+138 
+p–še_lßdb
+ *
+p_lßdb
+ = (p–še_lßdb *è
+­
+->
+p
+;
+
+139 
+ušt8_t
+ 
+Áh»ads
+ = 
+p_lßdb
+->
+n_vnf_th»ads
+;
+
+140 
+¹e_thash_tu¶e
+ 
+tu¶e
+;
+
+142 
+ušt32_t
+ *
+¤c_addr
+;
+
+143 
+ušt32_t
+ *
+d¡_addr
+;
+
+144 
+ušt16_t
+ *
+¤c_pÜt
+;
+
+145 
+ušt16_t
+ *
+d¡_pÜt
+;
+
+146 
+ušt8_t
+ *
+´ÙocÞ
+;
+
+147 
+lb_pkt
+ *lb_pkt = (lb_pkt *)
+
+148 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+, 
+MBUF_HDR_ROOM
+);
+
+150 ià(
+	`¹e_be_to_ýu_16
+(
+lb_pkt
+->
+‘h
+.
+‘h”_ty³
+è=ð
+ETHER_TYPE_IPv6
+) {
+
+151 
+¤c_addr
+ = (
+ušt32_t
+ *)&
+lb_pkt
+->
+v6_pÜt
+.
+v6
+.src_addr;
+
+152 
+d¡_addr
+ = (
+ušt32_t
+ *)&
+lb_pkt
+->
+v6_pÜt
+.
+v6
+.dst_addr;
+
+153 
+¤c_pÜt
+ = &
+lb_pkt
+->
+v6_pÜt
+.src_port;
+
+154 
+d¡_pÜt
+ = &
+lb_pkt
+->
+v6_pÜt
+.dst_port;
+
+155 
+´ÙocÞ
+ = &
+lb_pkt
+->
+v6_pÜt
+.
+v6
+.
+´Ùo
+;
+
+157 
+¤c_addr
+ = &
+lb_pkt
+->
+v4_pÜt
+.
+v4
+.src_addr;
+
+158 
+d¡_addr
+ = &
+lb_pkt
+->
+v4_pÜt
+.
+v4
+.dst_addr;
+
+159 
+¤c_pÜt
+ = &
+lb_pkt
+->
+v4_pÜt
+.src_port;
+
+160 
+d¡_pÜt
+ = &
+lb_pkt
+->
+v4_pÜt
+.dst_port;
+
+161 
+´ÙocÞ
+ = &
+lb_pkt
+->
+v4_pÜt
+.
+v4
+.
+Ãxt_´Ùo_id
+;
+
+164 
+p_lßdb
+->
+n_lb_tu¶es
+) {
+
+169 ià(
+	`¹e_be_to_ýu_16
+(
+lb_pkt
+->
+‘h
+.
+‘h”_ty³
+è=ð
+ETHER_TYPE_IPv6
+)
+
+170 
+‹mp1
+ = 
+	`¹e_bsw­32
+(
+d¡_addr
+[3]è^ *
+d¡_pÜt
+;
+
+172 
+‹mp1
+ = *
+d¡_addr
+ ^ *
+d¡_pÜt
+;
+
+174 
+‹mp2
+ = (
+‹mp1
+ >> 24) ^ (temp1 >> 16) ^
+
+175 (
+‹mp1
+ >> 8) ^emp1;
+
+177 
+‹mp3
+ = (
+‹mp2
+ >> 4) ^ (temp2 & 0xf);
+
+180 
+th»ad
+ = 
+‹mp3
+ % 
+Áh»ads
+;
+
+182 
+th»ad
+ = 
+­
+->
+š_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_š
+ *
+
+183 (
+th»ad
+ + 1è- 
+p_lßdb
+->
+p
+.
+n_pÜts_š
+);
+
+184  
+th»ad
+;
+
+189 ià(
+	`¹e_be_to_ýu_16
+(
+lb_pkt
+->
+‘h
+.
+‘h”_ty³
+è=ð
+ETHER_TYPE_IPv6
+)
+
+190 
+hash_key
+[0] = 
+	`¹e_bsw­32
+(
+d¡_addr
+[3]);
+
+192 
+hash_key
+[0] = 
+	`¹e_bsw­32
+(*
+d¡_addr
+);
+
+195 
+hash_v4
+ = 
+	`¹e_jhash
+(&
+hash_key
+[0], 4, 0);
+
+198 
+th»ad
+ = (
+hash_v4
+ % 
+Áh»ads
+);
+
+201 
+th»ad
+ = 
+­
+->
+š_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_š
+ *
+
+202 (
+th»ad
+ + 1è- 
+p_lßdb
+->
+p
+.
+n_pÜts_š
+);
+
+204 ià(
+LOADB_DEBUG
+ > 3)
+
+205 
+	`´štf
+("thread: %u hash: %x hash_key: %x\n",
+
+206 
+th»ad
+, 
+hash_v4
+, 
+hash_key
+[0]);
+
+207  
+th»ad
+;
+
+212 ià(
+	`¹e_be_to_ýu_16
+(
+lb_pkt
+->
+‘h
+.
+‘h”_ty³
+) ==
+
+213 
+ETHER_TYPE_IPv6
+) {
+
+214 
+hash_key
+[0] = 
+	`¹e_bsw­32
+(
+d¡_addr
+[3]);
+
+215 
+hash_key
+[1] = *
+d¡_pÜt
+ << 16;
+
+217 
+hash_key
+[0] = 
+	`¹e_bsw­32
+(*
+d¡_addr
+);
+
+218 
+hash_key
+[1] = *
+d¡_pÜt
+ << 16;
+
+221 
+hash_v4
+ = 
+	`¹e_jhash
+(&
+hash_key
+[0], 6, 0);
+
+224 
+th»ad
+ = (
+hash_v4
+ % 
+Áh»ads
+);
+
+227 
+th»ad
+ = 
+­
+->
+š_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_š
+ *
+
+228 (
+th»ad
+ + 1è- 
+p_lßdb
+->
+p
+.
+n_pÜts_š
+);
+
+230 ià(
+LOADB_DEBUG
+ > 3) {
+
+231 
+	`´štf
+("public_addr: %x…ublic_port: %x\n",
+
+232 
+hash_key
+[0], *
+d¡_pÜt
+);
+
+233 
+	`´štf
+("thread: %u hash: %x hash_key0: %x "
+
+234 "hash_key1: %x\n", 
+th»ad
+, 
+hash_v4
+,
+
+235 
+hash_key
+[0], hash_key[1]);
+
+237  
+th»ad
+;
+
+240 
+	`´štf
+("Inv®id‚_lb_tu¶es: %d\n", 
+p_lßdb
+->
+n_lb_tu¶es
+);
+
+245 ià(
+	`¹e_be_to_ýu_16
+(
+lb_pkt
+->
+‘h
+.
+‘h”_ty³
+) ==
+
+246 
+ETHER_TYPE_IPv6
+) {
+
+247 
+tu¶e
+.
+v4
+.
+¤c_addr
+ = 
+	`¹e_bsw­32
+(src_addr[3]);
+
+248 
+tu¶e
+.
+v4
+.
+d¡_addr
+ = 
+	`¹e_bsw­32
+(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_bsw­32
+(*src_addr);
+
+253 
+tu¶e
+.
+v4
+.
+d¡_addr
+ = 
+	`¹e_bsw­32
+(*dst_addr);
+
+254 
+tu¶e
+.
+v4
+.
+¥Üt
+ = *
+¤c_pÜt
+;
+
+255 
+tu¶e
+.
+v4
+.
+dpÜt
+ = *
+d¡_pÜt
+;
+
+258 
+hash_v4
+ = 
+	`¹e_soárss
+((
+ušt32_t
+ *)&
+tu¶e
+,
+
+259 
+RTE_THASH_V4_L4_LEN
+,
+
+260 
+deçuÉ_rss_key
+);
+
+264 
+th»ad
+ = (
+hash_v4
+ % 
+Áh»ads
+);
+
+267 
+th»ad
+ = 
+­
+->
+š_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_š
+ *
+
+268 (
+th»ad
+ + 1è- 
+p_lßdb
+->
+p
+.
+n_pÜts_š
+);
+
+270 ià(
+LOADB_DEBUG
+ > 3) {
+
+271 
+	`´štf
+("src_addr: %x dst_addr: %x src_port: %x "
+
+272 "d¡_pÜt: %x\n", 
+tu¶e
+.
+v4
+.
+¤c_addr
+,u¶e.v4.
+d¡_addr
+,
+
+273 
+tu¶e
+.
+v4
+.
+¥Üt
+,u¶e.v4.
+dpÜt
+);
+
+274 
+	`´štf
+("th»ad: %u hash: %x\n", 
+th»ad
+, 
+hash_v4
+);
+
+277  
+th»ad
+;
+
+281 ià(
+	`¹e_be_to_ýu_16
+(
+lb_pkt
+->
+‘h
+.
+‘h”_ty³
+) ==
+
+282 
+ETHER_TYPE_IPv6
+) {
+
+284 
+¤c_addr
+ += 3;
+
+285 
+d¡_addr
+ += 3;
+
+289 
+‹mp1
+ = *
+¤c_addr
+ ^ *
+d¡_addr
+ ^ *
+¤c_pÜt
+ ^
+
+290 *
+d¡_pÜt
+ ^ *
+´ÙocÞ
+;
+
+292 
+‹mp2
+ = (
+‹mp1
+ >> 24) ^ (temp1 >> 16) ^ (temp1 >> 8) ^emp1;
+
+293 
+‹mp3
+ = (
+‹mp2
+ >> 4) ^ (temp2 & 0xf);
+
+298 
+th»ad
+ = (
+‹mp3
+ % 
+Áh»ads
+);
+
+301 
+th»ad
+ = 
+­
+->
+š_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_š
+ *
+
+302 (
+th»ad
+ + 1è- 
+p_lßdb
+->
+p
+.
+n_pÜts_š
+);
+
+304 ià(
+LOADB_DEBUG
+ > 3) {
+
+305 
+	`´štf
+("thread: %uemp1: %xemp2: %xemp3: %x\n",
+
+306 
+th»ad
+, 
+‹mp1
+, 
+‹mp2
+, 
+‹mp3
+);
+
+307 
+	`´štf
+("src_addr: %x dst_addr: %x src_port: %x "
+
+308 "d¡_pÜt: %x…rÙocÞ: %x\n", *
+¤c_addr
+, *
+d¡_addr
+,
+
+309 *
+¤c_pÜt
+, *
+d¡_pÜt
+, *
+´ÙocÞ
+);
+
+311  
+th»ad
+;
+
+314 
+	`´štf
+("Inv®id‚_lb_tu¶es: %d\n", 
+p_lßdb
+->
+n_lb_tu¶es
+);
+
+318 
+	}
+}
+
+320 
+ušt8_t
+ 
+	$ÿlcuϋ_lb_th»ad_pub
+(
+¹e_mbuf
+ *
+pkt
+, *
+¬g
+)
+
+322 
+ušt32_t
+ 
+hash_key
+[2], 
+hash_v4
+;
+
+323 
+ušt32_t
+ 
+‹mp1
+, 
+‹mp2
+, 
+‹mp3
+;
+
+324 
+ušt8_t
+ 
+th»ad
+;
+
+325 
+p–še_lßdb_š_pÜt_h_¬g
+ *
+­
+ = 
+¬g
+;
+
+326 
+p–še_lßdb
+ *
+p_lßdb
+ = (p–še_lßdb *è
+­
+->
+p
+;
+
+327 
+ušt8_t
+ 
+Áh»ads
+ = 
+p_lßdb
+->
+n_vnf_th»ads
+;
+
+328 
+¹e_thash_tu¶e
+ 
+tu¶e
+;
+
+330 
+ušt32_t
+ *
+¤c_addr
+;
+
+331 
+ušt32_t
+ *
+d¡_addr
+;
+
+332 
+ušt16_t
+ *
+¤c_pÜt
+;
+
+333 
+ušt16_t
+ *
+d¡_pÜt
+;
+
+334 
+ušt8_t
+ *
+´ÙocÞ
+;
+
+335 
+lb_pkt
+ *lb_pkt = (lb_pkt *)
+
+336 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+
+337 
+MBUF_HDR_ROOM
+);
+
+339 ià(
+	`¹e_be_to_ýu_16
+(
+lb_pkt
+->
+‘h
+.
+‘h”_ty³
+è=ð
+ETHER_TYPE_IPv6
+) {
+
+340 
+¤c_addr
+ = (
+ušt32_t
+ *)&
+lb_pkt
+->
+v6_pÜt
+.
+v6
+.src_addr;
+
+341 
+d¡_addr
+ = (
+ušt32_t
+ *)&
+lb_pkt
+->
+v6_pÜt
+.
+v6
+.dst_addr;
+
+342 
+¤c_pÜt
+ = &
+lb_pkt
+->
+v6_pÜt
+.src_port;
+
+343 
+d¡_pÜt
+ = &
+lb_pkt
+->
+v6_pÜt
+.dst_port;
+
+344 
+´ÙocÞ
+ = &
+lb_pkt
+->
+v6_pÜt
+.
+v6
+.
+´Ùo
+;
+
+346 
+¤c_addr
+ = &
+lb_pkt
+->
+v4_pÜt
+.
+v4
+.src_addr;
+
+347 
+d¡_addr
+ = &
+lb_pkt
+->
+v4_pÜt
+.
+v4
+.dst_addr;
+
+348 
+¤c_pÜt
+ = &
+lb_pkt
+->
+v4_pÜt
+.src_port;
+
+349 
+d¡_pÜt
+ = &
+lb_pkt
+->
+v4_pÜt
+.dst_port;
+
+350 
+´ÙocÞ
+ = &
+lb_pkt
+->
+v4_pÜt
+.
+v4
+.
+Ãxt_´Ùo_id
+;
+
+353 
+p_lßdb
+->
+n_lb_tu¶es
+) {
+
+358 
+‹mp1
+ = *
+¤c_addr
+ ^ *
+¤c_pÜt
+;
+
+359 
+‹mp2
+ = (
+‹mp1
+ >> 24) ^ (temp1 >> 16) ^
+
+360 (
+‹mp1
+ >> 8) ^emp1;
+
+361 
+‹mp3
+ = (
+‹mp2
+ >> 4) ^ (temp2 & 0xf);
+
+364 
+th»ad
+ = 
+‹mp3
+ % 
+Áh»ads
+;
+
+366 
+th»ad
+ = 
+­
+->
+š_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_š
+ *
+
+367 (
+th»ad
+ + 1è- 
+p_lßdb
+->
+p
+.
+n_pÜts_š
+);
+
+369  
+th»ad
+;
+
+374 
+hash_key
+[0] = 
+	`¹e_bsw­32
+(*
+¤c_addr
+);
+
+377 
+hash_v4
+ = 
+	`¹e_jhash
+(&
+hash_key
+[0], 4, 0);
+
+380 
+th»ad
+ = 
+hash_v4
+ % 
+Áh»ads
+;
+
+382 
+th»ad
+ = 
+­
+->
+š_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_š
+ *
+
+383 (
+th»ad
+ + 1è- 
+p_lßdb
+->
+p
+.
+n_pÜts_š
+);
+
+385 ià(
+LOADB_DEBUG
+ > 3)
+
+386 
+	`´štf
+("thread: %u hash: %x hash_key: %x\n",
+
+387 
+th»ad
+, 
+hash_v4
+, 
+hash_key
+[0]);
+
+388  
+th»ad
+;
+
+393 
+hash_key
+[0] = 
+	`¹e_bsw­32
+(*
+¤c_addr
+);
+
+394 
+hash_key
+[1] = *
+¤c_pÜt
+ << 16;
+
+397 
+hash_v4
+ = 
+	`¹e_jhash
+(&
+hash_key
+[0], 6, 0);
+
+400 
+th»ad
+ = 
+hash_v4
+ % 
+Áh»ads
+;
+
+402 
+th»ad
+ = 
+­
+->
+š_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_š
+ *
+
+403 (
+th»ad
+ + 1è- 
+p_lßdb
+->
+p
+.
+n_pÜts_š
+);
+
+405 ià(
+LOADB_DEBUG
+ > 3) {
+
+406 
+	`´štf
+("thread: %u hash: %x hash_key0: %x "
+
+407 "hash_key1: %x\n", 
+th»ad
+, 
+hash_v4
+,
+
+408 
+hash_key
+[0], hash_key[1]);
+
+409 
+	`´štf
+("public_addr: %x…ublic_port: %x\n",
+
+410 
+hash_key
+[0], *
+¤c_pÜt
+);
+
+412  
+th»ad
+;
+
+415 
+	`´štf
+("Inv®id‚_lb_tu¶es: %d\n", 
+p_lßdb
+->
+n_lb_tu¶es
+);
+
+420 
+tu¶e
+.
+v4
+.
+¤c_addr
+ = 
+	`¹e_bsw­32
+(*src_addr);
+
+421 
+tu¶e
+.
+v4
+.
+d¡_addr
+ = 
+	`¹e_bsw­32
+(*dst_addr);
+
+422 
+tu¶e
+.
+v4
+.
+¥Üt
+ = *
+¤c_pÜt
+;
+
+423 
+tu¶e
+.
+v4
+.
+dpÜt
+ = *
+d¡_pÜt
+;
+
+426 
+hash_v4
+ = 
+	`¹e_soárss
+((
+ušt32_t
+ *)&
+tu¶e
+,
+
+427 
+RTE_THASH_V4_L4_LEN
+, 
+deçuÉ_rss_key
+);
+
+431 
+th»ad
+ = 
+hash_v4
+ % 
+Áh»ads
+;
+
+433 
+th»ad
+ = 
+­
+->
+š_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_š
+ *
+
+434 (
+th»ad
+ + 1è- 
+p_lßdb
+->
+p
+.
+n_pÜts_š
+);
+
+436 ià(
+LOADB_DEBUG
+ > 3) {
+
+437 
+	`´štf
+("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
+,u¶e.v4.
+¥Üt
+,u¶e.v4.
+dpÜt
+);
+
+441 
+	`´štf
+("th»ad: %u hash: %x\n", 
+th»ad
+, 
+hash_v4
+);
+
+443  
+th»ad
+;
+
+447 ià(
+	`¹e_be_to_ýu_16
+(
+lb_pkt
+->
+‘h
+.
+‘h”_ty³
+) ==
+
+448 
+ETHER_TYPE_IPv6
+) {
+
+450 
+¤c_addr
+ += 3;
+
+451 
+d¡_addr
+ += 3;
+
+455 
+‹mp1
+ = *
+¤c_addr
+ ^ *
+d¡_addr
+ ^ *
+¤c_pÜt
+ ^
+
+456 *
+d¡_pÜt
+ ^ *
+´ÙocÞ
+;
+
+457 
+‹mp2
+ = (
+‹mp1
+ >> 24) ^ (temp1 >> 16) ^
+
+458 (
+‹mp1
+ >> 8) ^emp1;
+
+459 
+‹mp3
+ = (
+‹mp2
+ >> 4) ^ (temp2 & 0xf);
+
+462 
+th»ad
+ = 
+‹mp3
+ % 
+Áh»ads
+;
+
+464 
+th»ad
+ = 
+­
+->
+š_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_š
+ *
+
+465 (
+th»ad
+ + 1è- 
+p_lßdb
+->
+p
+.
+n_pÜts_š
+);
+
+467 ià(
+LOADB_DEBUG
+ > 3) {
+
+468 
+	`´štf
+("src_addr: %x dst_addr: %x src_port: %x "
+
+469 "d¡_pÜt: %x…rÙocÞ: %x\n", *
+¤c_addr
+, *
+d¡_addr
+,
+
+470 *
+¤c_pÜt
+, *
+d¡_pÜt
+, *
+´ÙocÞ
+);
+
+472 
+	`´štf
+("thread: %uemp1: %xemp2: %xemp3: %x\n",
+
+473 
+th»ad
+, 
+‹mp1
+, 
+‹mp2
+, 
+‹mp3
+);
+
+476  
+th»ad
+;
+
+479 
+	`´štf
+("Inv®id‚_lb_tu¶es: %d\n", 
+p_lßdb
+->
+n_lb_tu¶es
+);
+
+483 
+	}
+}
+
+485 
+šlše
+ 
+
+486 
+	$pkt_wÜk_lßdb_key_´v
+(
+
+487 
+¹e_mbuf
+ *
+pkt
+,
+
+488 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+pkt_num
+,
+
+489 *
+¬g
+)
+
+491 
+p–še_lßdb_š_pÜt_h_¬g
+ *
+­
+ = 
+¬g
+;
+
+492 
+p–še_lßdb
+ *
+p_lßdb
+ = (p–še_lßdb *)
+­
+->
+p
+;
+
+493 
+ušt32_t
+ 
+ouÜt_off£t
+ = 
+p_lßdb
+->outport_offset;
+
+495 
+lb_pkt
+ *lb_pkt = (lb_pkt *)
+
+496 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+
+497 
+MBUF_HDR_ROOM
+);
+
+498 
+ušt32_t
+ *
+out_pÜt
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+499 
+ouÜt_off£t
+);
+
+501 #ifdeà
+MY_LOADB_DBG_PRINT
+
+
+502 ià(
+LOADB_DEBUG
+ == 3)
+
+503 
+	`´štf
+("Start…kt_work_loadb_key\n");
+
+506 ià((
+LOADB_DEBUG
+ > 2è&& (
+lb_pkt_´št_couÁ
+ < 10)) {
+
+507 
+	`´št_pkt1
+(
+pkt
+);
+
+508 
+lb_pkt_´št_couÁ
+++;
+
+509 
+	`´štf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+511 
+	`¹e_be_to_ýu_16
+(
+lb_pkt
+->
+‘h
+.
+‘h”_ty³
+),
+
+512 
+lb_pkt
+->
+v4_pÜt
+.
+v4
+.
+Ãxt_´Ùo_id
+, 
+ETH_TYPE_ARP
+,
+
+513 
+ETH_TYPE_IPV4
+, 
+IP_PROTOCOL_ICMP
+);
+
+517 *
+out_pÜt
+ = 
+	`ÿlcuϋ_lb_th»ad_´v
+(
+pkt
+, 
+¬g
+);
+
+519 
+p_lßdb
+->
+»ûivedLBPktCouÁ
+++;
+
+521 #ifdeà
+MY_LOADB_DBG_PRINT
+
+
+522 ià(
+LOADB_DEBUG
+ == 3)
+
+523 
+	`´štf
+("End…kt_work_loadb_key\n");
+
+525 
+	}
+}
+
+527 
+šlše
+ 
+
+528 
+	$pkt_wÜk_lßdb_key_pub
+(
+
+529 
+¹e_mbuf
+ *
+pkt
+,
+
+530 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+pkt_num
+,
+
+531 *
+¬g
+)
+
+533 
+p–še_lßdb_š_pÜt_h_¬g
+ *
+­
+ = 
+¬g
+;
+
+534 
+p–še_lßdb
+ *
+p_lßdb
+ = (p–še_lßdb *)
+­
+->
+p
+;
+
+535 
+ušt32_t
+ 
+ouÜt_off£t
+ = 
+p_lßdb
+->outport_offset;
+
+537 
+lb_pkt
+ *lb_pkt = (lb_pkt *)
+
+538 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+
+539 
+MBUF_HDR_ROOM
+);
+
+540 
+ušt32_t
+ *
+out_pÜt
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+541 
+ouÜt_off£t
+);
+
+543 #ifdeà
+MY_LOADB_DBG_PRINT
+
+
+544 ià(
+LOADB_DEBUG
+ == 3)
+
+545 
+	`´štf
+("Start…kt_work_loadb_key\n");
+
+548 ià((
+LOADB_DEBUG
+ > 2è&& (
+lb_pkt_´št_couÁ
+ < 10)) {
+
+549 
+	`´št_pkt1
+(
+pkt
+);
+
+550 
+lb_pkt_´št_couÁ
+++;
+
+551 
+	`´štf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+553 
+	`¹e_be_to_ýu_16
+(
+lb_pkt
+->
+‘h
+.
+‘h”_ty³
+),
+
+554 
+lb_pkt
+->
+v4_pÜt
+.
+v4
+.
+Ãxt_´Ùo_id
+, 
+ETH_TYPE_ARP
+,
+
+555 
+ETH_TYPE_IPV4
+, 
+IP_PROTOCOL_ICMP
+);
+
+559 *
+out_pÜt
+ = 
+	`ÿlcuϋ_lb_th»ad_pub
+(
+pkt
+, 
+¬g
+);
+
+561 
+p_lßdb
+->
+»ûivedLBPktCouÁ
+++;
+
+562 #ifdeà
+MY_LOADB_DBG_PRINT
+
+
+563 ià(
+LOADB_DEBUG
+ == 3)
+
+564 
+	`´štf
+("End…kt_work_loadb_key\n");
+
+566 
+	}
+}
+
+568 
+šlše
+ 
+
+569 
+	$pkt4_wÜk_lßdb_key_´v
+(
+
+570 
+¹e_mbuf
+ **
+pkt
+,
+
+571 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+pkt_num
+,
+
+572 *
+¬g
+)
+
+574 
+p–še_lßdb_š_pÜt_h_¬g
+ *
+­
+ = 
+¬g
+;
+
+575 
+p–še_lßdb
+ *
+p_lßdb
+ = (p–še_lßdb *)
+­
+->
+p
+;
+
+576 
+ušt32_t
+ 
+ouÜt_off£t
+ = 
+p_lßdb
+->outport_offset;
+
+578 
+ušt32_t
+ *
+out_pÜt0
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[0],
+
+579 
+ouÜt_off£t
+);
+
+580 
+ušt32_t
+ *
+out_pÜt1
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[1],
+
+581 
+ouÜt_off£t
+);
+
+582 
+ušt32_t
+ *
+out_pÜt2
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[2],
+
+583 
+ouÜt_off£t
+);
+
+584 
+ušt32_t
+ *
+out_pÜt3
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[3],
+
+585 
+ouÜt_off£t
+);
+
+587 
+lb_pkt
+ *
+lb_pkt0
+ = (lb_pkt *)
+
+588 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[0],
+
+589 
+MBUF_HDR_ROOM
+);
+
+590 
+lb_pkt
+ *
+lb_pkt1
+ = (lb_pkt *)
+
+591 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[1],
+
+592 
+MBUF_HDR_ROOM
+);
+
+593 
+lb_pkt
+ *
+lb_pkt2
+ = (lb_pkt *)
+
+594 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[2],
+
+595 
+MBUF_HDR_ROOM
+);
+
+596 
+lb_pkt
+ *
+lb_pkt3
+ = (lb_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 
+	`´štf
+("Start…kt4_work_loadb_key\n");
+
+605 ià((
+LOADB_DEBUG
+ > 2è&& (
+lb_pkt_´št_couÁ
+ < 10)) {
+
+606 
+	`´št_pkt1
+(
+pkt
+[0]);
+
+607 
+lb_pkt_´št_couÁ
+++;
+
+609 
+	`´štf
+("\nEth Typ %x, Prot %x\n",
+
+610 
+	`¹e_be_to_ýu_16
+(
+lb_pkt0
+->
+‘h
+.
+‘h”_ty³
+),
+
+611 
+lb_pkt0
+->
+v4_pÜt
+.
+v4
+.
+Ãxt_´Ùo_id
+);
+
+613 
+	`´št_pkt1
+(
+pkt
+[1]);
+
+614 
+lb_pkt_´št_couÁ
+++;
+
+616 
+	`´štf
+("\nEth Typ %x, Prot %x\n",
+
+617 
+	`¹e_be_to_ýu_16
+(
+lb_pkt1
+->
+‘h
+.
+‘h”_ty³
+),
+
+618 
+lb_pkt1
+->
+v4_pÜt
+.
+v4
+.
+Ãxt_´Ùo_id
+);
+
+620 
+	`´št_pkt1
+(
+pkt
+[2]);
+
+621 
+lb_pkt_´št_couÁ
+++;
+
+623 
+	`´štf
+("\nEth Typ %x, Prot %x\n",
+
+624 
+	`¹e_be_to_ýu_16
+(
+lb_pkt2
+->
+‘h
+.
+‘h”_ty³
+),
+
+625 
+lb_pkt2
+->
+v4_pÜt
+.
+v4
+.
+Ãxt_´Ùo_id
+);
+
+627 
+	`´št_pkt1
+(
+pkt
+[3]);
+
+628 
+lb_pkt_´št_couÁ
+++;
+
+630 
+	`´štf
+("\nEth Typ %x, Prot %x\n",
+
+631 
+	`¹e_be_to_ýu_16
+(
+lb_pkt3
+->
+‘h
+.
+‘h”_ty³
+),
+
+632 
+lb_pkt3
+->
+v4_pÜt
+.
+v4
+.
+Ãxt_´Ùo_id
+);
+
+634 *
+out_pÜt0
+ = 
+	`ÿlcuϋ_lb_th»ad_´v
+(
+pkt
+[0], 
+¬g
+);
+
+635 *
+out_pÜt1
+ = 
+	`ÿlcuϋ_lb_th»ad_´v
+(
+pkt
+[1], 
+¬g
+);
+
+636 *
+out_pÜt2
+ = 
+	`ÿlcuϋ_lb_th»ad_´v
+(
+pkt
+[2], 
+¬g
+);
+
+637 *
+out_pÜt3
+ = 
+	`ÿlcuϋ_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 
+	`´štf
+("End…kt4_work_loadb_key\n");
+
+646 
+	}
+}
+
+648 
+šlše
+ 
+
+649 
+	$pkt4_wÜk_lßdb_key_pub
+(
+
+650 
+¹e_mbuf
+ **
+pkt
+,
+
+651 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+pkt_num
+,
+
+652 *
+¬g
+)
+
+654 
+p–še_lßdb_š_pÜt_h_¬g
+ *
+­
+ = 
+¬g
+;
+
+655 
+p–še_lßdb
+ *
+p_lßdb
+ = (p–še_lßdb *)
+­
+->
+p
+;
+
+656 
+ušt32_t
+ 
+ouÜt_off£t
+ = 
+p_lßdb
+->outport_offset;
+
+658 
+ušt32_t
+ *
+out_pÜt0
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[0],
+
+659 
+ouÜt_off£t
+);
+
+660 
+ušt32_t
+ *
+out_pÜt1
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[1],
+
+661 
+ouÜt_off£t
+);
+
+662 
+ušt32_t
+ *
+out_pÜt2
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[2],
+
+663 
+ouÜt_off£t
+);
+
+664 
+ušt32_t
+ *
+out_pÜt3
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[3],
+
+665 
+ouÜt_off£t
+);
+
+667 
+lb_pkt
+ *
+lb_pkt0
+ = (lb_pkt *)
+
+668 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[0],
+
+669 
+MBUF_HDR_ROOM
+);
+
+670 
+lb_pkt
+ *
+lb_pkt1
+ = (lb_pkt *)
+
+671 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[1],
+
+672 
+MBUF_HDR_ROOM
+);
+
+673 
+lb_pkt
+ *
+lb_pkt2
+ = (lb_pkt *)
+
+674 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[2],
+
+675 
+MBUF_HDR_ROOM
+);
+
+676 
+lb_pkt
+ *
+lb_pkt3
+ = (lb_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 
+	`´štf
+("Start…kt4_work_loadb_key\n");
+
+685 ià((
+LOADB_DEBUG
+ > 2è&& (
+lb_pkt_´št_couÁ
+ < 10)) {
+
+686 
+	`´št_pkt1
+(
+pkt
+[0]);
+
+687 
+lb_pkt_´št_couÁ
+++;
+
+689 
+	`´štf
+("\nEth Typ %x, Prot %x\n",
+
+690 
+	`¹e_be_to_ýu_16
+(
+lb_pkt0
+->
+‘h
+.
+‘h”_ty³
+),
+
+691 
+lb_pkt0
+->
+v4_pÜt
+.
+v4
+.
+Ãxt_´Ùo_id
+);
+
+693 
+	`´št_pkt1
+(
+pkt
+[1]);
+
+694 
+lb_pkt_´št_couÁ
+++;
+
+696 
+	`´štf
+("\nEth Typ %x, Prot %x\n",
+
+697 
+	`¹e_be_to_ýu_16
+(
+lb_pkt1
+->
+‘h
+.
+‘h”_ty³
+),
+
+698 
+lb_pkt1
+->
+v4_pÜt
+.
+v4
+.
+Ãxt_´Ùo_id
+);
+
+700 
+	`´št_pkt1
+(
+pkt
+[2]);
+
+701 
+lb_pkt_´št_couÁ
+++;
+
+703 
+	`´štf
+("\nEth Typ %x, Prot %x\n",
+
+704 
+	`¹e_be_to_ýu_16
+(
+lb_pkt2
+->
+‘h
+.
+‘h”_ty³
+),
+
+705 
+lb_pkt2
+->
+v4_pÜt
+.
+v4
+.
+Ãxt_´Ùo_id
+);
+
+707 
+	`´št_pkt1
+(
+pkt
+[3]);
+
+708 
+lb_pkt_´št_couÁ
+++;
+
+710 
+	`´štf
+("\nEth Typ %x, Prot %x\n",
+
+711 
+	`¹e_be_to_ýu_16
+(
+lb_pkt3
+->
+‘h
+.
+‘h”_ty³
+),
+
+712 
+lb_pkt3
+->
+v4_pÜt
+.
+v4
+.
+Ãxt_´Ùo_id
+);
+
+714 *
+out_pÜt0
+ = 
+	`ÿlcuϋ_lb_th»ad_´v
+(
+pkt
+[0], 
+¬g
+);
+
+715 *
+out_pÜt1
+ = 
+	`ÿlcuϋ_lb_th»ad_pub
+(
+pkt
+[1], 
+¬g
+);
+
+716 *
+out_pÜt2
+ = 
+	`ÿlcuϋ_lb_th»ad_pub
+(
+pkt
+[2], 
+¬g
+);
+
+717 *
+out_pÜt3
+ = 
+	`ÿlcuϋ_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 
+	`´štf
+("End…kt4_work_loadb_key\n");
+
+725 
+	}
+}
+
+727 
+PIPELINE_LOADB_KEY_PORT_IN_AH
+(
+pÜt_š_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_š_ah_lßdb_key_pub
+,
+
+732 
+pkt_wÜk_lßdb_key_pub
+,
+
+733 
+pkt4_wÜk_lßdb_key_pub
+);
+
+736 
+	$p–še_lßdb_·r£_¬gs
+(
+p–še_lßdb
+ *
+p
+,
+
+737 
+p–še_·¿ms
+ *
+·¿ms
+)
+
+739 
+ušt32_t
+ 
+ouÜt_off£t_´e£Á
+ = 0;
+
+740 
+ušt32_t
+ 
+n_vnf_th»ads_´e£Á
+ = 0;
+
+741 
+ušt32_t
+ 
+pktq_š_´v_´e£Á
+ = 0;
+
+742 
+ušt32_t
+ 
+´v_que_hªdËr_´e£Á
+ = 0;
+
+743 
+ušt32_t
+ 
+´v_to_pub_m­_´e£Á
+ = 0;
+
+744 
+ušt8_t
+ 
+n_´v_š_pÜt
+ = 0;
+
+745 
+ušt32_t
+ 
+i
+;
+
+748 
+p
+->
+n_lb_tu¶es
+ = 0;
+
+750 ià(
+LOADB_DEBUG
+ > 2)
+
+751 
+	`´štf
+("LOADB…ipeline_loadb_parse_args…arams->n_args: %d\n",
+
+752 
+·¿ms
+->
+n_¬gs
+);
+
+754 
+i
+ = 0; i < 
+·¿ms
+->
+n_¬gs
+; i++) {
+
+755 *
+¬g_Çme
+ = 
+·¿ms
+->
+¬gs_Çme
+[
+i
+];
+
+756 *
+¬g_v®ue
+ = 
+·¿ms
+->
+¬gs_v®ue
+[
+i
+];
+
+758 ià(
+LOADB_DEBUG
+ > 2)
+
+759 
+	`´štf
+("LOADB‡rgs[%d]: % %d, %s\n", 
+i
+, 
+¬g_Çme
+,
+
+760 
+	`©oi
+(
+¬g_v®ue
+),‡rg_value);
+
+763 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "outport_offset") == 0) {
+
+764 ià(
+ouÜt_off£t_´e£Á
+)
+
+766 
+ouÜt_off£t_´e£Á
+ = 1;
+
+768 
+p
+->
+ouÜt_off£t
+ = 
+	`©oi
+(
+¬g_v®ue
+);
+
+769 ià(
+p
+->
+ouÜt_off£t
+ <= 0) {
+
+770 
+	`´štf
+("Outport_offset is invalid\n");
+
+773 
+	`´štf
+("ouÜt_off£t: 0x%x\n", 
+p
+->
+ouÜ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 
+	`´štf
+("n_vnf_threads : MIN->0 MAX->16\n");
+
+791 
+	`´štf
+("n_vnf_th»ad  : 0x%x\n", 
+p
+->
+n_vnf_th»ads
+);
+
+792 
+	`´štf
+("tÙ®_vnf_th»ads: 0x%x\n", 
+tÙ®_vnf_th»ads
+);
+
+797 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "pktq_in_prv") == 0) {
+
+798 ià(
+pktq_š_´v_´e£Á
+) {
+
+799 
+	`´štf
+("Duplicate…ktq_in_prv ... "
+
+803 
+pktq_š_´v_´e£Á
+ = 1;
+
+805 
+rxpÜt
+ = 0, 
+j
+ = 0;
+
+806 
+phy_pÜt_num
+[8];
+
+807 *
+tok’
+ = 
+	`¡¹ok
+(
+¬g_v®ue
+, "RXQ");
+
+808 
+tok’
+) {
+
+809 
+j
+ = 0;
+
+810 (
+j
+ < 7è&& (
+tok’
+[j] != '.')) {
+
+811 
+phy_pÜt_num
+[
+j
+] = 
+tok’
+[j];
+
+812 
+j
+++;
+
+814 
+phy_pÜt_num
+[
+j
+] = '\0';
+
+815 
+rxpÜt
+ = 
+	`©oi
+(
+phy_pÜt_num
+);
+
+816 
+	`´štf
+("token: %s,…hy_port_str: %s, "
+
+818 
+tok’
+, 
+phy_pÜt_num
+, 
+rxpÜt
+);
+
+819 
+´v_š_pÜt_a
+[
+n_´v_š_pÜt
+++] = 
+rxpÜt
+;
+
+821 ià(
+rxpÜt
+ < 0xff){
+
+822 if(
+rxpÜt
+ < 
+PIPELINE_MAX_PORT_IN
+)
+
+823 
+š_pÜt_dœ_a
+[
+rxpÜt
+] = 1;
+
+825 
+tok’
+ = 
+	`¡¹ok
+(
+NULL
+, "RXQ");
+
+828 ià(
+n_´v_š_pÜt
+ == 0) {
+
+829 
+	`´štf
+("VNF common…arseƒrror - "
+
+838 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "prv_que_handler") == 0) {
+
+840 ià(
+´v_que_hªdËr_´e£Á
+) {
+
+841 
+	`´štf
+("Duplicate…ktq_in_prv ..\n\n");
+
+844 
+´v_que_hªdËr_´e£Á
+ = 1;
+
+845 
+n_´v_š_pÜt
+ = 0;
+
+847 *
+tok’
+;
+
+848 
+rxpÜt
+ = 0;
+
+850 
+tok’
+ = 
+	`¡¹ok
+(
+¬g_v®ue
+, "(");
+
+851 
+tok’
+ = 
+	`¡¹ok
+(token, ")");
+
+852 
+tok’
+ = 
+	`¡¹ok
+(token, ",");
+
+853 
+	`´štf
+("*****…rv_que_handler *****\n");
+
+854 ià(
+tok’
+)
+
+855 
+	`´štf
+("¡ršg i :%s\n", 
+tok’
+);
+
+857 ià(
+tok’
+)
+
+859 
+	`´štf
+("¡ršg i :%s\n", 
+tok’
+);
+
+862 
+tok’
+ !ð
+NULL
+) {
+
+863 
+	`´štf
+(" %s\n", 
+tok’
+);
+
+864 
+rxpÜt
+ = 
+	`©oi
+(
+tok’
+);
+
+865 
+´v_que_pÜt_šdex
+[
+n_´v_š_pÜt
+++] = 
+rxpÜt
+;
+
+866 ià(
+rxpÜt
+ < 0xff){
+
+867 if(
+rxpÜt
+ < 
+PIPELINE_MAX_PORT_IN
+)
+
+868 
+š_pÜt_eg»ss_´v
+[
+rxpÜt
+] = 1;
+
+870 
+p
+->
+n_´v_Q
+++;
+
+871 
+tok’
+ = 
+	`¡¹ok
+(
+NULL
+, ",");
+
+874 ià(
+n_´v_š_pÜt
+ == 0) {
+
+875 
+	`´štf
+("VNF common…arseƒrr -‚o…rv RX…hy…ort\n");
+
+882 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "prv_to_pub_map") == 0) {
+
+883 ià(
+´v_to_pub_m­_´e£Á
+) {
+
+884 
+	`´štf
+("Duplicated…rv_to_pub_map ... "
+
+888 
+´v_to_pub_m­_´e£Á
+ = 1;
+
+890 
+rxpÜt
+ = 0, 
+txpÜt
+ = 0, 
+j
+ = 0, 
+k
+ = 0;
+
+891 
+rx_phy_pÜt_num
+[5];
+
+892 
+tx_phy_pÜt_num
+[5];
+
+893 *
+tok’
+ = 
+	`¡¹ok
+(
+¬g_v®ue
+, "(");
+
+894 
+tok’
+) {
+
+895 
+j
+ = 0;
+
+896 (
+j
+ < 4è&& (
+tok’
+[j] != ',')) {
+
+897 
+rx_phy_pÜt_num
+[
+j
+] = 
+tok’
+[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 (
+k
+ < 4è&& (
+tok’
+[
+j
++k] != ')')) {
+
+906 
+tx_phy_pÜt_num
+[
+k
+] = 
+tok’
+[
+j
++k];
+
+907 
+k
+++;
+
+909 
+tx_phy_pÜt_num
+[
+k
+] = '\0';
+
+910 
+txpÜt
+ = 
+	`©oi
+(
+tx_phy_pÜt_num
+);
+
+912 
+	`´štf
+("token: %s,rx_phy_port_str: %s,…hy_port_num "
+
+914 
+tok’
+, 
+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 (
+š_pÜt_dœ_a
+[
+rxpÜt
+] != 1)) {
+
+920 
+	`´štf
+("CG-NAPT…arseƒrror - "
+
+922 "Tx %d, Rx Dœ %d\n", 
+rxpÜt
+, 
+txpÜt
+,
+
+923 
+š_pÜt_dœ_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’
+ = 
+	`¡¹ok
+(
+NULL
+, "(");
+
+940 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "n_lb_tuples") == 0) {
+
+941 
+p
+->
+n_lb_tu¶es
+ = 
+	`©oi
+(
+¬g_v®ue
+);
+
+942 
+	`´štf
+("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Üt_off£t_´e£Á
+ == 0))
+
+960 
+	}
+}
+
+962 
+	$check_lßdb_th»ad
+(
+
+963 
+­p_·¿ms
+ *
+­p
+,
+
+964 
+p–še_·¿ms
+ *
+·¿ms
+,
+
+965 
+št32_t
+ 
+n_vnf_th»ads
+)
+
+967 
+ušt32_t
+ 
+i
+;
+
+968 
+p–še_num
+ = 0;
+
+969 
+couÁ
+ = 0;
+
+970 
+dÚt_ÿ»
+ = 
+	`ssÿnf
+(
+·¿ms
+->
+Çme
+, "PIPELINE%d", &
+p–še_num
+);
+
+971 ià(
+dÚt_ÿ»
+ != 1)
+
+974 
+i
+ = 
+p–še_num
+ + 2; i < 
+­p
+->
+n_p–šes
+; i++) {
+
+975 
+­p_p–še_·¿ms
+ *
+p
+ = &
+­p
+->
+p–še_·¿ms
+[
+i
+];
+
+976 ià(!
+	`¡ºcmp
+(
+p
+->
+ty³
+, "LOADB", 
+	`¡¾’
+(p->type)))
+
+978 
+couÁ
+++;
+
+980 ià(
+n_vnf_th»ads
+ !ð
+couÁ
+)
+
+984 
+	}
+}
+
+986 *
+	$p–še_lßdb_š™
+(
+
+987 
+p–še_·¿ms
+ *
+·¿ms
+,
+
+988 
+__¹e_unu£d
+ *
+¬g
+)
+
+992 
+p–še
+ *
+p
+;
+
+993 
+p–še_lßdb
+ *
+p_lßdb
+;
+
+994 
+ušt32_t
+ 
+size
+, 
+i
+, 
+š_pÜts_¬g_size
+;
+
+997 ià((
+·¿ms
+ =ð
+NULL
+) ||
+
+998 (
+·¿ms
+->
+n_pÜts_š
+ =ð0è|| (·¿ms->
+n_pÜts_out
+ == 0))
+
+999  
+NULL
+;
+
+1002 
+size
+ = 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+p–še_lßdb
+));
+
+1003 
+p
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+1004 
+p_lßdb
+ = (
+p–še_lßdb
+ *)
+p
+;
+
+1005 ià(
+p
+ =ð
+NULL
+)
+
+1006  
+NULL
+;
+
+1008 
+	`¡rýy
+(
+p
+->
+Çme
+, 
+·¿ms
+->name);
+
+1009 
+p
+->
+log_Ëv–
+ = 
+·¿ms
+->log_level;
+
+1011 
+	`PLOG
+(
+p
+, 
+HIGH
+, "LOADB");
+
+1013 
+p_lßdb
+->
+n_vnf_th»ads
+ = 0;
+
+1014 
+p_lßdb
+->
+ouÜt_off£t
+ = 0;
+
+1015 
+p_lßdb
+->
+»ûivedLBPktCouÁ
+ = 0;
+
+1016 
+p_lßdb
+->
+drݳdLBPktCouÁ
+ = 0;
+
+1017 
+i
+ = 0; i < 
+PIPELINE_MAX_PORT_IN
+; i++) {
+
+1018 
+p_lßdb
+->
+lšks_m­
+[
+i
+] = 0xff;
+
+1020 
+p_lßdb
+->
+p–še_num
+ = 0xff;
+
+1021 
+p_lßdb
+->
+n_´v_Q
+ = 0;
+
+1022 
+p_lßdb
+->
+n_pub_Q
+ = 0;
+
+1026 ià(
+	`p–še_lßdb_·r£_¬gs
+(
+p_lßdb
+, 
+·¿ms
+))
+
+1027  
+NULL
+;
+
+1031 
+¹e_p–še_·¿ms
+ 
+p–še_·¿ms
+ = {
+
+1032 .
+Çme
+ = "LOADB",
+
+1033 .
+sock‘_id
+ = 
+·¿ms
+->socket_id,
+
+1034 .
+off£t_pÜt_id
+ = 0,
+
+1037 
+p
+->°ð
+	`¹e_p–še_ü—‹
+(&
+p–še_·¿ms
+);
+
+1038 ià(
+p
+->°=ð
+NULL
+) {
+
+1039 
+	`¹e_ä“
+(
+p
+);
+
+1040  
+NULL
+;
+
+1043 
+	`´štf
+("Lßdb…->°%p, sock‘ %d\n", 
+p
+->p,
+
+1044 
+p–še_·¿ms
+.
+sock‘_id
+);
+
+1048 
+š_pÜts_¬g_size
+ =
+
+1049 
+	`RTE_CACHE_LINE_ROUNDUP
+(((
+p–še_lßdb_š_pÜt_h_¬g
+))
+
+1050 * (
+·¿ms
+->
+n_pÜts_š
+));
+
+1051 
+p–še_lßdb_š_pÜt_h_¬g
+ *
+­
+ =
+
+1052 (
+p–še_lßdb_š_pÜt_h_¬g
+ *)
+
+1053 
+	`¹e_zm®loc
+(
+NULL
+,
+
+1054 
+š_pÜts_¬g_size
+,
+
+1055 
+RTE_CACHE_LINE_SIZE
+);
+
+1056 ià(
+­
+ =ð
+NULL
+)
+
+1057  
+NULL
+;
+
+1059 
+	`´štf
+("­…oš‹¸%p\n", 
+­
+);
+
+1062 
+p
+->
+n_pÜts_š
+ = 
+·¿ms
+->n_ports_in;
+
+1063 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+1065 (
+­
+[
+i
+]).
+p
+ = 
+p_lßdb
+;
+
+1066 (
+­
+[
+i
+]).
+š_pÜt_id
+ = i;
+
+1068 
+¹e_p–še_pÜt_š_·¿ms
+ 
+pÜt_·¿ms
+ = {
+
+1069 .
+Ýs
+ =
+
+1070 
+	`p–še_pÜt_š_·¿ms_g‘_Ýs
+(&
+·¿ms
+->
+pÜt_š
+
+
+1071 [
+i
+]),
+
+1072 .
+¬g_ü—‹
+ =
+
+1073 
+	`p–še_pÜt_š_·¿ms_cÚv”t
+(&
+·¿ms
+->
+pÜt_š
+
+
+1074 [
+i
+]),
+
+1076 .
+f_aùiÚ
+ = 
+NULL
+,
+
+1077 .
+¬g_ah
+ = &(
+­
+[
+i
+]),
+
+1078 .
+bur¡_size
+ = 
+·¿ms
+->
+pÜt_š
+[
+i
+].burst_size,
+
+1082 ià(
+	`is_pÜt_šdex_´iv‹
+(
+i
+)) {
+
+1083 
+	`´štf
+("LOADB %d…܈i Prv\n", 
+i
+);
+
+1084 
+pÜt_·¿ms
+.
+f_aùiÚ
+ = 
+pÜt_š_ah_lßdb_key_´v
+;
+
+1086 
+	`´štf
+("LOADB %d…܈i Pub\n", 
+i
+);
+
+1087 
+pÜt_·¿ms
+.
+f_aùiÚ
+ = 
+pÜt_š_ah_lßdb_key_pub
+;
+
+1090 
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_ü—‹
+(
+p
+->p,
+
+1091 &
+pÜt_·¿ms
+,
+
+1092 &
+p
+->
+pÜt_š_id
+[
+i
+]);
+
+1094 ià(
+¡©us
+) {
+
+1095 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+1096 
+	`¹e_ä“
+(
+p
+);
+
+1097  
+NULL
+;
+
+1102 
+p_lßdb
+->
+n_pub_Q
+ =…_lßdb->
+p
+.
+n_pÜts_š
+ -…_lßdb->
+n_´v_Q
+;
+
+1103 
+	`´štf
+("LOADB :‚_prv_Q - %d‚_pub_Q - %d\n",
+
+1104 
+p_lßdb
+->
+n_´v_Q
+,…_lßdb->
+n_pub_Q
+);
+
+1106 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+1107 
+	`´štf
+("is_pÜt_šdex_´iv‹(%d): %d\n", 
+i
+,
+
+1108 
+	`is_pÜt_šdex_´iv‹
+(
+i
+));
+
+1109 
+	`´štf
+("is_phy_pÜt_´iv‹(%d): %d\n", 
+i
+,
+
+1110 
+	`is_phy_pÜt_´iv‹
+(
+i
+));
+
+1111 
+	`´štf
+("aùiÚ hªd˸oà%d:%p\n", 
+i
+,
+
+1112 
+p_lßdb
+->
+p
+.p->
+pÜts_š
+[
+i
+].
+f_aùiÚ
+);
+
+1116 
+p
+->
+n_pÜts_out
+ = 
+·¿ms
+->n_ports_out;
+
+1117 
+i
+ = 0; i < 
+p
+->
+n_pÜts_out
+; i++) {
+
+1118 
+¹e_p–še_pÜt_out_·¿ms
+ 
+pÜt_·¿ms
+ = {
+
+1119 .
+Ýs
+ =
+
+1120 
+	`p–še_pÜt_out_·¿ms_g‘_Ýs
+(&
+·¿ms
+->
+pÜt_out
+
+
+1121 [
+i
+]),
+
+1122 .
+¬g_ü—‹
+ =
+
+1123 
+	`p–še_pÜt_out_·¿ms_cÚv”t
+(&
+·¿ms
+->
+pÜt_out
+
+
+1124 [
+i
+]),
+
+1125 .
+f_aùiÚ
+ = 
+NULL
+,
+
+1126 .
+¬g_ah
+ = 
+NULL
+,
+
+1129 
+¡©us
+ = 
+	`¹e_p–še_pÜt_out_ü—‹
+(
+p
+->p,
+
+1130 &
+pÜt_·¿ms
+,
+
+1131 &
+p
+->
+pÜt_out_id
+[
+i
+]);
+
+1133 ià(
+¡©us
+) {
+
+1134 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+1135 
+	`¹e_ä“
+(
+p
+);
+
+1136  
+NULL
+;
+
+1139 
+	`´štf
+("OuÜˆp->pÜt_out_id[%d] %p\n", 
+i
+,
+
+1140 &
+p
+->
+pÜt_out_id
+[
+i
+]);
+
+1143 
+p–še_num
+ = 0;
+
+1144 
+dÚt_ÿ»
+ = 
+	`ssÿnf
+(
+·¿ms
+->
+Çme
+, "PIPELINE%d", &
+p–še_num
+);
+
+1145 ià(
+dÚt_ÿ»
+ != 1) {
+
+1146 
+	`´štf
+("Unableo„ead…ipeline‚umber\n");
+
+1147  
+NULL
+;
+
+1149 
+p_lßdb
+->
+p–še_num
+ =…ipeline_num;
+
+1151 
+	`£t_ouÜt_id
+(
+p–še_num
+, 
+p
+, 
+lb_ouÜt_id
+);
+
+1152 
+	`£t_phy_ouÜt_m­
+(
+p–še_num
+, 
+p_lßdb
+->
+lšks_m­
+);
+
+1154 
+	`£t_pÜt_to_lßdb_m­
+(
+p–še_num
+);
+
+1156 
+	`»gi¡”_lßdb_to_¬p
+(
+p–še_num
+, 
+p
+, 
+­p
+);
+
+1158 
+	`»gi¡”_p–še_Qs
+(
+p_lßdb
+->
+p–še_num
+, 
+p
+);
+
+1159 
+	`£t_lšk_m­
+(
+p_lßdb
+->
+p–še_num
+, 
+p
+,…_lßdb->
+lšks_m­
+);
+
+1163 
+p
+->
+n_bËs
+ = 1;
+
+1166 
+¹e_bË_¬¿y_·¿ms
+ 
+bË_¬¿y_·¿ms
+ = {
+
+1167 .
+n_’Œ›s
+ = 
+MAX_VNF_THREADS
+,
+
+1168 .
+off£t
+ = 
+p_lßdb
+->
+ouÜt_off£t
+,
+
+1170 
+¹e_p–še_bË_·¿ms
+ 
+bË_·¿ms
+ = {
+
+1171 .
+Ýs
+ = &
+¹e_bË_¬¿y_Ýs
+,
+
+1172 .
+¬g_ü—‹
+ = &
+bË_¬¿y_·¿ms
+,
+
+1173 .
+f_aùiÚ_h™
+ = 
+NULL
+,
+
+1174 .
+f_aùiÚ_miss
+ = 
+NULL
+,
+
+1175 .
+¬g_ah
+ = 
+p_lßdb
+,
+
+1176 .
+aùiÚ_d©a_size
+ = 0,
+
+1179 
+¡©us
+;
+
+1181 
+¡©us
+ = 
+	`¹e_p–še_bË_ü—‹
+(
+p
+->p,
+
+1182 &
+bË_·¿ms
+,
+
+1183 &
+p
+->
+bË_id
+[0]);
+
+1185 ià(
+¡©us
+) {
+
+1186 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+1187 
+	`¹e_ä“
+(
+p
+);
+
+1188  
+NULL
+;
+
+1193 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+1194 
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_cÚÃù_to_bË
+(
+
+1195 
+p
+->p,
+
+1196 
+p
+->
+pÜt_š_id
+[
+i
+],
+
+1197 
+p
+->
+bË_id
+[0]);
+
+1199 ià(
+¡©us
+) {
+
+1200 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+1201 
+	`¹e_ä“
+(
+p
+);
+
+1202  
+NULL
+;
+
+1207 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+1208 
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_’abË
+(
+p
+->p,
+
+1209 
+p
+->
+pÜt_š_id
+[
+i
+]);
+
+1211 ià(
+¡©us
+) {
+
+1212 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+1213 
+	`¹e_ä“
+(
+p
+);
+
+1214  
+NULL
+;
+
+1220 
+i
+ = 0; i < 
+MAX_VNF_THREADS
+; i++) {
+
+1221 
+¹e_bË_¬¿y_key
+ 
+key
+ = {
+
+1222 .
+pos
+ = 
+i
+,
+
+1224 
+lßdb_bË_’Œy
+ 
+’Œy
+;
+
+1225 
+’Œy
+.
+h—d
+.
+aùiÚ
+ = 
+RTE_PIPELINE_ACTION_PORT
+;
+
+1227 ià(
+i
+ < 
+p
+->
+n_pÜts_out
+) {
+
+1228 
+’Œy
+.
+h—d
+.
+pÜt_id
+ = 
+p
+->
+pÜt_out_id
+[
+i
+];
+
+1229 
+	`´štf
+("\n˜%d,…->pÜt_out_id[%d] %d", 
+i
+, i,
+
+1230 
+p
+->
+pÜt_out_id
+[
+i
+]);
+
+1233 
+’Œy
+.
+h—d
+.
+pÜt_id
+ = 
+p
+->
+pÜt_out_id
+[0];
+
+1234 
+’Œy
+.
+h—d
+.
+aùiÚ
+ = 
+RTE_PIPELINE_ACTION_DROP
+;
+
+1237 
+¹e_p–še_bË_’Œy
+ *
+’Œy_±r
+;
+
+1238 
+key_found
+, 
+¡©us
+;
+
+1239 
+¡©us
+ = 
+	`¹e_p–še_bË_’Œy_add
+(
+
+1240 
+p
+->p,
+
+1241 
+p
+->
+bË_id
+[0],
+
+1242 &
+key
+,
+
+1243 (
+¹e_p–še_bË_’Œy
+ *)
+
+1244 &
+’Œy
+,
+
+1245 &
+key_found
+,
+
+1246 &
+’Œy_±r
+);
+
+1247 ià(
+¡©us
+) {
+
+1248 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+1249 
+	`¹e_ä“
+(
+p
+);
+
+1250  
+NULL
+;
+
+1256 
+¹e_p–še_bË_’Œy
+ 
+deçuÉ_’Œy
+ = {
+
+1257 .
+aùiÚ
+ = 
+RTE_PIPELINE_ACTION_PORT
+,
+
+1259 .
+pÜt_id
+ = 
+p
+->
+pÜt_out_id
+[0],
+
+1262 
+¹e_p–še_bË_’Œy
+ *
+deçuÉ_’Œy_±r
+;
+
+1264 
+¡©us
+ = 
+	`¹e_p–še_bË_deçuÉ_’Œy_add
+(
+
+1265 
+p
+->p,
+
+1266 
+p
+->
+bË_id
+[0],
+
+1267 &
+deçuÉ_’Œy
+,
+
+1268 &
+deçuÉ_’Œy_±r
+);
+
+1270 ià(
+¡©us
+) {
+
+1271 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+1272 
+	`¹e_ä“
+(
+p
+);
+
+1273  
+NULL
+;
+
+1279 ià(
+	`¹e_p–še_check
+(
+p
+->p) < 0) {
+
+1280 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+1281 
+	`¹e_ä“
+(
+p
+);
+
+1282  
+NULL
+;
+
+1286 
+p
+->
+n_msgq
+ = 
+·¿ms
+->n_msgq;
+
+1287 
+i
+ = 0; i < 
+p
+->
+n_msgq
+; i++)
+
+1288 
+p
+->
+msgq_š
+[
+i
+] = 
+·¿ms
+->msgq_in[i];
+
+1289 
+i
+ = 0; i < 
+p
+->
+n_msgq
+; i++)
+
+1290 
+p
+->
+msgq_out
+[
+i
+] = 
+·¿ms
+->msgq_out[i];
+
+1293 
+	`memýy
+(
+p
+->
+hªdËrs
+, handlers, (p->handlers));
+
+1294 
+	`memýy
+(
+p_lßdb
+->
+cu¡om_hªdËrs
+,
+
+1295 
+cu¡om_hªdËrs
+, (
+p_lßdb
+->custom_handlers));
+
+1297  
+p
+;
+
+1298 
+	}
+}
+
+1300 
+	$p–še_lßdb_ä“
+(*
+p–še
+)
+
+1302 
+p–še
+ *
+p
+ = (pipeline *)pipeline;
+
+1305 ià(
+p
+ =ð
+NULL
+)
+
+1309 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+1310 
+	`¹e_ä“
+(
+p
+);
+
+1312 
+	}
+}
+
+1315 
+	$p–še_lßdb_Œack
+(*
+p–še
+,
+
+1316 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+pÜt_š
+, ušt32_ˆ*
+pÜt_out
+)
+
+1318 
+p–še
+ *
+p
+ = (pipeline *)pipeline;
+
+1321 ià((
+p
+ =ð
+NULL
+è|| (
+pÜt_š
+ >ðp->
+n_pÜts_š
+è|| (
+pÜt_out
+ == NULL))
+
+1324 ià(
+p
+->
+n_pÜts_š
+ == 1) {
+
+1325 *
+pÜt_out
+ = 0;
+
+1330 
+	}
+}
+
+1332 
+	$p–še_lßdb_tim”
+(*
+p–še
+)
+
+1334 
+p–še
+ *
+p
+ = (pipeline *)pipeline;
+
+1336 
+	`p–še_msg_»q_hªdË
+(
+p
+);
+
+1337 
+	`¹e_p–še_æush
+(
+p
+->p);
+
+1340 
+	}
+}
+
+1342 *
+	$p–še_lßdb_msg_»q_’Œy_dbg_hªdËr
+(
+p–še
+ *
+p
+, *
+msg
+)
+
+1344 
+p–še_lßdb_’Œy_dbg_msg_r¥
+ *
+r¥
+ = 
+msg
+;
+
+1345 
+ušt8_t
+ *
+Msg
+ = 
+msg
+;
+
+1346 
+p–še_lßdb
+ *
+p_lßdb
+ = (p–še_lßdb *)
+p
+;
+
+1348 
+r¥
+->
+¡©us
+ = 0;
+
+1350 
+	`´štf
+("LoadB debug handler called with‡rgs %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 
+	`´štf
+("\nLßdB Pack‘ Sts: Reûived %" 
+PRIu64
+ "\n",
+
+1356 
+p_lßdb
+->
+»ûivedLBPktCouÁ
+);
+
+1357  
+r¥
+;
+
+1359 ià(
+Msg
+[
+LOADB_DBG_CMD_OFST
+] =ð
+LOADB_DBG_CMD_STATS_CLEAR
+) {
+
+1360 
+	`´štf
+("\nLßdB Pack‘ Sts: Reûived %" 
+PRIu64
+ "\n",
+
+1361 
+p_lßdb
+->
+»ûivedLBPktCouÁ
+);
+
+1362 
+p_lßdb
+->
+»ûivedLBPktCouÁ
+ = 0;
+
+1363  
+r¥
+;
+
+1366 ià(
+Msg
+[
+LOADB_DBG_CMD_OFST
+] =ð
+LOADB_DBG_CMD_DBG_LEVEL
+) {
+
+1367 
+LOADB_DEBUG
+ = 
+Msg
+[
+LOADB_DBG_CMD_OFST
+ + 1];
+
+1368 
+	`´štf
+("LOADB Debug†ev– s‘Ø%d\n", 
+LOADB_DEBUG
+);
+
+1369 
+lb_pkt_´št_couÁ
+ = 0;
+
+1370  
+r¥
+;
+
+1372 ià(
+Msg
+[
+LOADB_DBG_CMD_OFST
+] =ð
+LOADB_DBG_CMD_DBG_SHOW
+) {
+
+1373 
+	`´štf
+("\nLßdB DBG Lev–: %u\n", 
+LOADB_DEBUG
+);
+
+1374  
+r¥
+;
+
+1376 ià(
+Msg
+[
+LOADB_DBG_CMD_OFST
+] =ð
+LOADB_DBG_CMD_IF_STATS
+) {
+
+1377 
+	`´štf
+("\n");
+
+1378 
+ušt8_t
+ 
+i
+, 
+j
+;
+
+1380 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+1381 
+¹e_‘h_¡©s
+ 
+¡©s
+;
+
+1382 
+	`¹e_‘h_¡©s_g‘
+(
+p_lßdb
+->
+lšks_m­
+[
+i
+], &
+¡©s
+);
+
+1383 ià(
+	`is_phy_pÜt_´iv‹
+(
+i
+))
+
+1384 
+	`´štf
+("Priv©P܈St %d\n", 
+i
+);
+
+1386 
+	`´štf
+("PubliøP܈St  %d\n", 
+i
+);
+
+1387 
+	`´štf
+("\n\tack‘ : %" 
+PRIu64
+ "\n\topackets : %"
+
+1388 
+PRIu64
+ "\n\tierrors : %" PRIu64
+
+1389 "\n\tۼܠ : %" 
+PRIu64
+ "\n\trx_nombuf: %"
+
+1390 
+PRIu64
+ "\n", 
+¡©s
+.
+ack‘s
+, sts.
+Ýack‘s
+,
+
+1391 
+¡©s
+.
+›¼Üs
+, sts.
+Û¼Üs
+, sts.
+rx_nombuf
+);
+
+1392 ià(
+	`is_phy_pÜt_´iv‹
+(
+i
+))
+
+1393 
+	`´štf
+("Private Q: ");
+
+1395 
+	`´štf
+("Public Q: ");
+
+1396 
+j
+ = 0; j < 
+RTE_ETHDEV_QUEUE_STAT_CNTRS
+; j++)
+
+1397 
+	`´štf
+(" %" 
+PRIu64
+ ", %" PRIu64 "|",
+
+1398 
+¡©s
+.
+q_ack‘s
+[
+j
+],
+
+1399 
+¡©s
+.
+q_Ýack‘s
+[
+j
+]);
+
+1401 
+	`´štf
+("\n\n");
+
+1404  
+r¥
+;
+
+1407  
+r¥
+;
+
+1409 
+	}
+}
+
+1411 
+p–še_be_Ýs
+ 
+	gp–še_lßdb_be_Ýs
+ = {
+
+1412 .
+f_š™
+ = 
+p–še_lßdb_š™
+,
+
+1413 .
+	gf_ä“
+ = 
+p–še_lßdb_ä“
+,
+
+1414 .
+	gf_run
+ = 
+NULL
+,
+
+1415 .
+	gf_tim”
+ = 
+p–še_lßdb_tim”
+,
+
+1416 .
+	gf_Œack
+ = 
+p–še_lßdb_Œack
+,
+
+	@VIL/pipeline_loadb/pipeline_loadb_be.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_LOADB_BE_H__
+
+
+18 
+	#__INCLUDE_PIPELINE_LOADB_BE_H__
+
+
+	)
+
+20 
+	~<¹e_.h
+>
+
+21 
+	~"p–še_commÚ_be.h
+"
+
+22 
+	~<­p.h
+>
+
+24 
+	#MBUF_HDR_ROOM
+ 256
+
+	)
+
+25 
+	#ETH_HDR_SIZE
+ 14
+
+	)
+
+26 
+	#IP_HDR_SRC_ADR_OFST
+ 12
+
+	)
+
+27 
+	#IP_HDR_DST_ADR_OFST
+ 16
+
+	)
+
+28 
+	#IP_HDR_PROTOCOL_OFST
+ 9
+
+	)
+
+29 
+	#IP_HDR_SIZE
+ 20
+
+	)
+
+30 
+	#IPV6_HDR_SRC_ADR_OFST
+ 8
+
+	)
+
+31 
+	#IPV6_HDR_DST_ADR_OFST
+ 24
+
+	)
+
+32 
+	#IPV6_HDR_PROTOCOL_OFST
+ 6
+
+	)
+
+33 
+	#IPV6_HDR_SIZE
+ 40
+
+	)
+
+34 
+	#IP_PROTOCOL_TCP
+ 6
+
+	)
+
+35 
+	#IP_PROTOCOL_UDP
+ 17
+
+	)
+
+36 
+	#PIPELINE_LOADB_KEY_MAX_SIZE
+ 64
+
+	)
+
+38 
+	#LOADB_ING_DIR
+ 0
+
+	)
+
+39 
+	#LOADB_EGR_DIR
+ 1
+
+	)
+
+41 
+	#LOADB_DBG_CMD_OFST
+ 8
+
+	)
+
+42 
+	#LOADB_DBG_CMD_STATS_SHOW
+ 0
+
+	)
+
+43 
+	#LOADB_DBG_CMD_STATS_CLEAR
+ 1
+
+	)
+
+44 
+	#LOADB_DBG_CMD_DBG_LEVEL
+ 2
+
+	)
+
+45 
+	#LOADB_DBG_CMD_DBG_SHOW
+ 3
+
+	)
+
+46 
+	#LOADB_DBG_CMD_IF_STATS
+ 4
+
+	)
+
+47 
+	#LOADB_DBG_CMD_OFST1
+ 10
+
+	)
+
+49 
+	#PIPELINE_LOADB_KEY_PORT_IN_AH
+(
+f_ah
+, 
+f_pkt_wÜk
+, 
+f_pkt4_wÜk
+) \
+
+51 
+	`f_ah
+( \
+
+52 
+__¹e_unu£d
+ 
+¹e_p–še
+ *
+¹e_p
+, \
+
+53 
+¹e_mbuf
+ **
+pkts
+, \
+
+54 
+ušt32_t
+ 
+n_pkts
+, \
+
+55 *
+¬g
+) \
+
+57 
+ušt32_t
+ 
+i
+, 
+j
+; \
+
+59 
+j
+ = 0; j < 
+n_pkts
+; j++) \
+
+60 
+	`¹e_´eãtch0
+(
+pkts
+[
+j
+]); \
+
+61 
+pkt_bur¡_út
+ = 0; \
+
+62 
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) \
+
+63 
+	`f_pkt4_wÜk
+(&
+pkts
+[
+i
+], i, 
+¬g
+); \
+
+65  ; 
+i
+ < 
+n_pkts
+; i++) \
+
+66 
+	`f_pkt_wÜk
+(
+pkts
+[
+i
+], i, 
+¬g
+); \
+
+70 }
+
+	)
+
+72 
+ušt8_t
+ 
+LOADB_DEBUG
+;
+
+73 
+ušt8_t
+ 
+š_pÜt_eg»ss_´v
+[
+PIPELINE_MAX_PORT_IN
+];
+
+74 
+ušt8_t
+ 
+´v_que_pÜt_šdex
+[
+PIPELINE_MAX_PORT_IN
+];
+
+75 
+ušt8_t
+ 
+š_pÜt_dœ_a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+77 
+ušt8_t
+ 
+g‘_š_pÜt_dœ
+(uint8_t);
+
+78 
+ušt8_t
+ 
+is_pÜt_šdex_´iv‹
+(
+ušt16_t
+);
+
+79 
+ušt8_t
+ 
+is_phy_pÜt_´iv‹
+(
+ušt16_t
+);
+
+80 
+ušt32_t
+ 
+g‘_´v_to_pub_pÜt
+(ušt32_ˆ*
+_addr
+, 
+ušt8_t
+ 
+ty³
+);
+
+81 
+ušt32_t
+ 
+g‘_pub_to_´v_pÜt
+(ušt32_ˆ*
+_addr
+, 
+ušt8_t
+ 
+ty³
+);
+
+82 
+ušt8_t
+ 
+´v_to_pub_m­
+[
+PIPELINE_MAX_PORT_IN
+];
+
+90 
+	sp–še_lßdb_š_pÜt_h_¬g
+ {
+
+91 
+p–še_lßdb
+ *
+	mp
+;
+
+92 
+ušt8_t
+ 
+	mš_pÜt_id
+;
+
+98 
+	ep–še_lßdb_msg_»q_ty³
+ {
+
+100 
+	mPIPELINE_LOADB_MSG_REQ_ENTRY_DBG
+,
+
+101 
+	mPIPELINE_LOADB_MSG_REQS
+
+
+107 
+	sp–še_lßdb_’Œy_dbg_msg_»q
+ {
+
+108 
+p–še_msg_»q_ty³
+ 
+	mty³
+;
+
+109 
+p–še_lßdb_msg_»q_ty³
+ 
+	msubty³
+;
+
+112 
+ušt8_t
+ 
+	md©a
+[5];
+
+115 
+	sp–še_lßdb_’Œy_dbg_msg_r¥
+ {
+
+116 
+	m¡©us
+;
+
+117 *
+	m’Œy_±r
+;
+
+120 

+p–še_be_Ýs
+ 
+p–še_lßdb_be_Ýs
+;
+
+121 
+	sv4_hdr_pÜt
+ {
+
+122 
+v4_hdr
+ 
+	mv4
+;
+
+123 
+ušt16_t
+ 
+	m¤c_pÜt
+;
+
+124 
+ušt16_t
+ 
+	md¡_pÜt
+;
+
+126 } 
+__©Œibu‹__
+((
+__·cked__
+));
+
+127 
+	sv6_hdr_pÜt
+ {
+
+128 
+v6_hdr
+ 
+	mv6
+;
+
+129 
+ušt16_t
+ 
+	m¤c_pÜt
+;
+
+130 
+ušt16_t
+ 
+	md¡_pÜt
+;
+
+132 } 
+__©Œibu‹__
+((
+__·cked__
+));
+
+134 
+	slb_pkt
+ {
+
+135 
+‘h”_hdr
+ 
+	m‘h
+;
+
+137 
+v4_hdr_pÜt
+ 
+	mv4_pÜt
+;
+
+138 
+v6_hdr_pÜt
+ 
+	mv6_pÜt
+;
+
+140 } 
+__©Œibu‹__
+((
+__·cked__
+));
+
+142 
+ušt8_t
+ 
+ÿlcuϋ_lb_th»ad_´v
+(
+¹e_mbuf
+ *
+pkt
+, *
+¬g
+);
+
+143 
+ušt8_t
+ 
+ÿlcuϋ_lb_th»ad_pub
+(
+¹e_mbuf
+ *
+pkt
+, *
+¬g
+);
+
+144 
+check_lßdb_th»ad
+(
+
+145 
+­p_·¿ms
+ *
+­p
+,
+
+146 
+p–še_·¿ms
+ *
+·¿ms
+,
+
+147 
+št32_t
+ 
+n_vnf_th»ads
+);
+
+	@VIL/pipeline_master/pipeline_master.c
+
+17 
+	~"p–še_ma¡”.h
+"
+
+18 
+	~"p–še_ma¡”_be.h
+"
+
+20 
+p–še_ã_Ýs
+ 
+	gp–še_ma¡”_ã_Ýs
+ = {
+
+21 .
+f_š™
+ = 
+NULL
+,
+
+22 .
+	gf_ä“
+ = 
+NULL
+,
+
+23 .
+	gcmds
+ = 
+NULL
+,
+
+26 
+p–še_ty³
+ 
+	gp–še_ma¡”
+ = {
+
+27 .
+Çme
+ = "MASTER",
+
+28 .
+	gbe_Ýs
+ = &
+p–še_ma¡”_be_Ýs
+,
+
+29 .
+	gã_Ýs
+ = &
+p–še_ma¡”_ã_Ýs
+,
+
+	@VIL/pipeline_master/pipeline_master.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_MASTER_H__
+
+
+18 
+	#__INCLUDE_PIPELINE_MASTER_H__
+
+
+	)
+
+20 
+	~"p–še.h
+"
+
+22 

+p–še_ty³
+ 
+p–še_ma¡”
+;
+
+	@VIL/pipeline_master/pipeline_master_be.c
+
+17 
+	~<fúŽ.h
+>
+
+18 
+	~<uni¡d.h
+>
+
+20 
+	~<¹e_commÚ.h
+>
+
+21 
+	~<¹e_m®loc.h
+>
+
+23 
+	~<cmdlše_·r£.h
+>
+
+24 
+	~<cmdlše_·r£_¡ršg.h
+>
+
+25 
+	~<cmdlše_sock‘.h
+>
+
+26 
+	~<cmdlše.h
+>
+
+28 
+	~"­p.h
+"
+
+29 
+	~"p–še_ma¡”_be.h
+"
+
+31 
+	sp–še_ma¡”
+ {
+
+32 
+­p_·¿ms
+ *
+	m­p
+;
+
+33 
+cmdlše
+ *
+	mþ
+;
+
+34 
+	msüt_fže_dÚe
+;
+
+35 } 
+	g__¹e_ÿche_®igÃd
+;
+
+38 
+	$p–še_š™
+(
+__¹e_unu£d
+ 
+p–še_·¿ms
+ *
+·¿ms
+, *
+¬g
+)
+
+40 
+­p_·¿ms
+ *
+­p
+ = (­p_·¿m *è
+¬g
+;
+
+41 
+p–še_ma¡”
+ *
+p
+;
+
+42 
+ušt32_t
+ 
+size
+;
+
+45 ià(
+­p
+ =ð
+NULL
+)
+
+46  
+NULL
+;
+
+49 
+size
+ = 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+p–še_ma¡”
+));
+
+50 
+p
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+51 ià(
+p
+ =ð
+NULL
+)
+
+52  
+NULL
+;
+
+55 
+p
+->
+­p
+ =‡pp;
+
+57 
+p
+->
+þ
+ = 
+	`cmdlše_¡dš_Ãw
+(
+­p
+->
+cmds
+, "pipeline> ");
+
+58 ià(
+p
+->
+þ
+ =ð
+NULL
+) {
+
+59 
+	`¹e_ä“
+(
+p
+);
+
+60  
+NULL
+;
+
+63 
+p
+->
+süt_fže_dÚe
+ = 0;
+
+64 ià(
+­p
+->
+süt_fže
+ =ð
+NULL
+)
+
+65 
+p
+->
+süt_fže_dÚe
+ = 1;
+
+67  (*è
+p
+;
+
+68 
+	}
+}
+
+71 
+	$p–še_ä“
+(*
+p–še
+)
+
+73 
+p–še_ma¡”
+ *
+p
+ = (p–še_ma¡” *è
+p–še
+;
+
+75 ià(
+p
+ =ð
+NULL
+)
+
+76  -
+EINVAL
+;
+
+78 
+	`cmdlše_¡dš_ex™
+(
+p
+->
+þ
+);
+
+79 
+	`¹e_ä“
+(
+p
+);
+
+82 
+	}
+}
+
+85 
+	$p–še_run
+(*
+p–še
+)
+
+87 
+p–še_ma¡”
+ *
+p
+ = (p–še_ma¡” *è
+p–še
+;
+
+88 
+¡©us
+;
+
+90 ià(
+p
+->
+süt_fže_dÚe
+ == 0) {
+
+91 
+­p_·¿ms
+ *
+­p
+ = 
+p
+->app;
+
+92 
+fd
+ = 
+	`ݒ
+(
+­p
+->
+süt_fže
+, 
+O_RDONLY
+);
+
+94 ià(
+fd
+ < 0)
+
+95 
+	`´štf
+("Cannot open CLI script file \"%s\"\n",
+
+96 
+­p
+->
+süt_fže
+);
+
+98 
+cmdlše
+ *
+fže_þ
+;
+
+100 
+	`´štf
+("Running CLI script file \"%s\" ...\n",
+
+101 
+­p
+->
+süt_fže
+);
+
+102 
+fže_þ
+ = 
+	`cmdlše_Ãw
+(
+p
+->
+þ
+->
+ùx
+, "", 
+fd
+, 1);
+
+103 
+	`cmdlše_š‹¿ù
+(
+fže_þ
+);
+
+104 
+	`þo£
+(
+fd
+);
+
+107 
+p
+->
+süt_fže_dÚe
+ = 1;
+
+110 
+¡©us
+ = 
+	`cmdlše_pÞl
+(
+p
+->
+þ
+);
+
+111 ià(
+¡©us
+ < 0)
+
+112 
+	`¹e_·nic
+("CLI…ÞȔrÜ (%" 
+PRId32
+ ")\n", 
+¡©us
+);
+
+113 ià(
+¡©us
+ =ð
+RDLINE_EXITED
+) {
+
+114 
+	`cmdlše_¡dš_ex™
+(
+p
+->
+þ
+);
+
+115 
+	`¹e_ex™
+(0, "Bye!\n");
+
+119 
+	}
+}
+
+122 
+	$p–še_tim”
+(
+__¹e_unu£d
+ *
+p–še
+)
+
+124 
+	`¹e_tim”_mªage
+();
+
+126 
+	}
+}
+
+128 
+p–še_be_Ýs
+ 
+	gp–še_ma¡”_be_Ýs
+ = {
+
+129 .
+f_š™
+ = 
+p–še_š™
+,
+
+130 .
+	gf_ä“
+ = 
+p–še_ä“
+,
+
+131 .
+	gf_run
+ = 
+p–še_run
+,
+
+132 .
+	gf_tim”
+ = 
+p–še_tim”
+,
+
+133 .
+	gf_Œack
+ = 
+NULL
+,
+
+	@VIL/pipeline_master/pipeline_master_be.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_MASTER_BE_H__
+
+
+18 
+	#__INCLUDE_PIPELINE_MASTER_BE_H__
+
+
+	)
+
+20 
+	~"p–še_commÚ_be.h
+"
+
+22 

+p–še_be_Ýs
+ 
+p–še_ma¡”_be_Ýs
+;
+
+	@VIL/pipeline_passthrough/pipeline_passthrough.c
+
+17 
+	~"p–še_·s¡hrough.h
+"
+
+18 
+	~"p–še_·s¡hrough_be.h
+"
+
+20 
+p–še_ã_Ýs
+ 
+	gp–še_·s¡hrough_ã_Ýs
+ = {
+
+21 .
+f_š™
+ = 
+NULL
+,
+
+22 .
+	gf_ä“
+ = 
+NULL
+,
+
+23 .
+	gcmds
+ = 
+NULL
+,
+
+26 
+p–še_ty³
+ 
+	gp–še_·s¡hrough
+ = {
+
+27 .
+Çme
+ = "PASS-THROUGH",
+
+28 .
+	gbe_Ýs
+ = &
+p–še_·s¡hrough_be_Ýs
+,
+
+29 .
+	gã_Ýs
+ = &
+p–še_·s¡hrough_ã_Ýs
+,
+
+	@VIL/pipeline_passthrough/pipeline_passthrough.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_PASSTHROUGH_H__
+
+
+18 
+	#__INCLUDE_PIPELINE_PASSTHROUGH_H__
+
+
+	)
+
+20 
+	~"p–še.h
+"
+
+22 

+p–še_ty³
+ 
+p–še_·s¡hrough
+;
+
+	@VIL/pipeline_passthrough/pipeline_passthrough_be.c
+
+17 
+	~<¡ršg.h
+>
+
+19 
+	~<¹e_commÚ.h
+>
+
+20 
+	~<¹e_m®loc.h
+>
+
+21 
+	~<¹e_by‹Üd”.h
+>
+
+22 
+	~<¹e_bË_¡ub.h
+>
+
+23 
+	~<¹e_bË_hash.h
+>
+
+24 
+	~<¹e_p–še.h
+>
+
+26 
+	~"p–še_·s¡hrough_be.h
+"
+
+27 
+	~"p–še_aùiÚs_commÚ.h
+"
+
+28 
+	~"·r£r.h
+"
+
+29 
+	~"hash_func.h
+"
+
+31 
+	sp–še_·s¡hrough
+ {
+
+32 
+p–še
+ 
+	mp
+;
+
+33 
+p–še_·s¡hrough_·¿ms
+ 
+	m·¿ms
+;
+
+34 
+¹e_bË_hash_Ý_hash
+ 
+	mf_hash
+;
+
+35 } 
+	g__¹e_ÿche_®igÃd
+;
+
+37 
+p–še_msg_»q_hªdËr
+ 
+	ghªdËrs
+[] = {
+
+38 [
+PIPELINE_MSG_REQ_PING
+] =
+
+39 
+p–še_msg_»q_pšg_hªdËr
+,
+
+40 [
+PIPELINE_MSG_REQ_STATS_PORT_IN
+] =
+
+41 
+p–še_msg_»q_¡©s_pÜt_š_hªdËr
+,
+
+42 [
+PIPELINE_MSG_REQ_STATS_PORT_OUT
+] =
+
+43 
+p–še_msg_»q_¡©s_pÜt_out_hªdËr
+,
+
+44 [
+PIPELINE_MSG_REQ_STATS_TABLE
+] =
+
+45 
+p–še_msg_»q_¡©s_bË_hªdËr
+,
+
+46 [
+PIPELINE_MSG_REQ_PORT_IN_ENABLE
+] =
+
+47 
+p–še_msg_»q_pÜt_š_’abË_hªdËr
+,
+
+48 [
+PIPELINE_MSG_REQ_PORT_IN_DISABLE
+] =
+
+49 
+p–še_msg_»q_pÜt_š_di§bË_hªdËr
+,
+
+50 [
+PIPELINE_MSG_REQ_CUSTOM
+] =
+
+51 
+p–še_msg_»q_šv®id_hªdËr
+,
+
+54 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)) 
+
+55 
+	$pkt_wÜk
+(
+
+56 
+¹e_mbuf
+ *
+pkt
+,
+
+57 *
+¬g
+,
+
+58 
+ušt32_t
+ 
+dma_size
+,
+
+59 
+ušt32_t
+ 
+hash_’abËd
+,
+
+60 
+ušt32_t
+ 
+lb_hash
+,
+
+61 
+ušt32_t
+ 
+pÜt_out_pow2
+)
+
+63 
+p–še_·s¡hrough
+ *
+p
+ = 
+¬g
+;
+
+65 
+ušt64_t
+ *
+dma_d¡
+ = 
+	`RTE_MBUF_METADATA_UINT64_PTR
+(
+pkt
+,
+
+66 
+p
+->
+·¿ms
+.
+dma_d¡_off£t
+);
+
+67 
+ušt64_t
+ *
+dma_¤c
+ = 
+	`RTE_MBUF_METADATA_UINT64_PTR
+(
+pkt
+,
+
+68 
+p
+->
+·¿ms
+.
+dma_¤c_off£t
+);
+
+69 
+ušt64_t
+ *
+dma_mask
+ = (ušt64_ˆ*è
+p
+->
+·¿ms
+.
+dma_¤c_mask
+;
+
+70 
+ušt32_t
+ *
+dma_hash
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+71 
+p
+->
+·¿ms
+.
+dma_hash_off£t
+);
+
+72 
+ušt32_t
+ 
+i
+;
+
+75 
+i
+ = 0; i < (
+dma_size
+ / 8); i++)
+
+76 
+dma_d¡
+[
+i
+] = 
+dma_¤c
+[i] & 
+dma_mask
+[i];
+
+79 ià(
+hash_’abËd
+) {
+
+80 
+ušt32_t
+ 
+hash
+ = 
+p
+->
+	`f_hash
+(
+dma_d¡
+, 
+dma_size
+, 0);
+
+81 *
+dma_hash
+ = 
+hash
+;
+
+83 ià(
+lb_hash
+) {
+
+84 
+ušt32_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–še_pÜt_out_·ck‘_š£¹
+(
+p
+->p.p,
+
+94 
+pÜt_out
+, 
+pkt
+);
+
+97 
+	}
+}
+
+99 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)) 
+
+100 
+	$pkt4_wÜk
+(
+
+101 
+¹e_mbuf
+ **
+pkts
+,
+
+102 *
+¬g
+,
+
+103 
+ušt32_t
+ 
+dma_size
+,
+
+104 
+ušt32_t
+ 
+hash_’abËd
+,
+
+105 
+ušt32_t
+ 
+lb_hash
+,
+
+106 
+ušt32_t
+ 
+pÜt_out_pow2
+)
+
+108 
+p–še_·s¡hrough
+ *
+p
+ = 
+¬g
+;
+
+110 
+ušt64_t
+ *
+dma_d¡0
+ = 
+	`RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[0],
+
+111 
+p
+->
+·¿ms
+.
+dma_d¡_off£t
+);
+
+112 
+ušt64_t
+ *
+dma_d¡1
+ = 
+	`RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[1],
+
+113 
+p
+->
+·¿ms
+.
+dma_d¡_off£t
+);
+
+114 
+ušt64_t
+ *
+dma_d¡2
+ = 
+	`RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[2],
+
+115 
+p
+->
+·¿ms
+.
+dma_d¡_off£t
+);
+
+116 
+ušt64_t
+ *
+dma_d¡3
+ = 
+	`RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[3],
+
+117 
+p
+->
+·¿ms
+.
+dma_d¡_off£t
+);
+
+119 
+ušt64_t
+ *
+dma_¤c0
+ = 
+	`RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[0],
+
+120 
+p
+->
+·¿ms
+.
+dma_¤c_off£t
+);
+
+121 
+ušt64_t
+ *
+dma_¤c1
+ = 
+	`RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[1],
+
+122 
+p
+->
+·¿ms
+.
+dma_¤c_off£t
+);
+
+123 
+ušt64_t
+ *
+dma_¤c2
+ = 
+	`RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[2],
+
+124 
+p
+->
+·¿ms
+.
+dma_¤c_off£t
+);
+
+125 
+ušt64_t
+ *
+dma_¤c3
+ = 
+	`RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[3],
+
+126 
+p
+->
+·¿ms
+.
+dma_¤c_off£t
+);
+
+128 
+ušt64_t
+ *
+dma_mask
+ = (ušt64_ˆ*è
+p
+->
+·¿ms
+.
+dma_¤c_mask
+;
+
+130 
+ušt32_t
+ *
+dma_hash0
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkts
+[0],
+
+131 
+p
+->
+·¿ms
+.
+dma_hash_off£t
+);
+
+132 
+ušt32_t
+ *
+dma_hash1
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkts
+[1],
+
+133 
+p
+->
+·¿ms
+.
+dma_hash_off£t
+);
+
+134 
+ušt32_t
+ *
+dma_hash2
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkts
+[2],
+
+135 
+p
+->
+·¿ms
+.
+dma_hash_off£t
+);
+
+136 
+ušt32_t
+ *
+dma_hash3
+ = 
+	`RTE_MBUF_METADATA_UINT32_PTR
+(
+pkts
+[3],
+
+137 
+p
+->
+·¿ms
+.
+dma_hash_off£t
+);
+
+139 
+ušt32_t
+ 
+i
+;
+
+142 
+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_’abËd
+) {
+
+151 
+ušt32_t
+ 
+hash0
+ = 
+p
+->
+	`f_hash
+(
+dma_d¡0
+, 
+dma_size
+, 0);
+
+152 
+ušt32_t
+ 
+hash1
+ = 
+p
+->
+	`f_hash
+(
+dma_d¡1
+, 
+dma_size
+, 0);
+
+153 
+ušt32_t
+ 
+hash2
+ = 
+p
+->
+	`f_hash
+(
+dma_d¡2
+, 
+dma_size
+, 0);
+
+154 
+ušt32_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št32_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–še_pÜt_out_·ck‘_š£¹
+(
+p
+->p.p,
+
+184 
+pÜt_out0
+, 
+pkts
+[0]);
+
+185 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+p
+->p.p,
+
+186 
+pÜt_out1
+, 
+pkts
+[1]);
+
+187 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+p
+->p.p,
+
+188 
+pÜt_out2
+, 
+pkts
+[2]);
+
+189 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+p
+->p.p,
+
+190 
+pÜt_out3
+, 
+pkts
+[3]);
+
+193 
+	}
+}
+
+195 
+	#PKT_WORK
+(
+dma_size
+, 
+hash_’abËd
+, 
+lb_hash
+, 
+pÜt_pow2
+) \
+
+196 
+šlše
+ \
+
+197 
+pkt_wÜk_size
+##
+dma_size
+##
+_hash
+##
+hash_’abËd
+ \
+
+198 ##
+_lb
+##
+lb_hash
+##
+_pw
+##
+	`pÜt_pow2
+( \
+
+199 
+¹e_mbuf
+ *
+pkt
+, \
+
+200 *
+¬g
+) \
+
+202 
+	`pkt_wÜk
+(
+pkt
+, 
+¬g
+, 
+dma_size
+, 
+hash_’abËd
+, 
+lb_hash
+, 
+pÜt_pow2
+); \
+
+203 }
+
+	)
+
+205 
+	#PKT4_WORK
+(
+dma_size
+, 
+hash_’abËd
+, 
+lb_hash
+, 
+pÜt_pow2
+) \
+
+206 
+šlše
+ \
+
+207 
+pkt4_wÜk_size
+##
+dma_size
+##
+_hash
+##
+hash_’abËd
+ \
+
+208 ##
+_lb
+##
+lb_hash
+##
+_pw
+##
+	`pÜt_pow2
+( \
+
+209 
+¹e_mbuf
+ **
+pkts
+, \
+
+210 *
+¬g
+) \
+
+212 
+	`pkt4_wÜk
+(
+pkts
+, 
+¬g
+, 
+dma_size
+, 
+hash_’abËd
+, 
+lb_hash
+, 
+pÜt_pow2
+); \
+
+213 }
+
+	)
+
+215 
+	#pÜt_š_ah
+(
+dma_size
+, 
+hash_’abËd
+, 
+lb_hash
+, 
+pÜt_pow2
+) \
+
+216 
+	`PKT_WORK
+(
+dma_size
+, 
+hash_’abËd
+, 
+lb_hash
+, 
+pÜt_pow2
+) \
+
+217 
+	`PKT4_WORK
+(
+dma_size
+, 
+hash_’abËd
+, 
+lb_hash
+, 
+pÜt_pow2
+) \
+
+218 
+	`PIPELINE_PORT_IN_AH
+(
+pÜt_š_ah_size
+##
+dma_size
+##
+_hash
+ \
+
+219 ##
+hash_’abËd
+##
+_lb
+##
+lb_hash
+##
+_pw
+##
+pÜt_pow2
+, \
+
+220 
+pkt_wÜk_size
+##
+dma_size
+##
+_hash
+##
+hash_’abËd
+ \
+
+221 ##
+_lb
+##
+lb_hash
+##
+_pw
+##
+pÜt_pow2
+, \
+
+222 
+pkt4_wÜk_size
+##
+dma_size
+##
+_hash
+##
+hash_’abËd
+ \
+
+223 ##
+_lb
+##
+lb_hash
+##
+_pw
+##
+pÜt_pow2
+)
+
+	)
+
+226 
+	#pÜt_š_ah_lb
+(
+dma_size
+, 
+hash_’abËd
+, 
+lb_hash
+, 
+pÜt_pow2
+) \
+
+227 
+	`PKT_WORK
+(
+dma_size
+, 
+hash_’abËd
+, 
+lb_hash
+, 
+pÜt_pow2
+) \
+
+228 
+	`PKT4_WORK
+(
+dma_size
+, 
+hash_’abËd
+, 
+lb_hash
+, 
+pÜt_pow2
+) \
+
+229 
+	`PIPELINE_PORT_IN_AH_HIJACK_ALL
+( \
+
+230 
+pÜt_š_ah_size
+##
+dma_size
+##
+_hash
+##
+hash_’abËd
+ \
+
+231 ##
+_lb
+##
+lb_hash
+##
+_pw
+##
+pÜt_pow2
+, \
+
+232 
+pkt_wÜk_size
+##
+dma_size
+##
+_hash
+##
+hash_’abËd
+ \
+
+233 ##
+_lb
+##
+lb_hash
+##
+_pw
+##
+pÜt_pow2
+, \
+
+234 
+pkt4_wÜk_size
+##
+dma_size
+##
+_hash
+##
+hash_’abËd
+ \
+
+235 ##
+_lb
+##
+lb_hash
+##
+_pw
+##
+pÜt_pow2
+)
+
+	)
+
+239 
+	$pÜt_š_ah
+(8, 0, 0, 0)
+
+240 
+	$pÜt_š_ah
+(8, 1, 0, 0)
+
+241 
+	$pÜt_š_ah_lb
+(8, 1, 1, 0)
+
+242 
+	$pÜt_š_ah_lb
+(8, 1, 1, 1)
+
+244 
+	$pÜt_š_ah
+(16, 0, 0, 0)
+
+245 
+	$pÜt_š_ah
+(16, 1, 0, 0)
+
+246 
+	$pÜt_š_ah_lb
+(16, 1, 1, 0)
+
+247 
+	$pÜt_š_ah_lb
+(16, 1, 1, 1)
+
+249 
+	$pÜt_š_ah
+(24, 0, 0, 0)
+
+250 
+	$pÜt_š_ah
+(24, 1, 0, 0)
+
+251 
+	$pÜt_š_ah_lb
+(24, 1, 1, 0)
+
+252 
+	$pÜt_š_ah_lb
+(24, 1, 1, 1)
+
+254 
+	$pÜt_š_ah
+(32, 0, 0, 0)
+
+255 
+	$pÜt_š_ah
+(32, 1, 0, 0)
+
+256 
+	$pÜt_š_ah_lb
+(32, 1, 1, 0)
+
+257 
+	$pÜt_š_ah_lb
+(32, 1, 1, 1)
+
+259 
+	$pÜt_š_ah
+(40, 0, 0, 0)
+
+260 
+	$pÜt_š_ah
+(40, 1, 0, 0)
+
+261 
+	$pÜt_š_ah_lb
+(40, 1, 1, 0)
+
+262 
+	$pÜt_š_ah_lb
+(40, 1, 1, 1)
+
+264 
+	$pÜt_š_ah
+(48, 0, 0, 0)
+
+265 
+	$pÜt_š_ah
+(48, 1, 0, 0)
+
+266 
+	$pÜt_š_ah_lb
+(48, 1, 1, 0)
+
+267 
+	$pÜt_š_ah_lb
+(48, 1, 1, 1)
+
+269 
+	$pÜt_š_ah
+(56, 0, 0, 0)
+
+270 
+	$pÜt_š_ah
+(56, 1, 0, 0)
+
+271 
+	$pÜt_š_ah_lb
+(56, 1, 1, 0)
+
+272 
+	$pÜt_š_ah_lb
+(56, 1, 1, 1)
+
+274 
+	$pÜt_š_ah
+(64, 0, 0, 0)
+
+275 
+	$pÜt_š_ah
+(64, 1, 0, 0)
+
+276 
+	$pÜt_š_ah_lb
+(64, 1, 1, 0)
+
+277 
+	$pÜt_š_ah_lb
+(64, 1, 1, 1)
+
+279 
+¹e_p–še_pÜt_š_aùiÚ_hªdËr
+
+
+280 
+	$g‘_pÜt_š_ah
+(
+p–še_·s¡hrough
+ *
+p
+)
+
+282 ià(
+p
+->
+·¿ms
+.
+dma_’abËd
+ == 0)
+
+283  
+NULL
+;
+
+285 ià(
+p
+->
+·¿ms
+.
+dma_hash_’abËd
+) {
+
+286 ià(
+p
+->
+·¿ms
+.
+lb_hash_’abËd
+) {
+
+287 ià(
+	`¹e_is_pow”_of_2
+(
+p
+->p.
+n_pÜts_out
+))
+
+288 
+p
+->
+·¿ms
+.
+dma_size
+) {
+
+290 8:  
+pÜt_š_ah_size8_hash1_lb1_pw1
+;
+
+291 16:  
+pÜt_š_ah_size16_hash1_lb1_pw1
+;
+
+292 24:  
+pÜt_š_ah_size24_hash1_lb1_pw1
+;
+
+293 32:  
+pÜt_š_ah_size32_hash1_lb1_pw1
+;
+
+294 40:  
+pÜt_š_ah_size40_hash1_lb1_pw1
+;
+
+295 48:  
+pÜt_š_ah_size48_hash1_lb1_pw1
+;
+
+296 56:  
+pÜt_š_ah_size56_hash1_lb1_pw1
+;
+
+297 64:  
+pÜt_š_ah_size64_hash1_lb1_pw1
+;
+
+298 :  
+NULL
+;
+
+301 
+p
+->
+·¿ms
+.
+dma_size
+) {
+
+303 8:  
+pÜt_š_ah_size8_hash1_lb1_pw0
+;
+
+304 16:  
+pÜt_š_ah_size16_hash1_lb1_pw0
+;
+
+305 24:  
+pÜt_š_ah_size24_hash1_lb1_pw0
+;
+
+306 32:  
+pÜt_š_ah_size32_hash1_lb1_pw0
+;
+
+307 40:  
+pÜt_š_ah_size40_hash1_lb1_pw0
+;
+
+308 48:  
+pÜt_š_ah_size48_hash1_lb1_pw0
+;
+
+309 56:  
+pÜt_š_ah_size56_hash1_lb1_pw0
+;
+
+310 64:  
+pÜt_š_ah_size64_hash1_lb1_pw0
+;
+
+311 :  
+NULL
+;
+
+314 
+p
+->
+·¿ms
+.
+dma_size
+) {
+
+316 8:  
+pÜt_š_ah_size8_hash1_lb0_pw0
+;
+
+317 16:  
+pÜt_š_ah_size16_hash1_lb0_pw0
+;
+
+318 24:  
+pÜt_š_ah_size24_hash1_lb0_pw0
+;
+
+319 32:  
+pÜt_š_ah_size32_hash1_lb0_pw0
+;
+
+320 40:  
+pÜt_š_ah_size40_hash1_lb0_pw0
+;
+
+321 48:  
+pÜt_š_ah_size48_hash1_lb0_pw0
+;
+
+322 56:  
+pÜt_š_ah_size56_hash1_lb0_pw0
+;
+
+323 64:  
+pÜt_š_ah_size64_hash1_lb0_pw0
+;
+
+324 :  
+NULL
+;
+
+327 
+p
+->
+·¿ms
+.
+dma_size
+) {
+
+329 8:  
+pÜt_š_ah_size8_hash0_lb0_pw0
+;
+
+330 16:  
+pÜt_š_ah_size16_hash0_lb0_pw0
+;
+
+331 24:  
+pÜt_š_ah_size24_hash0_lb0_pw0
+;
+
+332 32:  
+pÜt_š_ah_size32_hash0_lb0_pw0
+;
+
+333 40:  
+pÜt_š_ah_size40_hash0_lb0_pw0
+;
+
+334 48:  
+pÜt_š_ah_size48_hash0_lb0_pw0
+;
+
+335 56:  
+pÜt_š_ah_size56_hash0_lb0_pw0
+;
+
+336 64:  
+pÜt_š_ah_size64_hash0_lb0_pw0
+;
+
+337 :  
+NULL
+;
+
+339 
+	}
+}
+
+342 
+	$p–še_·s¡hrough_·r£_¬gs
+(
+p–še_·s¡hrough_·¿ms
+ *
+p
+,
+
+343 
+p–še_·¿ms
+ *
+·¿ms
+)
+
+345 
+ušt32_t
+ 
+dma_d¡_off£t_´e£Á
+ = 0;
+
+346 
+ušt32_t
+ 
+dma_¤c_off£t_´e£Á
+ = 0;
+
+347 
+ušt32_t
+ 
+dma_¤c_mask_´e£Á
+ = 0;
+
+348 
+ušt32_t
+ 
+dma_size_´e£Á
+ = 0;
+
+349 
+ušt32_t
+ 
+dma_hash_off£t_´e£Á
+ = 0;
+
+350 
+ušt32_t
+ 
+lb_´e£Á
+ = 0;
+
+351 
+ušt32_t
+ 
+i
+;
+
+352 
+dma_mask_¡r
+[
+PIPELINE_PASSTHROUGH_DMA_SIZE_MAX
+ * 2];
+
+355 
+p
+->
+dma_’abËd
+ = 0;
+
+356 
+p
+->
+dma_hash_’abËd
+ = 0;
+
+357 
+p
+->
+lb_hash_’abËd
+ = 0;
+
+358 
+	`mem£t
+(
+p
+->
+dma_¤c_mask
+, 0xFF, (p->dma_src_mask));
+
+360 
+i
+ = 0; i < 
+·¿ms
+->
+n_¬gs
+; i++) {
+
+361 *
+¬g_Çme
+ = 
+·¿ms
+->
+¬gs_Çme
+[
+i
+];
+
+362 *
+¬g_v®ue
+ = 
+·¿ms
+->
+¬gs_v®ue
+[
+i
+];
+
+365 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "dma_dst_offset") == 0) {
+
+366 
+¡©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št32
+(&
+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_’abËd
+ = 1;
+
+386 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "dma_src_offset") == 0) {
+
+387 
+¡©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št32
+(&
+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_’abËd
+ = 1;
+
+407 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "dma_size") == 0) {
+
+408 
+¡©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št32
+(&
+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_’abËd
+ = 1;
+
+432 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "dma_src_mask") == 0) {
+
+433 
+mask_¡r_Ën
+ = 
+	`¡¾’
+(
+¬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\"oØlÚg", 
+·¿ms
+->
+Çme
+,
+
+444 
+¬g_Çme
+);
+
+446 
+	`¢´štf
+(
+dma_mask_¡r
+, 
+mask_¡r_Ën
+ + 1,
+
+447 "%s", 
+¬g_v®ue
+);
+
+449 
+p
+->
+dma_’abËd
+ = 1;
+
+455 ià(
+	`¡rcmp
+(
+¬g_Çme
+, "dma_hash_offset") == 0) {
+
+456 
+¡©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št32
+(&
+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_’abËd
+ = 1;
+
+471 
+p
+->
+dma_’abË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_’abË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_’abËd
+),
+
+502 "\"dma_d¡_off£t\"", 
+·¿ms
+->
+Çme
+);
+
+503 
+	`PIPELINE_ARG_CHECK
+((
+dma_¤c_off£t_´e£Á
+ =ð
+p
+->
+dma_’abËd
+),
+
+505 "\"dma_¤c_off£t\"", 
+·¿ms
+->
+Çme
+);
+
+506 
+	`PIPELINE_ARG_CHECK
+((
+dma_size_´e£Á
+ =ð
+p
+->
+dma_’abËd
+),
+
+508 "\"dma_size\"", 
+·¿ms
+->
+Çme
+);
+
+509 
+	`PIPELINE_ARG_CHECK
+((
+dma_hash_off£t_´e£Á
+ =ð
+p
+->
+dma_’abËd
+),
+
+511 "\"dma_hash_off£t\"", 
+·¿ms
+->
+Çme
+);
+
+512 
+	`PIPELINE_ARG_CHECK
+((
+p
+->
+lb_hash_’abËd
+ <ðp->
+dma_hash_’abËd
+),
+
+514 "\"dma_hash_off£t\"", 
+·¿ms
+->
+Çme
+);
+
+516 ià(
+dma_¤c_mask_´e£Á
+) {
+
+517 
+ušt32_t
+ 
+dma_size
+ = 
+p
+->dma_size;
+
+518 
+¡©us
+;
+
+520 
+	`PIPELINE_ARG_CHECK
+((
+	`¡¾’
+(
+dma_mask_¡r
+) ==
+
+521 (
+dma_size
+ * 2)), "Parseƒrror in section "
+
+523 "dig™s", 
+·¿ms
+->
+Çme
+, (
+dma_size
+ * 2));
+
+525 
+¡©us
+ = 
+	`·r£_hex_¡ršg
+(
+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 
+¹e_bË_hash_Ý_hash
+
+
+538 
+	$g‘_hash_funùiÚ
+(
+p–še_·s¡hrough
+ *
+p
+)
+
+540 
+p
+->
+·¿ms
+.
+dma_size
+) {
+
+542 8:  
+hash_deçuÉ_key8
+;
+
+543 16:  
+hash_deçuÉ_key16
+;
+
+544 24:  
+hash_deçuÉ_key24
+;
+
+545 32:  
+hash_deçuÉ_key32
+;
+
+546 40:  
+hash_deçuÉ_key40
+;
+
+547 48:  
+hash_deçuÉ_key48
+;
+
+548 56:  
+hash_deçuÉ_key56
+;
+
+549 64:  
+hash_deçuÉ_key64
+;
+
+550 :  
+NULL
+;
+
+552 
+	}
+}
+
+555 
+	$p–še_·s¡hrough_š™
+(
+p–še_·¿ms
+ *
+·¿ms
+,
+
+556 
+__¹e_unu£d
+ *
+¬g
+)
+
+558 
+p–še
+ *
+p
+;
+
+559 
+p–še_·s¡hrough
+ *
+p_±
+;
+
+560 
+ušt32_t
+ 
+size
+, 
+i
+;
+
+563 ià((
+·¿ms
+ =ð
+NULL
+) ||
+
+564 (
+·¿ms
+->
+n_pÜts_š
+ == 0) ||
+
+565 (
+·¿ms
+->
+n_pÜts_out
+ == 0) ||
+
+566 (
+·¿ms
+->
+n_pÜts_š
+ <…¬ams->
+n_pÜts_out
+) ||
+
+567 (
+·¿ms
+->
+n_pÜts_š
+ %…¬ams->
+n_pÜts_out
+))
+
+568  
+NULL
+;
+
+571 
+size
+ = 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+p–še_·s¡hrough
+));
+
+572 
+p
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+573 
+p_±
+ = (
+p–še_·s¡hrough
+ *è
+p
+;
+
+574 ià(
+p
+ =ð
+NULL
+)
+
+575  
+NULL
+;
+
+577 
+	`¡rýy
+(
+p
+->
+Çme
+, 
+·¿ms
+->name);
+
+578 
+p
+->
+log_Ëv–
+ = 
+·¿ms
+->log_level;
+
+580 
+	`PLOG
+(
+p
+, 
+HIGH
+, "Pass-through");
+
+583 ià(
+	`p–še_·s¡hrough_·r£_¬gs
+(&
+p_±
+->
+·¿ms
+,…arams))
+
+584  
+NULL
+;
+
+585 
+p_±
+->
+f_hash
+ = 
+	`g‘_hash_funùiÚ
+(p_pt);
+
+589 
+¹e_p–še_·¿ms
+ 
+p–še_·¿ms
+ = {
+
+590 .
+Çme
+ = "PASS-THROUGH",
+
+591 .
+sock‘_id
+ = 
+·¿ms
+->socket_id,
+
+592 .
+off£t_pÜt_id
+ = 0,
+
+595 
+p
+->°ð
+	`¹e_p–še_ü—‹
+(&
+p–še_·¿ms
+);
+
+596 ià(
+p
+->°=ð
+NULL
+) {
+
+597 
+	`¹e_ä“
+(
+p
+);
+
+598  
+NULL
+;
+
+602 
+p
+->
+n_pÜts_š
+ = 
+·¿ms
+->n_ports_in;
+
+603 
+p
+->
+n_pÜts_out
+ = 
+·¿ms
+->n_ports_out;
+
+604 
+p
+->
+n_bËs
+ =…->
+n_pÜts_š
+;
+
+607 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+608 
+¹e_p–še_pÜt_š_·¿ms
+ 
+pÜt_·¿ms
+ = {
+
+609 .
+Ýs
+ = 
+	`p–še_pÜt_š_·¿ms_g‘_Ýs
+(
+
+610 &
+·¿ms
+->
+pÜt_š
+[
+i
+]),
+
+611 .
+¬g_ü—‹
+ = 
+	`p–še_pÜt_š_·¿ms_cÚv”t
+(
+
+612 &
+·¿ms
+->
+pÜt_š
+[
+i
+]),
+
+613 .
+f_aùiÚ
+ = 
+	`g‘_pÜt_š_ah
+(
+p_±
+),
+
+614 .
+¬g_ah
+ = 
+p_±
+,
+
+615 .
+bur¡_size
+ = 
+·¿ms
+->
+pÜt_š
+[
+i
+].burst_size,
+
+618 
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_ü—‹
+(
+p
+->p,
+
+619 &
+pÜt_·¿ms
+,
+
+620 &
+p
+->
+pÜt_š_id
+[
+i
+]);
+
+622 ià(
+¡©us
+) {
+
+623 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+624 
+	`¹e_ä“
+(
+p
+);
+
+625  
+NULL
+;
+
+630 
+i
+ = 0; i < 
+p
+->
+n_pÜts_out
+; i++) {
+
+631 
+¹e_p–še_pÜt_out_·¿ms
+ 
+pÜt_·¿ms
+ = {
+
+632 .
+Ýs
+ = 
+	`p–še_pÜt_out_·¿ms_g‘_Ýs
+(
+
+633 &
+·¿ms
+->
+pÜt_out
+[
+i
+]),
+
+634 .
+¬g_ü—‹
+ = 
+	`p–še_pÜt_out_·¿ms_cÚv”t
+(
+
+635 &
+·¿ms
+->
+pÜt_out
+[
+i
+]),
+
+636 .
+f_aùiÚ
+ = 
+NULL
+,
+
+637 .
+¬g_ah
+ = 
+NULL
+,
+
+640 
+¡©us
+ = 
+	`¹e_p–še_pÜt_out_ü—‹
+(
+p
+->p,
+
+641 &
+pÜt_·¿ms
+,
+
+642 &
+p
+->
+pÜt_out_id
+[
+i
+]);
+
+644 ià(
+¡©us
+) {
+
+645 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+646 
+	`¹e_ä“
+(
+p
+);
+
+647  
+NULL
+;
+
+652 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+653 
+¹e_p–še_bË_·¿ms
+ 
+bË_·¿ms
+ = {
+
+654 .
+Ýs
+ = &
+¹e_bË_¡ub_Ýs
+,
+
+655 .
+¬g_ü—‹
+ = 
+NULL
+,
+
+656 .
+f_aùiÚ_h™
+ = 
+NULL
+,
+
+657 .
+f_aùiÚ_miss
+ = 
+NULL
+,
+
+658 .
+¬g_ah
+ = 
+NULL
+,
+
+659 .
+aùiÚ_d©a_size
+ = 0,
+
+662 
+¡©us
+ = 
+	`¹e_p–še_bË_ü—‹
+(
+p
+->p,
+
+663 &
+bË_·¿ms
+,
+
+664 &
+p
+->
+bË_id
+[
+i
+]);
+
+666 ià(
+¡©us
+) {
+
+667 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+668 
+	`¹e_ä“
+(
+p
+);
+
+669  
+NULL
+;
+
+674 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+675 
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_cÚÃù_to_bË
+(
+p
+->p,
+
+676 
+p
+->
+pÜt_š_id
+[
+i
+],
+
+677 
+p
+->
+bË_id
+[
+i
+]);
+
+679 ià(
+¡©us
+) {
+
+680 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+681 
+	`¹e_ä“
+(
+p
+);
+
+682  
+NULL
+;
+
+687 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+688 
+¹e_p–še_bË_’Œy
+ 
+deçuÉ_’Œy
+ = {
+
+689 .
+aùiÚ
+ = 
+RTE_PIPELINE_ACTION_PORT
+,
+
+690 {.
+pÜt_id
+ = 
+p
+->
+pÜt_out_id
+[
+
+691 
+i
+ / (
+p
+->
+n_pÜts_š
+ /…->
+n_pÜts_out
+)]},
+
+694 
+¹e_p–še_bË_’Œy
+ *
+deçuÉ_’Œy_±r
+;
+
+696 
+¡©us
+ = 
+	`¹e_p–še_bË_deçuÉ_’Œy_add
+(
+p
+->p,
+
+697 
+p
+->
+bË_id
+[
+i
+],
+
+698 &
+deçuÉ_’Œy
+,
+
+699 &
+deçuÉ_’Œy_±r
+);
+
+701 ià(
+¡©us
+) {
+
+702 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+703 
+	`¹e_ä“
+(
+p
+);
+
+704  
+NULL
+;
+
+709 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+710 
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_’abË
+(
+p
+->p,
+
+711 
+p
+->
+pÜt_š_id
+[
+i
+]);
+
+713 ià(
+¡©us
+) {
+
+714 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+715 
+	`¹e_ä“
+(
+p
+);
+
+716  
+NULL
+;
+
+721 ià(
+	`¹e_p–še_check
+(
+p
+->p) < 0) {
+
+722 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+723 
+	`¹e_ä“
+(
+p
+);
+
+724  
+NULL
+;
+
+728 
+p
+->
+n_msgq
+ = 
+·¿ms
+->n_msgq;
+
+729 
+i
+ = 0; i < 
+p
+->
+n_msgq
+; i++)
+
+730 
+p
+->
+msgq_š
+[
+i
+] = 
+·¿ms
+->msgq_in[i];
+
+731 
+i
+ = 0; i < 
+p
+->
+n_msgq
+; i++)
+
+732 
+p
+->
+msgq_out
+[
+i
+] = 
+·¿ms
+->msgq_out[i];
+
+735 
+	`memýy
+(
+p
+->
+hªdËrs
+, handlers, (p->handlers));
+
+737  
+p
+;
+
+738 
+	}
+}
+
+741 
+	$p–še_·s¡hrough_ä“
+(*
+p–še
+)
+
+743 
+p–še
+ *
+p
+ = (pipeline *)…ipeline;
+
+746 ià(
+p
+ =ð
+NULL
+)
+
+750 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+751 
+	`¹e_ä“
+(
+p
+);
+
+753 
+	}
+}
+
+756 
+	$p–še_·s¡hrough_tim”
+(*
+p–še
+)
+
+758 
+p–še
+ *
+p
+ = (pipeline *)…ipeline;
+
+760 
+	`p–še_msg_»q_hªdË
+(
+p
+);
+
+761 
+	`¹e_p–še_æush
+(
+p
+->p);
+
+764 
+	}
+}
+
+767 
+	$p–še_·s¡hrough_Œack
+(*
+p–še
+, 
+ušt32_t
+ 
+pÜt_š
+, ušt32_ˆ*
+pÜt_out
+)
+
+769 
+p–še
+ *
+p
+ = (pipeline *)…ipeline;
+
+772 ià((
+p
+ =ð
+NULL
+) ||
+
+773 (
+pÜt_š
+ >ð
+p
+->
+n_pÜts_š
+) ||
+
+774 (
+pÜt_out
+ =ð
+NULL
+))
+
+777 *
+pÜt_out
+ = 
+pÜt_š
+ / 
+p
+->
+n_pÜts_š
+;
+
+779 
+	}
+}
+
+781 
+p–še_be_Ýs
+ 
+	gp–še_·s¡hrough_be_Ýs
+ = {
+
+782 .
+f_š™
+ = 
+p–še_·s¡hrough_š™
+,
+
+783 .
+	gf_ä“
+ = 
+p–še_·s¡hrough_ä“
+,
+
+784 .
+	gf_run
+ = 
+NULL
+,
+
+785 .
+	gf_tim”
+ = 
+p–še_·s¡hrough_tim”
+,
+
+786 .
+	gf_Œack
+ = 
+p–še_·s¡hrough_Œack
+,
+
+	@VIL/pipeline_passthrough/pipeline_passthrough_be.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_PASSTHROUGH_BE_H__
+
+
+18 
+	#__INCLUDE_PIPELINE_PASSTHROUGH_BE_H__
+
+
+	)
+
+20 
+	~"p–še_commÚ_be.h
+"
+
+22 
+	#PIPELINE_PASSTHROUGH_DMA_SIZE_MAX
+ 64
+
+	)
+
+24 
+	sp–še_·s¡hrough_·¿ms
+ {
+
+25 
+ušt32_t
+ 
+	mdma_’abËd
+;
+
+26 
+ušt32_t
+ 
+	mdma_d¡_off£t
+;
+
+27 
+ušt32_t
+ 
+	mdma_¤c_off£t
+;
+
+28 
+ušt8_t
+ 
+	mdma_¤c_mask
+[
+PIPELINE_PASSTHROUGH_DMA_SIZE_MAX
+];
+
+29 
+ušt32_t
+ 
+	mdma_size
+;
+
+31 
+ušt32_t
+ 
+	mdma_hash_’abËd
+;
+
+32 
+ušt32_t
+ 
+	mdma_hash_off£t
+;
+
+33 
+ušt32_t
+ 
+	mlb_hash_’abËd
+;
+
+37 
+p–še_·s¡hrough_·r£_¬gs
+(
+p–še_·s¡hrough_·¿ms
+ *
+p
+,
+
+38 
+p–še_·¿ms
+ *
+·¿ms
+);
+
+40 

+p–še_be_Ýs
+ 
+p–še_·s¡hrough_be_Ýs
+;
+
+	@VIL/pipeline_txrx/pipeline_txrx.c
+
+17 
+	~<cmdlše_·r£.h
+>
+
+18 
+	~<cmdlše_·r£_num.h
+>
+
+19 
+	~<cmdlše_·r£_¡ršg.h
+>
+
+20 
+	~<cmdlše_·r£_addr.h
+>
+
+21 
+	~<cmdlše_·r£_‘h”addr.h
+>
+
+23 
+	~"­p.h
+"
+
+24 
+	~"p–še_commÚ_ã.h
+"
+
+25 
+	~"p–še_txrx.h
+"
+
+26 
+	~"vnf_commÚ.h
+"
+
+28 
+	~"p–še_¬picmp_be.h
+"
+
+31 
+	$­p_p–še_txrx_’Œy_dbg
+(
+­p_·¿ms
+ *
+­p
+,
+
+32 
+ušt32_t
+ 
+p–še_id
+, 
+ušt8_t
+ *
+msg
+)
+
+34 
+p–še_txrx_’Œy_dbg_msg_»q
+ *
+»q
+;
+
+35 
+p–še_txrx_’Œy_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–še_id
+, 
+»q
+, 
+MSG_TIMEOUT_DEFAULT
+);
+
+52 ià(
+r¥
+ =ð
+NULL
+)
+
+56 ià(
+r¥
+->
+¡©us
+) {
+
+57 
+	`­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+58 
+	`´štf
+("E¼Ü„¥->¡©u %d\n", 
+r¥
+->
+¡©us
+);
+
+63 
+	`­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+66 
+	}
+}
+
+73 
+	scmd_’Œy_dbg_»suÉ
+ {
+
+74 
+cmdlše_fixed_¡ršg_t
+ 
+	mp_¡ršg
+;
+
+75 
+ušt32_t
+ 
+	mp
+;
+
+76 
+cmdlše_fixed_¡ršg_t
+ 
+	m’Œy_¡ršg
+;
+
+77 
+cmdlše_fixed_¡ršg_t
+ 
+	mdbg_¡ršg
+;
+
+78 
+ušt8_t
+ 
+	mcmd
+;
+
+79 
+ušt8_t
+ 
+	md1
+;
+
+83 
+	$cmd_’Œy_dbg_·r£d
+(*
+·r£d_»suÉ
+,
+
+84 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+, *
+d©a
+)
+
+86 
+cmd_’Œy_dbg_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+87 
+­p_·¿ms
+ *
+­p
+ = 
+d©a
+;
+
+88 
+ušt8_t
+ 
+msg
+[2];
+
+89 
+¡©us
+;
+
+91 
+msg
+[0] = 
+·¿ms
+->
+cmd
+;
+
+92 
+msg
+[1] = 
+·¿ms
+->
+d1
+;
+
+93 
+¡©us
+ = 
+	`­p_p–še_txrx_’Œy_dbg
+(
+­p
+, 
+·¿ms
+->
+p
+, 
+msg
+);
+
+95 ià(
+¡©us
+ != 0) {
+
+96 
+	`´štf
+("Dbg Command failed\n");
+
+99 
+	}
+}
+
+101 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	glb_cmd_’Œy_dbg_p_¡ršg
+ =
+
+102 
+TOKEN_STRING_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+p_¡ršg
+, "p");
+
+104 
+cmdlše_·r£_tok’_num_t
+ 
+	glb_cmd_’Œy_dbg_p
+ =
+
+105 
+TOKEN_NUM_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+p
+, 
+UINT32
+);
+
+107 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	glb_cmd_’Œy_dbg_’Œy_¡ršg
+ =
+
+108 
+TOKEN_STRING_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+,
+
+109 
+’Œy_¡ršg
+, "txrx");
+
+111 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	glb_cmd_’Œy_dbg_dbg_¡ršg
+ =
+
+112 
+TOKEN_STRING_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+dbg_¡ršg
+,
+
+115 
+cmdlše_·r£_tok’_num_t
+ 
+	glb_cmd_’Œy_dbg_cmd
+ =
+
+116 
+TOKEN_NUM_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+cmd
+, 
+UINT8
+);
+
+118 
+cmdlše_·r£_tok’_num_t
+ 
+	glb_cmd_’Œy_dbg_d1
+ =
+
+119 
+TOKEN_NUM_INITIALIZER
+(
+cmd_’Œy_dbg_»suÉ
+, 
+d1
+, 
+UINT8
+);
+
+121 
+cmdlše_·r£_š¡_t
+ 
+	glb_cmd_’Œy_dbg
+ = {
+
+122 .
+f
+ = 
+cmd_’Œy_dbg_·r£d
+,
+
+123 .
+	gd©a
+ = 
+NULL
+,
+
+124 .
+	gh–p_¡r
+ = "TXRX dbg cmd",
+
+125 .
+	gtok’s
+ = {
+
+126 (*)&
+lb_cmd_’Œy_dbg_p_¡ršg
+,
+
+127 (*)&
+lb_cmd_’Œy_dbg_p
+,
+
+128 (*)&
+lb_cmd_’Œy_dbg_’Œy_¡ršg
+,
+
+129 (*)&
+lb_cmd_’Œy_dbg_dbg_¡ršg
+,
+
+130 (*)&
+lb_cmd_’Œy_dbg_cmd
+,
+
+131 (*)&
+lb_cmd_’Œy_dbg_d1
+,
+
+132 
+NULL
+,
+
+136 
+cmdlše_·r£_ùx_t
+ 
+	gp–še_cmds
+[] = {
+
+137 (
+cmdlše_·r£_š¡_t
+ *è&
+lb_cmd_’Œy_dbg
+,
+
+138 
+NULL
+,
+
+141 
+p–še_ã_Ýs
+ 
+	gp–še_txrx_ã_Ýs
+ = {
+
+142 .
+f_š™
+ = 
+NULL
+,
+
+143 .
+	gf_ä“
+ = 
+NULL
+,
+
+144 .
+	gcmds
+ = 
+p–še_cmds
+,
+
+147 
+p–še_ty³
+ 
+	gp–še_txrx
+ = {
+
+148 .
+Çme
+ = "TXRX",
+
+149 .
+	gbe_Ýs
+ = &
+p–še_txrx_be_Ýs
+,
+
+150 .
+	gã_Ýs
+ = &
+p–še_txrx_ã_Ýs
+,
+
+	@VIL/pipeline_txrx/pipeline_txrx.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_TXRX_H__
+
+
+18 
+	#__INCLUDE_PIPELINE_TXRX_H__
+
+
+	)
+
+20 
+	~"p–še.h
+"
+
+21 
+	~"p–še_txrx_be.h
+"
+
+26 

+p–še_ty³
+ 
+p–še_txrx
+;
+
+	@VIL/pipeline_txrx/pipeline_txrx_be.c
+
+17 
+	~<¡ršg.h
+>
+
+19 
+	~<¹e_commÚ.h
+>
+
+20 
+	~<¹e_m®loc.h
+>
+
+21 
+	~<¹e_by‹Üd”.h
+>
+
+22 
+	~<¹e_bË_¡ub.h
+>
+
+23 
+	~<¹e_bË_hash.h
+>
+
+24 
+	~<¹e_p–še.h
+>
+
+26 
+	~"p–še_txrx_be.h
+"
+
+27 
+	~"p–še_aùiÚs_commÚ.h
+"
+
+28 
+	~"·r£r.h
+"
+
+29 
+	~"hash_func.h
+"
+
+30 
+	~"p–še_¬picmp_be.h
+"
+
+31 
+	~"vnf_commÚ.h
+"
+
+32 
+	~"­p.h
+"
+
+33 #iâdeà
+VNF_ACL
+
+
+34 
+	~"lib_icmpv6.h
+"
+
+37 
+ušt8_t
+ 
+	gTXRX_DEBUG
+;
+
+38 
+	gpkt_bur¡_út
+;
+
+40 
+	sp–še_txrx
+ {
+
+41 
+p–še
+ 
+	mp
+;
+
+42 
+p–še_msg_»q_hªdËr
+
+
+43 
+	mcu¡om_hªdËrs
+[
+PIPELINE_TXRX_MSG_REQS
+];
+
+44 
+ušt64_t
+ 
+	m»ûivedPktCouÁ
+;
+
+45 
+ušt64_t
+ 
+	mdrݳdPktCouÁ
+;
+
+46 
+ušt8_t
+ 
+	mlšks_m­
+[
+PIPELINE_MAX_PORT_IN
+];
+
+47 
+ušt8_t
+ 
+	mouÜt_id
+[
+PIPELINE_MAX_PORT_IN
+];
+
+48 
+ušt8_t
+ 
+	mp–še_num
+;
+
+49 
+ušt8_t
+ 
+	mtxrx_ty³
+;
+
+50 } 
+	g__¹e_ÿche_®igÃd
+;
+
+53 
+	mTYPE_TXTX
+,
+
+54 
+	mTYPE_RXRX
+,
+
+56 *
+p–še_txrx_msg_»q_cu¡om_hªdËr
+(
+p–še
+ *
+p
+,
+
+57 *
+msg
+);
+
+59 
+p–še_msg_»q_hªdËr
+ 
+	ghªdËrs
+[] = {
+
+60 [
+PIPELINE_MSG_REQ_PING
+] =
+
+61 
+p–še_msg_»q_pšg_hªdËr
+,
+
+62 [
+PIPELINE_MSG_REQ_STATS_PORT_IN
+] =
+
+63 
+p–še_msg_»q_¡©s_pÜt_š_hªdËr
+,
+
+64 [
+PIPELINE_MSG_REQ_STATS_PORT_OUT
+] =
+
+65 
+p–še_msg_»q_¡©s_pÜt_out_hªdËr
+,
+
+66 [
+PIPELINE_MSG_REQ_STATS_TABLE
+] =
+
+67 
+p–še_msg_»q_¡©s_bË_hªdËr
+,
+
+68 [
+PIPELINE_MSG_REQ_PORT_IN_ENABLE
+] =
+
+69 
+p–še_msg_»q_pÜt_š_’abË_hªdËr
+,
+
+70 [
+PIPELINE_MSG_REQ_PORT_IN_DISABLE
+] =
+
+71 
+p–še_msg_»q_pÜt_š_di§bË_hªdËr
+,
+
+72 [
+PIPELINE_MSG_REQ_CUSTOM
+] =
+
+73 
+p–še_txrx_msg_»q_cu¡om_hªdËr
+,
+
+77 *
+p–še_txrx_msg_»q_’Œy_dbg_hªdËr
+(
+p–še
+ *
+p
+,
+
+78 *
+msg
+);
+
+79 *
+	$p–še_txrx_msg_»q_’Œy_dbg_hªdËr
+(
+
+80 
+__¹e_unu£d
+ 
+p–še
+ *
+p
+,
+
+81 
+__¹e_unu£d
+ *
+msg
+)
+
+84  
+NULL
+;
+
+85 
+	}
+}
+
+87 
+__¹e_unu£d
+ 
+p–še_msg_»q_hªdËr
+ 
+	gcu¡om_hªdËrs
+[] = {
+
+88 [
+PIPELINE_TXRX_MSG_REQ_ENTRY_DBG
+] =
+
+89 
+p–še_txrx_msg_»q_’Œy_dbg_hªdËr
+,
+
+103 *
+	$p–še_txrx_msg_»q_cu¡om_hªdËr
+(
+p–še
+ *
+p
+, *
+msg
+)
+
+105 
+p–še_txrx
+ *
+p_txrx
+ = (p–še_txrx *)
+p
+;
+
+106 
+p–še_cu¡om_msg_»q
+ *
+»q
+ = 
+msg
+;
+
+107 
+p–še_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–še_msg_»q_šv®id_hªdËr
+;
+
+113 ià(
+f_hªdË
+ =ð
+NULL
+)
+
+114 
+f_hªdË
+ = 
+p–še_msg_»q_šv®id_hªdËr
+;
+
+116  
+	`f_hªdË
+(
+p
+, 
+»q
+);
+
+117 
+	}
+}
+
+123 
+p–še_txrx_·r£_¬gs
+(
+p–še_txrx
+ *
+p
+,
+
+124 
+p–še_·¿ms
+ *
+·¿ms
+);
+
+126 
+	$p–še_txrx_·r£_¬gs
+(
+p–še_txrx
+ *
+p
+,
+
+127 
+p–še_·¿ms
+ *
+·¿ms
+)
+
+129 
+ušt32_t
+ 
+i
+;
+
+130 
+ušt8_t
+ 
+txrx_ty³_´e£Á
+ = 0;
+
+132 ià(
+TXRX_DEBUG
+ > 2)
+
+133 
+	`´štf
+("TXRX…ipeline_txrx_parse_args…arams->n_args: %d\n",
+
+134 
+·¿ms
+->
+n_¬gs
+);
+
+136 
+i
+ = 0; i < 
+·¿ms
+->
+n_¬gs
+; i++) {
+
+137 *
+¬g_Çme
+ = 
+·¿ms
+->
+¬gs_Çme
+[
+i
+];
+
+138 *
+¬g_v®ue
+ = 
+·¿ms
+->
+¬gs_v®ue
+[
+i
+];
+
+140 ià(
+TXRX_DEBUG
+ > 2)
+
+141 
+	`´štf
+("TXRX‡rgs[%d]: % %d, %s\n", 
+i
+, 
+¬g_Çme
+,
+
+142 
+	`©oi
+(
+¬g_v®ue
+),‡rg_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 
+	`´štf
+("pipeline_txrx_type is TXTX\n");
+
+155 ià(
+	`¡rcmp
+(
+¬g_v®ue
+, "RXRX") == 0) {
+
+156 
+p
+->
+txrx_ty³
+ = 
+TYPE_RXRX
+;
+
+157 
+	`´štf
+("pipeline_txrx_type is RXRX\n");
+
+163 ià(!
+txrx_ty³_´e£Á
+) {
+
+164 
+	`´štf
+("TXRXype‚ot specified\n");
+
+170 
+	}
+}
+
+172 
+ušt32_t
+ 
+	gtxrx_pkt_´št_couÁ
+;
+
+173 
+šlše
+ 
+
+174 
+	$pkt_wÜk_txrx
+(
+¹e_mbuf
+ *
+pkt
+, 
+ušt32_t
+ 
+pkt_num
+, *
+¬g
+)
+
+177 
+p–še_txrx_š_pÜt_h_¬g
+ *
+­
+ = 
+¬g
+;
+
+178 
+p–še_txrx
+ *
+p_txrx
+ = (p–še_txrx *)
+­
+->
+p
+;
+
+179 
+ušt8_t
+ 
+sÞic™ed_node_muÉiÿ¡_addr
+[16] =
+
+182 
+p_txrx
+->
+»ûivedPktCouÁ
+++;
+
+184 ià(
+p_txrx
+->
+txrx_ty³
+ =ð
+TYPE_TXTX
+)
+
+187 
+ušt8_t
+ 
+š_pÜt_id
+ = 
+pkt
+->
+pÜt
+;
+
+188 
+ušt32_t
+ 
+‘h_´Ùo_off£t
+ = 
+MBUF_HDR_ROOM
+ + 12;
+
+190 
+ušt32_t
+ 
+pkt_mask
+ = 1 << 
+pkt_num
+;
+
+192 
+ušt32_t
+ 
+out_pÜt
+ = 
+p_txrx
+->
+p
+.
+n_pÜts_out
+ - 1;
+
+194 
+ušt16_t
+ *
+‘h_´Ùo
+ =
+
+195 
+	`RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+, 
+‘h_´Ùo_off£t
+);
+
+197 
+ušt8_t
+ *
+´ÙocÞ
+;
+
+198 
+ušt32_t
+ 
+´Ù_off£t
+ =
+
+199 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_PROTOCOL_OFST
+;
+
+201 #ifdeà
+IPV6
+
+
+202 
+v6_hdr
+ *
+v6_h
+;
+
+203 
+v6_h
+ = 
+	`¹e_pktmbuf_mtod_off£t
+ (
+pkt
+, 
+v6_hdr
+ *, (
+‘h”_hdr
+));
+
+204 
+ušt32_t
+ 
+´Ù_off£t_v6
+ =
+
+205 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IPV6_HDR_PROTOCOL_OFST
+;
+
+207 ià(
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo
+è=ð
+ETHER_TYPE_IPv6
+)
+
+208 
+´ÙocÞ
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+, 
+´Ù_off£t_v6
+);
+
+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_´št_couÁ
+ < 10)) {
+
+217 
+	`´št_pkt1
+(
+pkt
+);
+
+218 
+txrx_pkt_´št_couÁ
+++;
+
+219 
+	`´štf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+221 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo
+), *
+´ÙocÞ
+, 
+ETH_TYPE_ARP
+,
+
+222 
+ETH_TYPE_IPV4
+, 
+IP_PROTOCOL_ICMP
+);
+
+225 
+­p_lšk_·¿ms
+ *
+lšk
+;
+
+227 
+lšk
+ = &
+myAµ
+->
+lšk_·¿ms
+[
+š_pÜt_id
+];
+
+230 
+ušt32_t
+ 
+d¡_addr_off£t
+ =
+
+231 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_DST_ADR_OFST
+;
+
+232 
+ušt32_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
+(*
+‘h_´Ùo
+è=ð
+ETH_TYPE_IPV4
+)
+
+236 
+	`´štf
+ ("%s:†škIp: %x, d¡_addr: %x\n", 
+__FUNCTION__
+, 
+lšk
+->
+
+, *
+d¡_addr
+);
+
+239 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo
+)) {
+
+240 
+ETH_TYPE_ARP
+:
+
+241 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+p_txrx
+->
+p
+.p,
+
+242 
+out_pÜt
+, 
+pkt
+);
+
+243 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask
+);
+
+246 
+ETH_TYPE_IPV4
+:
+
+247 ià((*
+´ÙocÞ
+ =ð
+IP_PROTOCOL_ICMP
+) &&
+
+248 (
+lšk
+->
+
+ =ð
+	`¹e_be_to_ýu_32
+(*
+d¡_addr
+))) {
+
+249 ià(
+	`is_phy_pÜt_´iv‹
+(
+pkt
+->
+pÜt
+)) {
+
+250 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+
+251 
+p_txrx
+->
+p
+.p,
+
+252 
+out_pÜt
+, 
+pkt
+);
+
+253 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+
+254 
+p_txrx
+->
+p
+.p,
+
+255 
+pkt_mask
+);
+
+261 #ifdeà
+IPV6
+
+
+262 
+ETH_TYPE_IPV6
+:
+
+263 ià(*
+´ÙocÞ
+ =ð
+ICMPV6_PROTOCOL_ID
+) {
+
+264 #iâdeà
+VNF_ACL
+
+
+265 ià(!
+	`memcmp
+(
+v6_h
+->
+d¡_addr
+, 
+lšk
+->
+v6
+, 16)
+
+266 || !
+	`memcmp
+(
+v6_h
+->
+d¡_addr
+, 
+sÞic™ed_node_muÉiÿ¡_addr
+, 13)) {
+
+268 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+p_txrx
+->
+p
+.p,
+
+269 
+out_pÜt
+, 
+pkt
+);
+
+270 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask
+);
+
+271 #iâdeà
+VNF_ACL
+
+
+273 
+	`´štf
+("Droppinghe IPv6…kt\n");
+
+274 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask
+);
+
+282 
+	`´štf
+("Droppinghe…kt\n");
+
+283 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask
+);
+
+288 
+	}
+}
+
+290 
+šlše
+ 
+
+291 
+	$pkt4_wÜk_txrx
+(
+¹e_mbuf
+ **
+pkt
+, 
+ušt32_t
+ 
+pkt_num
+, *
+¬g
+)
+
+293 
+p–še_txrx_š_pÜt_h_¬g
+ *
+­
+ = 
+¬g
+;
+
+294 
+p–še_txrx
+ *
+p_txrx
+ = (p–še_txrx *)
+­
+->
+p
+;
+
+295 
+ušt8_t
+ 
+sÞic™ed_node_muÉiÿ¡_addr
+[16] =
+
+299 ià(
+p_txrx
+->
+txrx_ty³
+ =ð
+TYPE_TXTX
+)
+
+302 
+ušt16_t
+ 
+š_pÜt_id
+ = (*
+pkt
+)->
+pÜt
+;
+
+303 
+ušt32_t
+ 
+‘h_´Ùo_off£t
+ = 
+MBUF_HDR_ROOM
+ + 12;
+
+306 
+ušt32_t
+ 
+pkt_mask0
+ = 1 << 
+pkt_num
+;
+
+307 
+ušt32_t
+ 
+pkt_mask1
+ = 1 << (
+pkt_num
+ + 1);
+
+308 
+ušt32_t
+ 
+pkt_mask2
+ = 1 << (
+pkt_num
+ + 2);
+
+309 
+ušt32_t
+ 
+pkt_mask3
+ = 1 << (
+pkt_num
+ + 3);
+
+312 
+ušt32_t
+ 
+out_pÜt
+ = 
+p_txrx
+->
+p
+.
+n_pÜts_out
+ - 1;
+
+314 
+ušt16_t
+ *
+‘h_´Ùo0
+ =
+
+315 
+	`RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[0], 
+‘h_´Ùo_off£t
+);
+
+316 
+ušt16_t
+ *
+‘h_´Ùo1
+ =
+
+317 
+	`RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[1], 
+‘h_´Ùo_off£t
+);
+
+318 
+ušt16_t
+ *
+‘h_´Ùo2
+ =
+
+319 
+	`RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[2], 
+‘h_´Ùo_off£t
+);
+
+320 
+ušt16_t
+ *
+‘h_´Ùo3
+ =
+
+321 
+	`RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[3], 
+‘h_´Ùo_off£t
+);
+
+323 
+ušt8_t
+ *
+´ÙocÞ0
+, *
+´ÙocÞ1
+, *
+´ÙocÞ2
+, *
+´ÙocÞ3
+;
+
+324 
+ušt32_t
+ 
+´Ù_off£t
+ =
+
+325 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_PROTOCOL_OFST
+;
+
+327 #ifdeà
+IPV6
+
+
+328 
+v6_hdr
+ *
+v6_h0
+, *
+v6_h1
+, *
+v6_h2
+, *
+v6_h3
+;
+
+329 
+v6_h0
+ = 
+	`¹e_pktmbuf_mtod_off£t
+ (
+pkt
+[0], 
+v6_hdr
+ *, (
+‘h”_hdr
+));
+
+330 
+ušt32_t
+ 
+´Ù_off£t_v6
+ =
+
+331 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IPV6_HDR_PROTOCOL_OFST
+;
+
+334 ià(
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo0
+è=ð
+ETHER_TYPE_IPv6
+)
+
+335 
+´ÙocÞ0
+ =
+
+336 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[0], 
+´Ù_off£t_v6
+);
+
+338 
+´ÙocÞ0
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[0], 
+´Ù_off£t
+);
+
+341 
+v6_h1
+ = 
+	`¹e_pktmbuf_mtod_off£t
+ (
+pkt
+[1], 
+v6_hdr
+ *, (
+‘h”_hdr
+));
+
+342 ià(
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo1
+è=ð
+ETHER_TYPE_IPv6
+)
+
+343 
+´ÙocÞ1
+ =
+
+344 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[1], 
+´Ù_off£t_v6
+);
+
+346 
+´ÙocÞ1
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[1], 
+´Ù_off£t
+);
+
+349 
+v6_h2
+ = 
+	`¹e_pktmbuf_mtod_off£t
+ (
+pkt
+[2], 
+v6_hdr
+ *, (
+‘h”_hdr
+));
+
+350 ià(
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo2
+è=ð
+ETHER_TYPE_IPv6
+)
+
+351 
+´ÙocÞ2
+ =
+
+352 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[2], 
+´Ù_off£t_v6
+);
+
+354 
+´ÙocÞ2
+ = 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[2], 
+´Ù_off£t
+);
+
+357 
+v6_h3
+ = 
+	`¹e_pktmbuf_mtod_off£t
+ (
+pkt
+[3], 
+v6_hdr
+ *, (
+‘h”_hdr
+));
+
+358 ià(
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo3
+è=ð
+ETHER_TYPE_IPv6
+)
+
+359 
+´ÙocÞ3
+ =
+
+360 
+	`RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[3], 
+´Ù_off£t_v6
+);
+
+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_´št_couÁ
+ < 10)) {
+
+371 
+	`´št_pkt1
+(
+pkt
+[0]);
+
+372 
+txrx_pkt_´št_couÁ
+++;
+
+373 
+	`´štf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+375 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo0
+), *
+´ÙocÞ0
+, 
+ETH_TYPE_ARP
+,
+
+376 
+ETH_TYPE_IPV4
+, 
+IP_PROTOCOL_ICMP
+);
+
+379 
+­p_lšk_·¿ms
+ *
+lšk
+;
+
+381 
+lšk
+ = &
+myAµ
+->
+lšk_·¿ms
+[
+š_pÜt_id
+];
+
+384 
+ušt32_t
+ 
+d¡_addr_off£t0
+ =
+
+385 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_DST_ADR_OFST
+;
+
+386 
+ušt32_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
+(*
+‘h_´Ùo0
+è=ð
+ETH_TYPE_IPV4
+)
+
+391 
+	`´štf
+ ("%s:†škIp: %x, d¡_addr0: %x\n", 
+__FUNCTION__
+, 
+lšk
+->
+
+, *
+d¡_addr0
+);
+
+394 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo0
+)) {
+
+395 
+ETH_TYPE_ARP
+:
+
+396 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+p_txrx
+->
+p
+.p,
+
+397 
+out_pÜt
+, 
+pkt
+[0]);
+
+398 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask0
+);
+
+401 
+ETH_TYPE_IPV4
+:
+
+402 ià((*
+´ÙocÞ0
+ =ð
+IP_PROTOCOL_ICMP
+) &&
+
+403 (
+lšk
+->
+
+ =ð
+	`¹e_be_to_ýu_32
+(*
+d¡_addr0
+))) {
+
+404 ià(
+	`is_phy_pÜt_´iv‹
+(
+pkt
+[0]->
+pÜt
+)) {
+
+405 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+
+406 
+p_txrx
+->
+p
+.p, 
+out_pÜt
+, 
+pkt
+[0]);
+
+407 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+
+408 
+p_txrx
+->
+p
+.p, 
+pkt_mask0
+);
+
+414 #ifdeà
+IPV6
+
+
+415 
+ETH_TYPE_IPV6
+:
+
+416 ià(*
+´ÙocÞ0
+ =ð
+ICMPV6_PROTOCOL_ID
+) {
+
+417 #iâdeà
+VNF_ACL
+
+
+418 ià(!
+	`memcmp
+(
+v6_h0
+->
+d¡_addr
+, 
+lšk
+->
+v6
+, 16)
+
+419 || !
+	`memcmp
+(
+v6_h0
+->
+d¡_addr
+, 
+sÞic™ed_node_muÉiÿ¡_addr
+, 13)) {
+
+421 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+p_txrx
+->
+p
+.p,
+
+422 
+out_pÜt
+, 
+pkt
+[0]);
+
+423 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask0
+);
+
+425 #iâdeà
+VNF_ACL
+
+
+427 
+	`´štf
+("Droppinghe IPv6…kt\n");
+
+428 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask0
+);
+
+436 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask0
+);
+
+441 ià((
+TXRX_DEBUG
+ > 2è&& (
+txrx_pkt_´št_couÁ
+ < 10)) {
+
+442 
+	`´št_pkt1
+(
+pkt
+[1]);
+
+443 
+txrx_pkt_´št_couÁ
+++;
+
+444 
+	`´štf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+446 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo1
+), *
+´ÙocÞ1
+, 
+ETH_TYPE_ARP
+,
+
+447 
+ETH_TYPE_IPV4
+, 
+IP_PROTOCOL_ICMP
+);
+
+451 
+ušt32_t
+ 
+d¡_addr_off£t1
+ =
+
+452 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_DST_ADR_OFST
+;
+
+453 
+ušt32_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
+(*
+‘h_´Ùo1
+è=ð
+ETH_TYPE_IPV4
+)
+
+458 
+	`´štf
+ ("%s:†škIp: %x, d¡_addr1: %x\n", 
+__FUNCTION__
+, 
+lšk
+->
+
+, *
+d¡_addr1
+);
+
+460 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo1
+)) {
+
+461 
+ETH_TYPE_ARP
+:
+
+462 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+p_txrx
+->
+p
+.p,
+
+463 
+out_pÜt
+, 
+pkt
+[1]);
+
+464 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask1
+);
+
+467 
+ETH_TYPE_IPV4
+:
+
+468 ià((*
+´ÙocÞ1
+ =ð
+IP_PROTOCOL_ICMP
+) &&
+
+469 (
+lšk
+->
+
+ =ð
+	`¹e_be_to_ýu_32
+(*
+d¡_addr1
+))) {
+
+470 ià(
+	`is_phy_pÜt_´iv‹
+(
+pkt
+[1]->
+pÜt
+)) {
+
+471 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+
+472 
+p_txrx
+->
+p
+.p,
+
+473 
+out_pÜt
+, 
+pkt
+[1]);
+
+474 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+
+475 
+p_txrx
+->
+p
+.p,
+
+476 
+pkt_mask1
+);
+
+482 #ifdeà
+IPV6
+
+
+483 
+ETH_TYPE_IPV6
+:
+
+484 ià(*
+´ÙocÞ1
+ =ð
+ICMPV6_PROTOCOL_ID
+) {
+
+485 #iâdeà
+VNF_ACL
+
+
+486 ià(!
+	`memcmp
+(
+v6_h1
+->
+d¡_addr
+, 
+lšk
+->
+v6
+, 16)
+
+487 || !
+	`memcmp
+(
+v6_h1
+->
+d¡_addr
+, 
+sÞic™ed_node_muÉiÿ¡_addr
+, 13)) {
+
+489 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+p_txrx
+->
+p
+.p,
+
+490 
+out_pÜt
+, 
+pkt
+[1]);
+
+491 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask1
+);
+
+492 #iâdeà
+VNF_ACL
+
+
+494 
+	`´štf
+("Droppinghe IPv6…kt\n");
+
+495 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask1
+);
+
+503 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask1
+);
+
+507 ià((
+TXRX_DEBUG
+ > 2è&& (
+txrx_pkt_´št_couÁ
+ < 10)) {
+
+508 
+	`´št_pkt1
+(
+pkt
+[2]);
+
+509 
+txrx_pkt_´št_couÁ
+++;
+
+510 
+	`´štf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+512 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo2
+), *
+´ÙocÞ2
+, 
+ETH_TYPE_ARP
+,
+
+513 
+ETH_TYPE_IPV4
+, 
+IP_PROTOCOL_ICMP
+);
+
+517 
+ušt32_t
+ 
+d¡_addr_off£t2
+ =
+
+518 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_DST_ADR_OFST
+;
+
+519 
+ušt32_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
+(*
+‘h_´Ùo2
+è=ð
+ETH_TYPE_IPV4
+)
+
+524 
+	`´štf
+ ("%s:†škIp: %x, d¡_addr2: %x\n", 
+__FUNCTION__
+, 
+lšk
+->
+
+, *
+d¡_addr2
+);
+
+526 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo2
+)) {
+
+527 
+ETH_TYPE_ARP
+:
+
+528 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+p_txrx
+->
+p
+.p,
+
+529 
+out_pÜt
+, 
+pkt
+[2]);
+
+530 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask2
+);
+
+533 
+ETH_TYPE_IPV4
+:
+
+534 ià((*
+´ÙocÞ2
+ =ð
+IP_PROTOCOL_ICMP
+) &&
+
+535 (
+lšk
+->
+
+ =ð
+	`¹e_be_to_ýu_32
+(*
+d¡_addr2
+))) {
+
+536 ià(
+	`is_phy_pÜt_´iv‹
+(
+pkt
+[2]->
+pÜt
+)) {
+
+537 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+
+538 
+p_txrx
+->
+p
+.p,
+
+539 
+out_pÜt
+, 
+pkt
+[2]);
+
+540 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+
+541 
+p_txrx
+->
+p
+.p,
+
+542 
+pkt_mask2
+);
+
+548 #ifdeà
+IPV6
+
+
+549 
+ETH_TYPE_IPV6
+:
+
+550 ià(*
+´ÙocÞ2
+ =ð
+ICMPV6_PROTOCOL_ID
+) {
+
+551 #iâdeà
+VNF_ACL
+
+
+552 ià(!
+	`memcmp
+(
+v6_h2
+->
+d¡_addr
+, 
+lšk
+->
+v6
+, 16)
+
+553 || !
+	`memcmp
+(
+v6_h2
+->
+d¡_addr
+, 
+sÞic™ed_node_muÉiÿ¡_addr
+, 13)) {
+
+555 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+p_txrx
+->
+p
+.p,
+
+556 
+out_pÜt
+, 
+pkt
+[2]);
+
+557 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask2
+);
+
+558 #iâdeà
+VNF_ACL
+
+
+560 
+	`´štf
+("Droppinghe IPv6…kt\n");
+
+561 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask2
+);
+
+569 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask2
+);
+
+573 ià((
+TXRX_DEBUG
+ > 2è&& (
+txrx_pkt_´št_couÁ
+ < 10)) {
+
+574 
+	`´št_pkt1
+(
+pkt
+[3]);
+
+575 
+txrx_pkt_´št_couÁ
+++;
+
+576 
+	`´štf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+578 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo3
+), *
+´ÙocÞ3
+, 
+ETH_TYPE_ARP
+,
+
+579 
+ETH_TYPE_IPV4
+, 
+IP_PROTOCOL_ICMP
+);
+
+583 
+ušt32_t
+ 
+d¡_addr_off£t3
+ =
+
+584 
+MBUF_HDR_ROOM
+ + 
+ETH_HDR_SIZE
+ + 
+IP_HDR_DST_ADR_OFST
+;
+
+585 
+ušt32_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
+(*
+‘h_´Ùo3
+è=ð
+ETH_TYPE_IPV4
+)
+
+590 
+	`´štf
+ ("%s:†škIp: %x, d¡_addr3: %x\n", 
+__FUNCTION__
+, 
+lšk
+->
+
+, *
+d¡_addr3
+);
+
+592 
+	`¹e_be_to_ýu_16
+(*
+‘h_´Ùo3
+)) {
+
+593 
+ETH_TYPE_ARP
+:
+
+594 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+p_txrx
+->
+p
+.p,
+
+595 
+out_pÜt
+, 
+pkt
+[3]);
+
+596 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask3
+);
+
+599 
+ETH_TYPE_IPV4
+:
+
+600 ià((*
+´ÙocÞ3
+ =ð
+IP_PROTOCOL_ICMP
+) &&
+
+601 (
+lšk
+->
+
+ =ð
+	`¹e_be_to_ýu_32
+(*
+d¡_addr3
+))) {
+
+602 ià(
+	`is_phy_pÜt_´iv‹
+(
+pkt
+[3]->
+pÜt
+)) {
+
+603 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+
+604 
+p_txrx
+->
+p
+.p,
+
+605 
+out_pÜt
+, 
+pkt
+[3]);
+
+606 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+
+607 
+p_txrx
+->
+p
+.p,
+
+608 
+pkt_mask3
+);
+
+614 #ifdeà
+IPV6
+
+
+615 
+ETH_TYPE_IPV6
+:
+
+616 ià(*
+´ÙocÞ3
+ =ð
+ICMPV6_PROTOCOL_ID
+) {
+
+617 #iâdeà
+VNF_ACL
+
+
+618 ià(!
+	`memcmp
+(
+v6_h3
+->
+d¡_addr
+, 
+lšk
+->
+v6
+, 16)
+
+619 || !
+	`memcmp
+(
+v6_h3
+->
+d¡_addr
+, 
+sÞic™ed_node_muÉiÿ¡_addr
+, 13)) {
+
+621 
+	`¹e_p–še_pÜt_out_·ck‘_š£¹
+(
+p_txrx
+->
+p
+.p,
+
+622 
+out_pÜt
+, 
+pkt
+[3]);
+
+623 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask3
+);
+
+624 #iâdeà
+VNF_ACL
+
+
+626 
+	`´štf
+("Droppinghe IPv6…kt\n");
+
+627 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask3
+);
+
+635 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p_txrx
+->
+p
+.p, 
+pkt_mask3
+);
+
+639 
+p_txrx
+->
+»ûivedPktCouÁ
+ += 4;
+
+641 
+	}
+}
+
+643 
+PIPELINE_TXRX_KEY_PORT_IN_AH
+(
+pÜt_š_ah_txrx
+, 
+pkt_wÜk_txrx
+, 
+pkt4_wÜk_txrx
+);
+
+645 *
+	$p–še_txrx_š™
+(
+p–še_·¿ms
+ *
+·¿ms
+,
+
+646 
+__¹e_unu£d
+ *
+¬g
+)
+
+648 
+p–še
+ *
+p
+;
+
+649 
+p–še_txrx
+ *
+p_±
+;
+
+650 
+ušt32_t
+ 
+size
+, 
+i
+, 
+š_pÜts_¬g_size
+;
+
+652 
+	`´štf
+("Start…ipeline_txrx_init\n");
+
+655 ià((
+·¿ms
+ =ð
+NULL
+) ||
+
+656 (
+·¿ms
+->
+n_pÜts_š
+ == 0) ||
+
+657 (
+·¿ms
+->
+n_pÜts_out
+ == 0))
+
+658  
+NULL
+;
+
+661 
+size
+ = 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+p–še_txrx
+));
+
+662 
+p
+ = 
+	`¹e_zm®loc
+(
+NULL
+, 
+size
+, 
+RTE_CACHE_LINE_SIZE
+);
+
+663 
+p_±
+ = (
+p–še_txrx
+ *)
+p
+;
+
+664 ià(
+p
+ =ð
+NULL
+)
+
+665  
+NULL
+;
+
+667 
+	`PLOG
+(
+p
+, 
+HIGH
+, "TXRX");
+
+668 
+	`¡rýy
+(
+p
+->
+Çme
+, 
+·¿ms
+->name);
+
+669 
+p
+->
+log_Ëv–
+ = 
+·¿ms
+->log_level;
+
+671 
+p_±
+->
+»ûivedPktCouÁ
+ = 0;
+
+672 
+p_±
+->
+drݳdPktCouÁ
+ = 0;
+
+673 
+i
+ = 0; i < 
+PIPELINE_MAX_PORT_IN
+; i++)
+
+674 
+p_±
+->
+lšks_m­
+[
+i
+] = 0xff;
+
+676 
+p_±
+->
+p–še_num
+ = 0;
+
+677 
+	`´štf
+("txrx initialization of variables done\n");
+
+680 ià(
+	`p–še_txrx_·r£_¬gs
+(
+p_±
+, 
+·¿ms
+))
+
+681  
+NULL
+;
+
+685 
+¹e_p–še_·¿ms
+ 
+p–še_·¿ms
+ = {
+
+686 .
+Çme
+ = "TXRX",
+
+687 .
+sock‘_id
+ = 
+·¿ms
+->socket_id,
+
+688 .
+off£t_pÜt_id
+ = 0,
+
+691 
+p
+->°ð
+	`¹e_p–še_ü—‹
+(&
+p–še_·¿ms
+);
+
+692 ià(
+p
+->°=ð
+NULL
+) {
+
+693 
+	`¹e_ä“
+(
+p
+);
+
+694  
+NULL
+;
+
+698 
+p
+->
+n_pÜts_š
+ = 
+·¿ms
+->n_ports_in;
+
+699 
+p
+->
+n_pÜts_out
+ = 
+·¿ms
+->n_ports_out;
+
+700 
+p
+->
+n_bËs
+ =…->
+n_pÜts_š
+;
+
+703 
+š_pÜts_¬g_size
+ =
+
+704 
+	`RTE_CACHE_LINE_ROUNDUP
+((
+
+705 (
+p–še_txrx_š_pÜt_h_¬g
+)) *
+
+706 (
+·¿ms
+->
+n_pÜts_š
+));
+
+707 
+p–še_txrx_š_pÜt_h_¬g
+ *
+­
+ =
+
+708 (
+p–še_txrx_š_pÜt_h_¬g
+ *)
+	`¹e_zm®loc
+(
+NULL
+,
+
+709 
+š_pÜts_¬g_size
+,
+
+710 
+RTE_CACHE_LINE_SIZE
+);
+
+711 ià(
+­
+ =ð
+NULL
+)
+
+712  
+NULL
+;
+
+714 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+716 (
+­
+[
+i
+]).
+p
+ = 
+p_±
+;
+
+717 (
+­
+[
+i
+]).
+š_pÜt_id
+ = i;
+
+718 
+¹e_p–še_pÜt_š_·¿ms
+ 
+pÜt_·¿ms
+ = {
+
+719 .
+Ýs
+ =
+
+720 
+	`p–še_pÜt_š_·¿ms_g‘_Ýs
+(&
+·¿ms
+->
+
+721 
+pÜt_š
+[
+i
+]),
+
+722 .
+¬g_ü—‹
+ =
+
+723 
+	`p–še_pÜt_š_·¿ms_cÚv”t
+(&
+·¿ms
+->
+
+724 
+pÜt_š
+[
+i
+]),
+
+725 .
+f_aùiÚ
+ = 
+NULL
+,
+
+726 .
+¬g_ah
+ = &(
+­
+[
+i
+]),
+
+727 .
+bur¡_size
+ = 
+·¿ms
+->
+pÜt_š
+[
+i
+].burst_size,
+
+730 
+pÜt_·¿ms
+.
+f_aùiÚ
+ = 
+pÜt_š_ah_txrx
+;
+
+732 
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_ü—‹
+(
+p
+->p,
+
+733 &
+pÜt_·¿ms
+,
+
+734 &
+p
+->
+pÜt_š_id
+[
+i
+]);
+
+736 ià(
+¡©us
+) {
+
+737 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+738 
+	`¹e_ä“
+(
+p
+);
+
+739  
+NULL
+;
+
+744 
+i
+ = 0; i < 
+p
+->
+n_pÜts_out
+; i++) {
+
+745 
+¹e_p–še_pÜt_out_·¿ms
+ 
+pÜt_·¿ms
+ = {
+
+746 .
+Ýs
+ =
+
+747 
+	`p–še_pÜt_out_·¿ms_g‘_Ýs
+(&
+·¿ms
+->
+
+748 
+pÜt_out
+[
+i
+]),
+
+749 .
+¬g_ü—‹
+ =
+
+750 
+	`p–še_pÜt_out_·¿ms_cÚv”t
+(&
+·¿ms
+->
+
+751 
+pÜt_out
+[
+i
+]),
+
+752 .
+f_aùiÚ
+ = 
+NULL
+,
+
+753 .
+¬g_ah
+ = 
+NULL
+,
+
+756 
+¡©us
+ = 
+	`¹e_p–še_pÜt_out_ü—‹
+(
+p
+->p,
+
+757 &
+pÜt_·¿ms
+,
+
+758 &
+p
+->
+pÜt_out_id
+[
+i
+]);
+
+760 ià(
+¡©us
+) {
+
+761 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+762 
+	`¹e_ä“
+(
+p
+);
+
+763  
+NULL
+;
+
+767 
+p–še_num
+ = 0;
+
+768 
+¡©us
+ = 
+	`ssÿnf
+(
+·¿ms
+->
+Çme
+, "PIPELINE%d", &
+p–še_num
+);
+
+769 ià(
+¡©us
+ < 0) {
+
+770 
+	`´štf
+("Unableo„ead…ipeline‚umber\n");
+
+771  
+NULL
+;
+
+773 
+p_±
+->
+p–še_num
+ = (
+ušt8_t
+)…ipeline_num;
+
+775 
+	`»gi¡”_p–še_Qs
+(
+p_±
+->
+p–še_num
+, 
+p
+);
+
+776 
+	`£t_lšk_m­
+(
+p_±
+->
+p–še_num
+, 
+p
+,…_±->
+lšks_m­
+);
+
+777 
+	`£t_ouÜt_id
+(
+p_±
+->
+p–še_num
+, 
+p
+,…_±->
+ouÜt_id
+);
+
+780 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+781 
+¹e_p–še_bË_·¿ms
+ 
+bË_·¿ms
+ = {
+
+782 .
+Ýs
+ = &
+¹e_bË_¡ub_Ýs
+,
+
+783 .
+¬g_ü—‹
+ = 
+NULL
+,
+
+784 .
+f_aùiÚ_h™
+ = 
+NULL
+,
+
+785 .
+f_aùiÚ_miss
+ = 
+NULL
+,
+
+786 .
+¬g_ah
+ = 
+NULL
+,
+
+787 .
+aùiÚ_d©a_size
+ = 0,
+
+790 
+¡©us
+ = 
+	`¹e_p–še_bË_ü—‹
+(
+p
+->p,
+
+791 &
+bË_·¿ms
+,
+
+792 &
+p
+->
+bË_id
+[
+i
+]);
+
+794 ià(
+¡©us
+) {
+
+795 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+796 
+	`¹e_ä“
+(
+p
+);
+
+797  
+NULL
+;
+
+802 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+803 
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_cÚÃù_to_bË
+(
+p
+->p,
+
+804 
+p
+->
+
+805 
+pÜt_š_id
+
+
+806 [
+i
+],
+
+807 
+p
+->
+
+808 
+bË_id
+[
+i
+]);
+
+810 ià(
+¡©us
+) {
+
+811 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+812 
+	`¹e_ä“
+(
+p
+);
+
+813  
+NULL
+;
+
+818 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+819 
+¹e_p–še_bË_’Œy
+ 
+deçuÉ_’Œy
+ = {
+
+820 .
+aùiÚ
+ = 
+RTE_PIPELINE_ACTION_PORT
+,
+
+821 .
+pÜt_id
+ = 
+p
+->
+pÜt_out_id
+[
+i
+],
+
+824 
+¹e_p–še_bË_’Œy
+ *
+deçuÉ_’Œy_±r
+;
+
+826 
+¡©us
+ = 
+	`¹e_p–še_bË_deçuÉ_’Œy_add
+(
+
+827 
+p
+->p,
+
+828 
+p
+->
+
+829 
+bË_id
+[
+i
+],
+
+830 &
+deçuÉ_’Œy
+,
+
+831 &
+deçuÉ_’Œy_±r
+);
+
+833 ià(
+¡©us
+) {
+
+834 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+835 
+	`¹e_ä“
+(
+p
+);
+
+836  
+NULL
+;
+
+841 
+i
+ = 0; i < 
+p
+->
+n_pÜts_š
+; i++) {
+
+842 
+¡©us
+ = 
+	`¹e_p–še_pÜt_š_’abË
+(
+p
+->p,
+
+843 
+p
+->
+pÜt_š_id
+[
+i
+]);
+
+845 ià(
+¡©us
+) {
+
+846 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+847 
+	`¹e_ä“
+(
+p
+);
+
+848  
+NULL
+;
+
+853 ià(
+	`¹e_p–še_check
+(
+p
+->p) < 0) {
+
+854 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+855 
+	`¹e_ä“
+(
+p
+);
+
+856  
+NULL
+;
+
+860 
+p
+->
+n_msgq
+ = 
+·¿ms
+->n_msgq;
+
+861 
+i
+ = 0; i < 
+p
+->
+n_msgq
+; i++)
+
+862 
+p
+->
+msgq_š
+[
+i
+] = 
+·¿ms
+->msgq_in[i];
+
+863 
+i
+ = 0; i < 
+p
+->
+n_msgq
+; i++)
+
+864 
+p
+->
+msgq_out
+[
+i
+] = 
+·¿ms
+->msgq_out[i];
+
+867 
+	`memýy
+(
+p
+->
+hªdËrs
+, handlers, (p->handlers));
+
+869  
+p
+;
+
+870 
+	}
+}
+
+872 
+	$p–še_txrx_ä“
+(*
+p–še
+)
+
+874 
+p–še
+ *
+p
+ = (pipeline *)pipeline;
+
+877 ià(
+p
+ =ð
+NULL
+)
+
+881 
+	`¹e_p–še_ä“
+(
+p
+->p);
+
+882 
+	`¹e_ä“
+(
+p
+);
+
+884 
+	}
+}
+
+886 
+	$p–še_txrx_tim”
+(*
+p–še
+)
+
+888 
+p–še
+ *
+p
+ = (pipeline *)pipeline;
+
+890 
+	`p–še_msg_»q_hªdË
+(
+p
+);
+
+891 
+	`¹e_p–še_æush
+(
+p
+->p);
+
+894 
+	}
+}
+
+897 
+	$p–še_txrx_Œack
+(*
+p–še
+, 
+ušt32_t
+ 
+pÜt_š
+, ušt32_ˆ*
+pÜt_out
+)
+
+899 
+p–še
+ *
+p
+ = (pipeline *)pipeline;
+
+902 ià((
+p
+ =ð
+NULL
+è|| (
+pÜt_š
+ >ðp->
+n_pÜts_š
+è|| (
+pÜt_out
+ == NULL))
+
+905 *
+pÜt_out
+ = 
+pÜt_š
+ / 
+p
+->
+n_pÜts_š
+;
+
+907 
+	}
+}
+
+909 
+p–še_be_Ýs
+ 
+	gp–še_txrx_be_Ýs
+ = {
+
+910 .
+f_š™
+ = 
+p–še_txrx_š™
+,
+
+911 .
+	gf_ä“
+ = 
+p–še_txrx_ä“
+,
+
+912 .
+	gf_run
+ = 
+NULL
+,
+
+913 .
+	gf_tim”
+ = 
+p–še_txrx_tim”
+,
+
+914 .
+	gf_Œack
+ = 
+p–še_txrx_Œack
+,
+
+	@VIL/pipeline_txrx/pipeline_txrx_be.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_TXRX_BE_H__
+
+
+18 
+	#__INCLUDE_PIPELINE_TXRX_BE_H__
+
+
+	)
+
+20 
+	~"p–še_commÚ_be.h
+"
+
+21 
+	#PIPELINE_TXRX_KEY_PORT_IN_AH
+(
+f_ah
+, 
+f_pkt_wÜk
+, 
+f_pkt4_wÜk
+) \
+
+23 
+	`f_ah
+( \
+
+24 
+__¹e_unu£d
+ 
+¹e_p–še
+ *
+¹e_p
+, \
+
+25 
+¹e_mbuf
+ **
+pkts
+, \
+
+26 
+ušt32_t
+ 
+n_pkts
+, \
+
+27 *
+¬g
+) \
+
+29 
+ušt32_t
+ 
+i
+, 
+j
+; \
+
+31 
+j
+ = 0; j < 
+n_pkts
+; j++) \
+
+32 
+	`¹e_´eãtch0
+(
+pkts
+[
+j
+]); \
+
+34 
+pkt_bur¡_út
+ = 0; \
+
+35 
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) \
+
+36 
+	`f_pkt4_wÜk
+(&
+pkts
+[
+i
+], i, 
+¬g
+); \
+
+38  ; 
+i
+ < 
+n_pkts
+; i++) \
+
+39 
+	`f_pkt_wÜk
+(
+pkts
+[
+i
+], i, 
+¬g
+); \
+
+43 }
+
+	)
+
+45 

+p–še_be_Ýs
+ 
+p–še_txrx_be_Ýs
+;
+
+49 
+	ep–še_txrx_msg_»q_ty³
+ {
+
+50 
+	mPIPELINE_TXRX_MSG_REQ_ENTRY_DBG
+,
+
+51 
+	mPIPELINE_TXRX_MSG_REQS
+
+
+56 
+	sp–še_txrx_’Œy_dbg_msg_»q
+ {
+
+57 
+p–še_msg_»q_ty³
+ 
+	mty³
+;
+
+58 
+p–še_txrx_msg_»q_ty³
+ 
+	msubty³
+;
+
+61 
+ušt8_t
+ 
+	md©a
+[5];
+
+67 
+	sp–še_txrx_š_pÜt_h_¬g
+ {
+
+68 
+p–še_txrx
+ *
+	mp
+;
+
+69 
+ušt8_t
+ 
+	mš_pÜt_id
+;
+
+72 
+	sp–še_txrx_’Œy_dbg_msg_r¥
+ {
+
+73 
+	m¡©us
+;
+
+	@vnf_common/app.h
+
+17 #iâdeà
+__INCLUDE_APP_H__
+
+
+18 
+	#__INCLUDE_APP_H__
+
+
+	)
+
+20 
+	~<¡dšt.h
+>
+
+21 
+	~<¡ršg.h
+>
+
+23 
+	~<¹e_commÚ.h
+>
+
+24 
+	~<¹e_mempoÞ.h
+>
+
+25 
+	~<¹e_ršg.h
+>
+
+26 
+	~<¹e_sched.h
+>
+
+27 
+	~<¹e_tim”.h
+>
+
+28 
+	~<cmdlše_·r£.h
+>
+
+30 
+	~<¹e_‘hdev.h
+>
+
+32 
+	~"ýu_cÜe_m­.h
+"
+
+33 
+	~"p–še.h
+"
+
+35 
+	#APP_PARAM_NAME_SIZE
+ 
+PIPELINE_NAME_SIZE
+
+
+	)
+
+36 
+	#APP_LINK_PCI_BDF_SIZE
+ 32
+
+	)
+
+37 
+­p_lšk_·¿ms
+ *
+	gfdœ_p_lšk
+;
+
+38 
+	s­p_mempoÞ_·¿ms
+ {
+
+39 *
+	mÇme
+;
+
+40 
+ušt32_t
+ 
+	m·r£d
+;
+
+41 
+ušt32_t
+ 
+	mbufãr_size
+;
+
+42 
+ušt32_t
+ 
+	mpoÞ_size
+;
+
+43 
+ušt32_t
+ 
+	mÿche_size
+;
+
+44 
+ušt32_t
+ 
+	mýu_sock‘_id
+;
+
+47 
+	s­p_lšk_·¿ms
+ {
+
+48 *
+	mÇme
+;
+
+49 
+ušt32_t
+ 
+	m·r£d
+;
+
+50 
+ušt32_t
+ 
+	mpmd_id
+;
+
+51 
+ušt32_t
+ 
+	m¬p_q
+;
+
+52 
+ušt32_t
+ 
+	mtý_syn_q
+;
+
+53 
+ušt32_t
+ 
+	m_loÿl_q
+;
+
+54 
+ušt32_t
+ 
+	mtý_loÿl_q
+;
+
+55 
+ušt32_t
+ 
+	mudp_loÿl_q
+;
+
+56 
+ušt32_t
+ 
+	msùp_loÿl_q
+;
+
+57 
+ušt32_t
+ 
+	m¡©e
+;
+
+58 
+ušt32_t
+ 
+	m
+;
+
+59 
+ušt8_t
+ 
+	mv6
+[16];
+
+60 
+ušt32_t
+ 
+	md•th
+;
+
+61 
+ušt32_t
+ 
+	md•th_v6
+;
+
+62 
+ušt64_t
+ 
+	mmac_addr
+;
+
+63 
+	mpci_bdf
+[
+APP_LINK_PCI_BDF_SIZE
+];
+
+65 
+¹e_‘h_cÚf
+ 
+	mcÚf
+;
+
+66 
+ušt8_t
+ 
+	m´omisc
+;
+
+69 
+	s­p_pktq_hwq_š_·¿ms
+ {
+
+70 *
+	mÇme
+;
+
+71 
+ušt32_t
+ 
+	m·r£d
+;
+
+72 
+ušt32_t
+ 
+	mmempoÞ_id
+;
+
+73 
+ušt32_t
+ 
+	msize
+;
+
+74 
+ušt32_t
+ 
+	mbur¡
+;
+
+76 
+¹e_‘h_rxcÚf
+ 
+	mcÚf
+;
+
+79 
+	s­p_pktq_hwq_out_·¿ms
+ {
+
+80 *
+	mÇme
+;
+
+81 
+ušt32_t
+ 
+	m·r£d
+;
+
+82 
+ušt32_t
+ 
+	msize
+;
+
+83 
+ušt32_t
+ 
+	mbur¡
+;
+
+84 
+ušt32_t
+ 
+	mdrÝËss
+;
+
+85 
+ušt64_t
+ 
+	mn_»Œ›s
+;
+
+86 
+¹e_‘h_txcÚf
+ 
+	mcÚf
+;
+
+89 
+	s­p_pktq_swq_·¿ms
+ {
+
+90 *
+	mÇme
+;
+
+91 
+ušt32_t
+ 
+	m·r£d
+;
+
+92 
+ušt32_t
+ 
+	msize
+;
+
+93 
+ušt32_t
+ 
+	mbur¡_»ad
+;
+
+94 
+ušt32_t
+ 
+	mbur¡_wr™e
+;
+
+95 
+ušt32_t
+ 
+	mdrÝËss
+;
+
+96 
+ušt64_t
+ 
+	mn_»Œ›s
+;
+
+97 
+ušt32_t
+ 
+	mýu_sock‘_id
+;
+
+98 
+ušt32_t
+ 
+	mv4_äag
+;
+
+99 
+ušt32_t
+ 
+	mv6_äag
+;
+
+100 
+ušt32_t
+ 
+	mv4_¿s
+;
+
+101 
+ušt32_t
+ 
+	mv6_¿s
+;
+
+102 
+ušt32_t
+ 
+	mmtu
+;
+
+103 
+ušt32_t
+ 
+	mm‘ad©a_size
+;
+
+104 
+ušt32_t
+ 
+	mmempoÞ_dœeù_id
+;
+
+105 
+ušt32_t
+ 
+	mmempoÞ_šdœeù_id
+;
+
+108 #iâdeà
+APP_FILE_NAME_SIZE
+
+
+109 
+	#APP_FILE_NAME_SIZE
+ 256
+
+	)
+
+112 #iâdeà
+APP_MAX_SCHED_SUBPORTS
+
+
+113 
+	#APP_MAX_SCHED_SUBPORTS
+ 8
+
+	)
+
+116 #iâdeà
+APP_MAX_SCHED_PIPES
+
+
+117 
+	#APP_MAX_SCHED_PIPES
+ 4096
+
+	)
+
+120 
+	s­p_pktq_tm_·¿ms
+ {
+
+121 *
+	mÇme
+;
+
+122 
+ušt32_t
+ 
+	m·r£d
+;
+
+123 cÚ¡ *
+	mfže_Çme
+;
+
+124 
+¹e_sched_pÜt_·¿ms
+ 
+	msched_pÜt_·¿ms
+;
+
+125 
+¹e_sched_subpÜt_·¿ms
+
+
+126 
+	msched_subpÜt_·¿ms
+[
+APP_MAX_SCHED_SUBPORTS
+];
+
+127 
+¹e_sched_pe_·¿ms
+
+
+128 
+	msched_pe_´ofžes
+[
+RTE_SCHED_PIPE_PROFILES_PER_PORT
+];
+
+129 
+	msched_pe_to_´ofže
+[
+APP_MAX_SCHED_SUBPORTS
+ * 
+APP_MAX_SCHED_PIPES
+];
+
+130 
+ušt32_t
+ 
+	mbur¡_»ad
+;
+
+131 
+ušt32_t
+ 
+	mbur¡_wr™e
+;
+
+134 
+	s­p_pktq_sourû_·¿ms
+ {
+
+135 *
+	mÇme
+;
+
+136 
+ušt32_t
+ 
+	m·r£d
+;
+
+137 
+ušt32_t
+ 
+	mmempoÞ_id
+;
+
+138 
+ušt32_t
+ 
+	mbur¡
+;
+
+139 *
+	mfže_Çme
+;
+
+140 
+ušt32_t
+ 
+	mn_by‹s_³r_pkt
+;
+
+143 
+	s­p_pktq_sšk_·¿ms
+ {
+
+144 *
+	mÇme
+;
+
+145 
+ušt8_t
+ 
+	m·r£d
+;
+
+146 *
+	mfže_Çme
+;
+
+147 
+ušt32_t
+ 
+	mn_pkts_to_dump
+;
+
+150 
+	s­p_msgq_·¿ms
+ {
+
+151 *
+	mÇme
+;
+
+152 
+ušt32_t
+ 
+	m·r£d
+;
+
+153 
+ušt32_t
+ 
+	msize
+;
+
+154 
+ušt32_t
+ 
+	mýu_sock‘_id
+;
+
+157 
+	e­p_pktq_š_ty³
+ {
+
+158 
+	mAPP_PKTQ_IN_HWQ
+,
+
+159 
+	mAPP_PKTQ_IN_SWQ
+,
+
+160 
+	mAPP_PKTQ_IN_TM
+,
+
+161 
+	mAPP_PKTQ_IN_SOURCE
+,
+
+164 
+	s­p_pktq_š_·¿ms
+ {
+
+165 
+­p_pktq_š_ty³
+ 
+	mty³
+;
+
+166 
+ušt32_t
+ 
+	mid
+;
+
+169 
+	e­p_pktq_out_ty³
+ {
+
+170 
+	mAPP_PKTQ_OUT_HWQ
+,
+
+171 
+	mAPP_PKTQ_OUT_SWQ
+,
+
+172 
+	mAPP_PKTQ_OUT_TM
+,
+
+173 
+	mAPP_PKTQ_OUT_SINK
+,
+
+176 
+	s­p_pktq_out_·¿ms
+ {
+
+177 
+­p_pktq_out_ty³
+ 
+	mty³
+;
+
+178 
+ušt32_t
+ 
+	mid
+;
+
+181 #iâdeà
+APP_PIPELINE_TYPE_SIZE
+
+
+182 
+	#APP_PIPELINE_TYPE_SIZE
+ 64
+
+	)
+
+185 
+	#APP_MAX_PIPELINE_PKTQ_IN
+ 
+PIPELINE_MAX_PORT_IN
+
+
+	)
+
+186 
+	#APP_MAX_PIPELINE_PKTQ_OUT
+ 
+PIPELINE_MAX_PORT_OUT
+
+
+	)
+
+187 
+	#APP_MAX_PIPELINE_MSGQ_IN
+ 
+PIPELINE_MAX_MSGQ_IN
+
+
+	)
+
+188 
+	#APP_MAX_PIPELINE_MSGQ_OUT
+ 
+PIPELINE_MAX_MSGQ_OUT
+
+
+	)
+
+190 
+	#APP_MAX_PIPELINE_ARGS
+ 
+PIPELINE_MAX_ARGS
+
+
+	)
+
+192 
+	s­p_p–še_·¿ms
+ {
+
+193 *
+	mÇme
+;
+
+194 
+ušt8_t
+ 
+	m·r£d
+;
+
+196 
+	mty³
+[
+APP_PIPELINE_TYPE_SIZE
+];
+
+198 
+ušt32_t
+ 
+	msock‘_id
+;
+
+199 
+ušt32_t
+ 
+	mcÜe_id
+;
+
+200 
+ušt32_t
+ 
+	mhy³r_th_id
+;
+
+202 
+­p_pktq_š_·¿ms
+ 
+	mpktq_š
+[
+APP_MAX_PIPELINE_PKTQ_IN
+];
+
+203 
+­p_pktq_out_·¿ms
+ 
+	mpktq_out
+[
+APP_MAX_PIPELINE_PKTQ_OUT
+];
+
+204 
+ušt32_t
+ 
+	mmsgq_š
+[
+APP_MAX_PIPELINE_MSGQ_IN
+];
+
+205 
+ušt32_t
+ 
+	mmsgq_out
+[
+APP_MAX_PIPELINE_MSGQ_OUT
+];
+
+207 
+ušt32_t
+ 
+	mn_pktq_š
+;
+
+208 
+ušt32_t
+ 
+	mn_pktq_out
+;
+
+209 
+ušt32_t
+ 
+	mn_msgq_š
+;
+
+210 
+ušt32_t
+ 
+	mn_msgq_out
+;
+
+212 
+ušt32_t
+ 
+	mtim”_³riod
+;
+
+214 *
+	m¬gs_Çme
+[
+APP_MAX_PIPELINE_ARGS
+];
+
+215 *
+	m¬gs_v®ue
+[
+APP_MAX_PIPELINE_ARGS
+];
+
+216 
+ušt32_t
+ 
+	mn_¬gs
+;
+
+219 
+	s­p_p–še_d©a
+ {
+
+220 *
+	mbe
+;
+
+221 *
+	mã
+;
+
+222 
+p–še_ty³
+ *
+	m±y³
+;
+
+223 
+ušt64_t
+ 
+	mtim”_³riod
+;
+
+224 
+ušt32_t
+ 
+	m’abËd
+;
+
+227 
+	s­p_th»ad_p–še_d©a
+ {
+
+228 
+ušt32_t
+ 
+	mp–še_id
+;
+
+229 *
+	mbe
+;
+
+230 
+p–še_be_Ý_run
+ 
+	mf_run
+;
+
+231 
+p–še_be_Ý_tim”
+ 
+	mf_tim”
+;
+
+232 
+ušt64_t
+ 
+	mtim”_³riod
+;
+
+233 
+ušt64_t
+ 
+	md—dlše
+;
+
+236 #iâdeà
+APP_MAX_THREAD_PIPELINES
+
+
+237 
+	#APP_MAX_THREAD_PIPELINES
+ 32
+
+	)
+
+240 #iâdeà
+APP_THREAD_TIMER_PERIOD
+
+
+241 
+	#APP_THREAD_TIMER_PERIOD
+ 1
+
+	)
+
+244 
+	s­p_th»ad_d©a
+ {
+
+245 
+­p_th»ad_p–še_d©a
+ 
+	m»guÏr
+[
+APP_MAX_THREAD_PIPELINES
+];
+
+246 
+­p_th»ad_p–še_d©a
+ 
+	mcu¡om
+[
+APP_MAX_THREAD_PIPELINES
+];
+
+248 
+ušt32_t
+ 
+	mn_»guÏr
+;
+
+249 
+ušt32_t
+ 
+	mn_cu¡om
+;
+
+251 
+ušt64_t
+ 
+	mtim”_³riod
+;
+
+252 
+ušt64_t
+ 
+	mth»ad_»q_d—dlše
+;
+
+254 
+ušt64_t
+ 
+	md—dlše
+;
+
+256 
+¹e_ršg
+ *
+	mmsgq_š
+;
+
+257 
+¹e_ršg
+ *
+	mmsgq_out
+;
+
+259 
+ušt64_t
+ 
+	mh—droom_time
+;
+
+260 
+ušt64_t
+ 
+	mh—droom_cyþes
+;
+
+261 
+	mh—droom_¿tio
+;
+
+264 #iâdeà
+APP_MAX_LINKS
+
+
+265 
+	#APP_MAX_LINKS
+ 32
+
+	)
+
+268 
+	s­p_—l_·¿ms
+ {
+
+270 *
+	mcÜem­
+;
+
+273 
+ušt32_t
+ 
+	mma¡”_lcÜe_´e£Á
+;
+
+274 
+ušt32_t
+ 
+	mma¡”_lcÜe
+;
+
+277 
+ušt32_t
+ 
+	mchªÃls_´e£Á
+;
+
+278 
+ušt32_t
+ 
+	mchªÃls
+;
+
+281 
+ušt32_t
+ 
+	mmemÜy_´e£Á
+;
+
+282 
+ušt32_t
+ 
+	mmemÜy
+;
+
+285 
+ušt32_t
+ 
+	m¿nks_´e£Á
+;
+
+286 
+ušt32_t
+ 
+	m¿nks
+;
+
+289 *
+	mpci_bÏckli¡
+[
+APP_MAX_LINKS
+];
+
+292 *
+	mpci_wh™–i¡
+[
+APP_MAX_LINKS
+];
+
+295 *
+	mvdev
+[
+APP_MAX_LINKS
+];
+
+298 
+ušt32_t
+ 
+	mvmw¬e_tsc_m­_´e£Á
+;
+
+299 
+	mvmw¬e_tsc_m­
+;
+
+302 *
+	m´oc_ty³
+;
+
+305 *
+	msy¦og
+;
+
+308 
+ušt32_t
+ 
+	mlog_Ëv–_´e£Á
+;
+
+309 
+ušt32_t
+ 
+	mlog_Ëv–
+;
+
+312 
+ušt32_t
+ 
+	mv”siÚ_´e£Á
+;
+
+313 
+	mv”siÚ
+;
+
+316 
+ušt32_t
+ 
+	mh–p_´e£Á
+;
+
+317 
+	mh–p
+;
+
+320 
+ušt32_t
+ 
+	mno_huge_´e£Á
+;
+
+321 
+	mno_huge
+;
+
+324 
+ušt32_t
+ 
+	mno_pci_´e£Á
+;
+
+325 
+	mno_pci
+;
+
+328 
+ušt32_t
+ 
+	mno_h³t_´e£Á
+;
+
+329 
+	mno_h³t
+;
+
+332 
+ušt32_t
+ 
+	mno_shcÚf_´e£Á
+;
+
+333 
+	mno_shcÚf
+;
+
+336 *
+	madd_driv”
+;
+
+339 *
+	msock‘_mem
+;
+
+342 *
+	mhuge_dœ
+;
+
+345 *
+	mfže_´efix
+;
+
+348 *
+	mba£_vœddr
+;
+
+351 
+ušt32_t
+ 
+	mü—‹_uio_dev_´e£Á
+;
+
+352 
+	mü—‹_uio_dev
+;
+
+355 *
+	mvfio_šŒ
+;
+
+358 
+ušt32_t
+ 
+	mx’_dom0_´e£Á
+;
+
+359 
+	mx’_dom0
+;
+
+362 #iâdeà
+APP_APPNAME_SIZE
+
+
+363 
+	#APP_APPNAME_SIZE
+ 256
+
+	)
+
+366 #iâdeà
+APP_MAX_MEMPOOLS
+
+
+367 
+	#APP_MAX_MEMPOOLS
+ 8
+
+	)
+
+370 #iâdeà
+APP_LINK_MAX_HWQ_IN
+
+
+371 
+	#APP_LINK_MAX_HWQ_IN
+ 64
+
+	)
+
+374 #iâdeà
+APP_LINK_MAX_HWQ_OUT
+
+
+375 
+	#APP_LINK_MAX_HWQ_OUT
+ 64
+
+	)
+
+378 
+	#APP_MAX_HWQ_IN
+ (
+APP_MAX_LINKS
+ * 
+APP_LINK_MAX_HWQ_IN
+)
+
+	)
+
+380 
+	#APP_MAX_HWQ_OUT
+ (
+APP_MAX_LINKS
+ * 
+APP_LINK_MAX_HWQ_OUT
+)
+
+	)
+
+382 #iâdeà
+APP_MAX_PKTQ_SWQ
+
+
+383 
+	#APP_MAX_PKTQ_SWQ
+ 256
+
+	)
+
+386 
+	#APP_MAX_PKTQ_TM
+ 
+APP_MAX_LINKS
+
+
+	)
+
+388 #iâdeà
+APP_MAX_PKTQ_SOURCE
+
+
+389 
+	#APP_MAX_PKTQ_SOURCE
+ 32
+
+	)
+
+392 #iâdeà
+APP_MAX_PKTQ_SINK
+
+
+393 
+	#APP_MAX_PKTQ_SINK
+ 32
+
+	)
+
+396 #iâdeà
+APP_MAX_MSGQ
+
+
+397 
+	#APP_MAX_MSGQ
+ 128
+
+	)
+
+400 #iâdeà
+APP_MAX_PIPELINES
+
+
+401 
+	#APP_MAX_PIPELINES
+ 64
+
+	)
+
+404 #iâdeà
+APP_EAL_ARGC
+
+
+405 
+	#APP_EAL_ARGC
+ 32
+
+	)
+
+408 #iâdeà
+APP_MAX_PIPELINE_TYPES
+
+
+409 
+	#APP_MAX_PIPELINE_TYPES
+ 64
+
+	)
+
+412 #iâdeà
+APP_MAX_THREADS
+
+
+413 
+	#APP_MAX_THREADS
+ 
+RTE_MAX_LCORE
+
+
+	)
+
+416 #iâdeà
+APP_MAX_CMDS
+
+
+417 
+	#APP_MAX_CMDS
+ 128
+
+	)
+
+420 #iâdeà
+APP_THREAD_HEADROOM_STATS_COLLECT
+
+
+421 
+	#APP_THREAD_HEADROOM_STATS_COLLECT
+ 1
+
+	)
+
+424 
+ušt8_t
+ 
+	g’abË_hwlb
+;
+
+425 
+ušt8_t
+ 
+	g’abË_æow_dœ
+;
+
+427 
+	#APP_CORE_MASK_SIZE
+ \
+
+428 (
+RTE_MAX_LCORE
+ / 64 + ((RTE_MAX_LCORE % 64è? 1 : 0))
+
+	)
+
+430 
+	s­p_·¿ms
+ {
+
+432 
+	m­p_Çme
+[
+APP_APPNAME_SIZE
+];
+
+433 cÚ¡ *
+	mcÚfig_fže
+;
+
+434 cÚ¡ *
+	msüt_fže
+;
+
+435 cÚ¡ *
+	m·r£r_fže
+;
+
+436 cÚ¡ *
+	mouut_fže
+;
+
+437 cÚ¡ *
+	m´•roc
+;
+
+438 cÚ¡ *
+	m´•roc_¬gs
+;
+
+439 
+ušt64_t
+ 
+	mpÜt_mask
+;
+
+440 
+ušt32_t
+ 
+	mlog_Ëv–
+;
+
+442 
+­p_—l_·¿ms
+ 
+	m—l_·¿ms
+;
+
+443 
+­p_mempoÞ_·¿ms
+ 
+	mmempoÞ_·¿ms
+[
+APP_MAX_MEMPOOLS
+];
+
+444 
+­p_lšk_·¿ms
+ 
+	mlšk_·¿ms
+[
+APP_MAX_LINKS
+];
+
+445 
+­p_pktq_hwq_š_·¿ms
+ 
+	mhwq_š_·¿ms
+[
+APP_MAX_HWQ_IN
+];
+
+446 
+­p_pktq_hwq_out_·¿ms
+ 
+	mhwq_out_·¿ms
+[
+APP_MAX_HWQ_OUT
+];
+
+447 
+­p_pktq_swq_·¿ms
+ 
+	mswq_·¿ms
+[
+APP_MAX_PKTQ_SWQ
+];
+
+448 
+­p_pktq_tm_·¿ms
+ 
+	mtm_·¿ms
+[
+APP_MAX_PKTQ_TM
+];
+
+449 
+­p_pktq_sourû_·¿ms
+ 
+	msourû_·¿ms
+[
+APP_MAX_PKTQ_SOURCE
+];
+
+450 
+­p_pktq_sšk_·¿ms
+ 
+	msšk_·¿ms
+[
+APP_MAX_PKTQ_SINK
+];
+
+451 
+­p_msgq_·¿ms
+ 
+	mmsgq_·¿ms
+[
+APP_MAX_MSGQ
+];
+
+452 
+­p_p–še_·¿ms
+ 
+	mp–še_·¿ms
+[
+APP_MAX_PIPELINES
+];
+
+454 
+ušt32_t
+ 
+	mn_mempoÞs
+;
+
+455 
+ušt32_t
+ 
+	mn_lšks
+;
+
+456 
+ušt32_t
+ 
+	mn_pktq_hwq_š
+;
+
+457 
+ušt32_t
+ 
+	mn_pktq_hwq_out
+;
+
+458 
+ušt32_t
+ 
+	mn_pktq_swq
+;
+
+459 
+ušt32_t
+ 
+	mn_pktq_tm
+;
+
+460 
+ušt32_t
+ 
+	mn_pktq_sourû
+;
+
+461 
+ušt32_t
+ 
+	mn_pktq_sšk
+;
+
+462 
+ušt32_t
+ 
+	mn_msgq
+;
+
+463 
+ušt32_t
+ 
+	mn_p–šes
+;
+
+465 
+ušt32_t
+ 
+	mh—d”_csum_»q
+;
+
+466 
+ušt32_t
+ 
+	mn_hwlb_q
+;
+
+468 *
+	m—l_¬gv
+[1 + 
+APP_EAL_ARGC
+];
+
+469 
+ýu_cÜe_m­
+ *
+	mcÜe_m­
+;
+
+470 
+ušt64_t
+ 
+	mcÜe_mask
+[
+APP_CORE_MASK_SIZE
+];
+
+471 
+¹e_mempoÞ
+ *
+	mmempoÞ
+[
+APP_MAX_MEMPOOLS
+];
+
+472 
+¹e_ršg
+ *
+	mswq
+[
+APP_MAX_PKTQ_SWQ
+];
+
+473 
+¹e_sched_pÜt
+ *
+	mtm
+[
+APP_MAX_PKTQ_TM
+];
+
+474 
+¹e_ršg
+ *
+	mmsgq
+[
+APP_MAX_MSGQ
+];
+
+475 
+p–še_ty³
+ 
+	mp–še_ty³
+[
+APP_MAX_PIPELINE_TYPES
+];
+
+476 
+­p_p–še_d©a
+ 
+	mp–še_d©a
+[
+APP_MAX_PIPELINES
+];
+
+477 
+­p_th»ad_d©a
+ 
+	mth»ad_d©a
+[
+APP_MAX_THREADS
+];
+
+478 
+cmdlše_·r£_ùx_t
+ 
+	mcmds
+[
+APP_MAX_CMDS
+ + 1];
+
+480 
+	m—l_¬gc
+;
+
+481 
+ušt32_t
+ 
+	mn_p–še_ty³s
+;
+
+482 
+ušt32_t
+ 
+	mn_cmds
+;
+
+485 
+	#APP_PARAM_VALID
+(
+obj
+è((obj)->
+Çme
+ !ð
+NULL
+)
+
+	)
+
+487 
+	#APP_PARAM_COUNT
+(
+obj_¬¿y
+, 
+n_objs
+) \
+
+489 
+size_t
+ 
+i
+; \
+
+491 
+n_objs
+ = 0; \
+
+492 
+i
+ = 0; i < 
+	`RTE_DIM
+(
+obj_¬¿y
+); i++) \
+
+493 ià(
+	`APP_PARAM_VALID
+(&((
+obj_¬¿y
+)[
+i
+]))) \
+
+494 
+n_objs
+++; \
+
+495 }
+
+	)
+
+497 
+	#APP_PARAM_FIND
+(
+obj_¬¿y
+, 
+key
+) \
+
+499 
+ssize_t
+ 
+obj_idx
+; \
+
+500 cÚ¡ 
+ssize_t
+ 
+obj_couÁ
+ = 
+	`RTE_DIM
+(
+obj_¬¿y
+); \
+
+502 
+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 
+	#APP_PARAM_FIND_BY_ID
+(
+obj_¬¿y
+, 
+´efix
+, 
+id
+, 
+obj
+) \
+
+514 
+Çme
+[
+APP_PARAM_NAME_SIZE
+]; \
+
+515 
+ssize_t
+ 
+pos
+; \
+
+517 
+	`¥rštf
+(
+Çme
+, 
+´efix
+ "%" 
+PRIu32
+, 
+id
+); \
+
+518 
+pos
+ = 
+	`APP_PARAM_FIND
+(
+obj_¬¿y
+, 
+Çme
+); \
+
+519 
+obj
+ = (
+pos
+ < 0è? 
+NULL
+ : &((
+obj_¬¿y
+)[pos]); \
+
+520 } 0)
+
+	)
+
+522 
+	#APP_PARAM_GET_ID
+(
+obj
+, 
+´efix
+, 
+id
+) \
+
+524 
+	`ssÿnf
+(
+obj
+->
+Çme
+, 
+´efix
+ "%" 
+SCNu32
+, &
+id
+); \
+
+526 
+
+	)
+
+527 
+	#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 
+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 
+	#APP_CHECK
+(
+exp
+, 
+fmt
+, ...) \
+
+551 ià(!(
+exp
+)) { \
+
+552 
+	`årštf
+(
+¡d”r
+, 
+fmt
+ "\n", ## 
+__VA_ARGS__
+); \
+
+553 
+	`abÜt
+(); \
+
+555 } 0)
+
+	)
+
+557 
+	e­p_log_Ëv–
+ {
+
+558 
+	mAPP_LOG_LEVEL_HIGH
+ = 1,
+
+559 
+	mAPP_LOG_LEVEL_LOW
+,
+
+560 
+	mAPP_LOG_LEVELS
+
+
+563 
+	#APP_LOG
+(
+­p
+, 
+Ëv–
+, 
+fmt
+, ...) \
+
+565 ià(
+­p
+->
+log_Ëv–
+ >ð
+APP_LOG_LEVEL_
+ ## 
+Ëv–
+) \
+
+566 
+	`årštf
+(
+¡dout
+, "[APP] " 
+fmt
+ "\n", ## 
+__VA_ARGS__
+); \
+
+567 } 0)
+
+	)
+
+569 
+šlše
+ 
+ušt32_t
+
+
+570 
+	$­p_lšk_g‘_n_rxq
+(
+­p_·¿ms
+ *
+­p
+, 
+­p_lšk_·¿ms
+ *
+lšk
+)
+
+572 
+ušt32_t
+ 
+n_rxq
+ = 0, 
+lšk_id
+, 
+i
+;
+
+573 
+ušt32_t
+ 
+n_pktq_hwq_š
+ = 
+	`RTE_MIN
+(
+­p
+->n_pktq_hwq_in,
+
+574 
+	`RTE_DIM
+(
+­p
+->
+hwq_š_·¿ms
+));
+
+576 
+	`APP_PARAM_GET_ID
+(
+lšk
+, "LINK", 
+lšk_id
+);
+
+578 
+i
+ = 0; i < 
+n_pktq_hwq_š
+; i++) {
+
+579 
+­p_pktq_hwq_š_·¿ms
+ *
+p
+ = &
+­p
+->
+hwq_š_·¿ms
+[
+i
+];
+
+580 
+ušt32_t
+ 
+rxq_lšk_id
+, 
+rxq_queue_id
+;
+
+582 
+	`ssÿnf
+(
+p
+->
+Çme
+, "RXQ%" 
+SCNu32
+ ".%" SCNu32,
+
+583 &
+rxq_lšk_id
+, &
+rxq_queue_id
+);
+
+584 ià(
+rxq_lšk_id
+ =ð
+lšk_id
+)
+
+585 
+n_rxq
+++;
+
+588  
+n_rxq
+;
+
+589 
+	}
+}
+
+591 
+šlše
+ 
+ušt32_t
+
+
+592 
+	$­p_lšk_g‘_n_txq
+(
+­p_·¿ms
+ *
+­p
+, 
+­p_lšk_·¿ms
+ *
+lšk
+)
+
+594 
+ušt32_t
+ 
+n_txq
+ = 0, 
+lšk_id
+, 
+i
+;
+
+595 
+ušt32_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šk
+, "LINK", 
+lšk_id
+);
+
+600 
+i
+ = 0; i < 
+n_pktq_hwq_out
+; i++) {
+
+601 
+­p_pktq_hwq_out_·¿ms
+ *
+p
+ = &
+­p
+->
+hwq_out_·¿ms
+[
+i
+];
+
+602 
+ušt32_t
+ 
+txq_lšk_id
+, 
+txq_queue_id
+;
+
+604 
+	`ssÿnf
+(
+p
+->
+Çme
+, "TXQ%" 
+SCNu32
+ ".%" SCNu32,
+
+605 &
+txq_lšk_id
+, &
+txq_queue_id
+);
+
+606 ià(
+txq_lšk_id
+ =ð
+lšk_id
+)
+
+607 
+n_txq
+++;
+
+610  
+n_txq
+;
+
+611 
+	}
+}
+
+613 
+šlše
+ 
+ušt32_t
+
+
+614 
+	$­p_rxq_g‘_»ad”s
+(
+­p_·¿ms
+ *
+­p
+, 
+­p_pktq_hwq_š_·¿ms
+ *
+rxq
+)
+
+616 
+ušt32_t
+ 
+pos
+ = 
+rxq
+ - 
+­p
+->
+hwq_š_·¿ms
+;
+
+617 
+ušt32_t
+ 
+n_p–šes
+ = 
+	`RTE_MIN
+(
+­p
+->n_pipelines,
+
+618 
+	`RTE_DIM
+(
+­p
+->
+p–še_·¿ms
+));
+
+619 
+ušt32_t
+ 
+n_»ad”s
+ = 0, 
+i
+;
+
+621 
+i
+ = 0; i < 
+n_p–šes
+; i++) {
+
+622 
+­p_p–še_·¿ms
+ *
+p
+ = &
+­p
+->
+p–še_·¿ms
+[
+i
+];
+
+623 
+ušt32_t
+ 
+n_pktq_š
+ = 
+	`RTE_MIN
+(
+p
+->n_pktq_š, 
+	`RTE_DIM
+Õ->
+pktq_š
+));
+
+624 
+ušt32_t
+ 
+j
+;
+
+626 
+j
+ = 0; j < 
+n_pktq_š
+; j++) {
+
+627 
+­p_pktq_š_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_š
+[
+j
+];
+
+629 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_IN_HWQ
+) &&
+
+630 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+631 
+n_»ad”s
+++;
+
+635  
+n_»ad”s
+;
+
+636 
+	}
+}
+
+638 
+šlše
+ 
+ušt32_t
+
+
+639 
+	$­p_swq_g‘_»ad”s
+(
+­p_·¿ms
+ *
+­p
+, 
+­p_pktq_swq_·¿ms
+ *
+swq
+)
+
+641 
+ušt32_t
+ 
+pos
+ = 
+swq
+ - 
+­p
+->
+swq_·¿ms
+;
+
+642 
+ušt32_t
+ 
+n_p–šes
+ = 
+	`RTE_MIN
+(
+­p
+->n_pipelines,
+
+643 
+	`RTE_DIM
+(
+­p
+->
+p–še_·¿ms
+));
+
+644 
+ušt32_t
+ 
+n_»ad”s
+ = 0, 
+i
+;
+
+646 
+i
+ = 0; i < 
+n_p–šes
+; i++) {
+
+647 
+­p_p–še_·¿ms
+ *
+p
+ = &
+­p
+->
+p–še_·¿ms
+[
+i
+];
+
+648 
+ušt32_t
+ 
+n_pktq_š
+ = 
+	`RTE_MIN
+(
+p
+->n_pktq_š, 
+	`RTE_DIM
+Õ->
+pktq_š
+));
+
+649 
+ušt32_t
+ 
+j
+;
+
+651 
+j
+ = 0; j < 
+n_pktq_š
+; j++) {
+
+652 
+­p_pktq_š_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_š
+[
+j
+];
+
+654 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_IN_SWQ
+) &&
+
+655 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+656 
+n_»ad”s
+++;
+
+660  
+n_»ad”s
+;
+
+661 
+	}
+}
+
+663 
+šlše
+ 
+ušt32_t
+
+
+664 
+	$­p_tm_g‘_»ad”s
+(
+­p_·¿ms
+ *
+­p
+, 
+­p_pktq_tm_·¿ms
+ *
+tm
+)
+
+666 
+ušt32_t
+ 
+pos
+ = 
+tm
+ - 
+­p
+->
+tm_·¿ms
+;
+
+667 
+ušt32_t
+ 
+n_p–šes
+ = 
+	`RTE_MIN
+(
+­p
+->n_pipelines,
+
+668 
+	`RTE_DIM
+(
+­p
+->
+p–še_·¿ms
+));
+
+669 
+ušt32_t
+ 
+n_»ad”s
+ = 0, 
+i
+;
+
+671 
+i
+ = 0; i < 
+n_p–šes
+; i++) {
+
+672 
+­p_p–še_·¿ms
+ *
+p
+ = &
+­p
+->
+p–še_·¿ms
+[
+i
+];
+
+673 
+ušt32_t
+ 
+n_pktq_š
+ = 
+	`RTE_MIN
+(
+p
+->n_pktq_š, 
+	`RTE_DIM
+Õ->
+pktq_š
+));
+
+674 
+ušt32_t
+ 
+j
+;
+
+676 
+j
+ = 0; j < 
+n_pktq_š
+; j++) {
+
+677 
+­p_pktq_š_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_š
+[
+j
+];
+
+679 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_IN_TM
+) &&
+
+680 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+681 
+n_»ad”s
+++;
+
+685  
+n_»ad”s
+;
+
+686 
+	}
+}
+
+688 
+šlše
+ 
+ušt32_t
+
+
+689 
+	$­p_sourû_g‘_»ad”s
+(
+­p_·¿ms
+ *
+­p
+,
+
+690 
+­p_pktq_sourû_·¿ms
+ *
+sourû
+)
+
+692 
+ušt32_t
+ 
+pos
+ = 
+sourû
+ - 
+­p
+->
+sourû_·¿ms
+;
+
+693 
+ušt32_t
+ 
+n_p–šes
+ = 
+	`RTE_MIN
+(
+­p
+->n_pipelines,
+
+694 
+	`RTE_DIM
+(
+­p
+->
+p–še_·¿ms
+));
+
+695 
+ušt32_t
+ 
+n_»ad”s
+ = 0, 
+i
+;
+
+697 
+i
+ = 0; i < 
+n_p–šes
+; i++) {
+
+698 
+­p_p–še_·¿ms
+ *
+p
+ = &
+­p
+->
+p–še_·¿ms
+[
+i
+];
+
+699 
+ušt32_t
+ 
+n_pktq_š
+ = 
+	`RTE_MIN
+(
+p
+->n_pktq_š, 
+	`RTE_DIM
+Õ->
+pktq_š
+));
+
+700 
+ušt32_t
+ 
+j
+;
+
+702 
+j
+ = 0; j < 
+n_pktq_š
+; j++) {
+
+703 
+­p_pktq_š_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_š
+[
+j
+];
+
+705 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_IN_SOURCE
+) &&
+
+706 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+707 
+n_»ad”s
+++;
+
+711  
+n_»ad”s
+;
+
+712 
+	}
+}
+
+714 
+šlše
+ 
+ušt32_t
+
+
+715 
+	$­p_msgq_g‘_»ad”s
+(
+­p_·¿ms
+ *
+­p
+, 
+­p_msgq_·¿ms
+ *
+msgq
+)
+
+717 
+ušt32_t
+ 
+pos
+ = 
+msgq
+ - 
+­p
+->
+msgq_·¿ms
+;
+
+718 
+ušt32_t
+ 
+n_p–šes
+ = 
+	`RTE_MIN
+(
+­p
+->n_pipelines,
+
+719 
+	`RTE_DIM
+(
+­p
+->
+p–še_·¿ms
+));
+
+720 
+ušt32_t
+ 
+n_»ad”s
+ = 0, 
+i
+;
+
+722 
+i
+ = 0; i < 
+n_p–šes
+; i++) {
+
+723 
+­p_p–še_·¿ms
+ *
+p
+ = &
+­p
+->
+p–še_·¿ms
+[
+i
+];
+
+724 
+ušt32_t
+ 
+n_msgq_š
+ = 
+	`RTE_MIN
+(
+p
+->n_msgq_š, 
+	`RTE_DIM
+Õ->
+msgq_š
+));
+
+725 
+ušt32_t
+ 
+j
+;
+
+727 
+j
+ = 0; j < 
+n_msgq_š
+; j++)
+
+728 ià(
+p
+->
+msgq_š
+[
+j
+] =ð
+pos
+)
+
+729 
+n_»ad”s
+++;
+
+732  
+n_»ad”s
+;
+
+733 
+	}
+}
+
+735 
+šlše
+ 
+ušt32_t
+
+
+736 
+	$­p_txq_g‘_wr™”s
+(
+­p_·¿ms
+ *
+­p
+, 
+­p_pktq_hwq_out_·¿ms
+ *
+txq
+)
+
+738 
+ušt32_t
+ 
+pos
+ = 
+txq
+ - 
+­p
+->
+hwq_out_·¿ms
+;
+
+739 
+ušt32_t
+ 
+n_p–šes
+ = 
+	`RTE_MIN
+(
+­p
+->n_pipelines,
+
+740 
+	`RTE_DIM
+(
+­p
+->
+p–še_·¿ms
+));
+
+741 
+ušt32_t
+ 
+n_wr™”s
+ = 0, 
+i
+;
+
+743 
+i
+ = 0; i < 
+n_p–šes
+; i++) {
+
+744 
+­p_p–še_·¿ms
+ *
+p
+ = &
+­p
+->
+p–še_·¿ms
+[
+i
+];
+
+745 
+ušt32_t
+ 
+n_pktq_out
+ = 
+	`RTE_MIN
+(
+p
+->n_pktq_out,
+
+746 
+	`RTE_DIM
+(
+p
+->
+pktq_out
+));
+
+747 
+ušt32_t
+ 
+j
+;
+
+749 
+j
+ = 0; j < 
+n_pktq_out
+; j++) {
+
+750 
+­p_pktq_out_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_out
+[
+j
+];
+
+752 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_OUT_HWQ
+) &&
+
+753 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+754 
+n_wr™”s
+++;
+
+758  
+n_wr™”s
+;
+
+759 
+	}
+}
+
+761 
+šlše
+ 
+ušt32_t
+
+
+762 
+	$­p_swq_g‘_wr™”s
+(
+­p_·¿ms
+ *
+­p
+, 
+­p_pktq_swq_·¿ms
+ *
+swq
+)
+
+764 
+ušt32_t
+ 
+pos
+ = 
+swq
+ - 
+­p
+->
+swq_·¿ms
+;
+
+765 
+ušt32_t
+ 
+n_p–šes
+ = 
+	`RTE_MIN
+(
+­p
+->n_pipelines,
+
+766 
+	`RTE_DIM
+(
+­p
+->
+p–še_·¿ms
+));
+
+767 
+ušt32_t
+ 
+n_wr™”s
+ = 0, 
+i
+;
+
+769 
+i
+ = 0; i < 
+n_p–šes
+; i++) {
+
+770 
+­p_p–še_·¿ms
+ *
+p
+ = &
+­p
+->
+p–še_·¿ms
+[
+i
+];
+
+771 
+ušt32_t
+ 
+n_pktq_out
+ = 
+	`RTE_MIN
+(
+p
+->n_pktq_out,
+
+772 
+	`RTE_DIM
+(
+p
+->
+pktq_out
+));
+
+773 
+ušt32_t
+ 
+j
+;
+
+775 
+j
+ = 0; j < 
+n_pktq_out
+; j++) {
+
+776 
+­p_pktq_out_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_out
+[
+j
+];
+
+778 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_OUT_SWQ
+) &&
+
+779 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+780 
+n_wr™”s
+++;
+
+784  
+n_wr™”s
+;
+
+785 
+	}
+}
+
+787 
+šlše
+ 
+ušt32_t
+
+
+788 
+	$­p_tm_g‘_wr™”s
+(
+­p_·¿ms
+ *
+­p
+, 
+­p_pktq_tm_·¿ms
+ *
+tm
+)
+
+790 
+ušt32_t
+ 
+pos
+ = 
+tm
+ - 
+­p
+->
+tm_·¿ms
+;
+
+791 
+ušt32_t
+ 
+n_p–šes
+ = 
+	`RTE_MIN
+(
+­p
+->n_pipelines,
+
+792 
+	`RTE_DIM
+(
+­p
+->
+p–še_·¿ms
+));
+
+793 
+ušt32_t
+ 
+n_wr™”s
+ = 0, 
+i
+;
+
+795 
+i
+ = 0; i < 
+n_p–šes
+; i++) {
+
+796 
+­p_p–še_·¿ms
+ *
+p
+ = &
+­p
+->
+p–še_·¿ms
+[
+i
+];
+
+797 
+ušt32_t
+ 
+n_pktq_out
+ = 
+	`RTE_MIN
+(
+p
+->n_pktq_out,
+
+798 
+	`RTE_DIM
+(
+p
+->
+pktq_out
+));
+
+799 
+ušt32_t
+ 
+j
+;
+
+801 
+j
+ = 0; j < 
+n_pktq_out
+; j++) {
+
+802 
+­p_pktq_out_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_out
+[
+j
+];
+
+804 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_OUT_TM
+) &&
+
+805 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+806 
+n_wr™”s
+++;
+
+810  
+n_wr™”s
+;
+
+811 
+	}
+}
+
+813 
+šlše
+ 
+ušt32_t
+
+
+814 
+	$­p_sšk_g‘_wr™”s
+(
+­p_·¿ms
+ *
+­p
+, 
+­p_pktq_sšk_·¿ms
+ *
+sšk
+)
+
+816 
+ušt32_t
+ 
+pos
+ = 
+sšk
+ - 
+­p
+->
+sšk_·¿ms
+;
+
+817 
+ušt32_t
+ 
+n_p–šes
+ = 
+	`RTE_MIN
+(
+­p
+->n_pipelines,
+
+818 
+	`RTE_DIM
+(
+­p
+->
+p–še_·¿ms
+));
+
+819 
+ušt32_t
+ 
+n_wr™”s
+ = 0, 
+i
+;
+
+821 
+i
+ = 0; i < 
+n_p–šes
+; i++) {
+
+822 
+­p_p–še_·¿ms
+ *
+p
+ = &
+­p
+->
+p–še_·¿ms
+[
+i
+];
+
+823 
+ušt32_t
+ 
+n_pktq_out
+ = 
+	`RTE_MIN
+(
+p
+->n_pktq_out,
+
+824 
+	`RTE_DIM
+(
+p
+->
+pktq_out
+));
+
+825 
+ušt32_t
+ 
+j
+;
+
+827 
+j
+ = 0; j < 
+n_pktq_out
+; j++) {
+
+828 
+­p_pktq_out_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_out
+[
+j
+];
+
+830 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_OUT_SINK
+) &&
+
+831 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+832 
+n_wr™”s
+++;
+
+836  
+n_wr™”s
+;
+
+837 
+	}
+}
+
+839 
+šlše
+ 
+ušt32_t
+
+
+840 
+	$­p_cÜe_is_’abËd
+(
+­p_·¿ms
+ *
+­p
+, 
+ušt32_t
+ 
+lcÜe_id
+) {
+
+841 (
+­p
+->
+cÜe_mask
+[
+lcÜe_id
+ / 64] &
+
+842 (1LLU << (
+lcÜe_id
+ % 64)));
+
+843 
+	}
+}
+
+845 
+šlše
+ 
+
+846 
+	$­p_cÜe_’abË_š_cÜe_mask
+(
+­p_·¿ms
+ *
+­p
+, 
+lcÜe_id
+) {
+
+847 
+­p
+->
+cÜe_mask
+[
+lcÜe_id
+ / 64] |= 1LLU << (lcore_id % 64);
+
+849 
+	}
+}
+
+851 
+šlše
+ 
+
+852 
+	$­p_cÜe_bužd_cÜe_mask_¡ršg
+(
+­p_·¿ms
+ *
+­p
+, 
+
+853 *
+mask_bufãr
+) {
+
+854 
+i
+;
+
+856 
+mask_bufãr
+[0] = '\0';
+
+857 
+i
+ = ()
+	`RTE_DIM
+(
+­p
+->
+cÜe_mask
+); i > 0; i--) {
+
+859 
+bufãr
+[(64 / 8) * 2 + 1];
+
+860 
+	`mem£t
+(
+bufãr
+, 0, (buffer));
+
+861 
+	`¢´štf
+(
+bufãr
+, (bufãr), "%016" 
+PRIx64
+,
+
+862 
+­p
+->
+cÜe_mask
+[
+i
+-1]);
+
+863 
+	`¡rÿt
+(
+mask_bufãr
+, 
+bufãr
+);
+
+865 
+	}
+}
+
+867 
+šlše
+ 
+ušt32_t
+
+
+868 
+	$­p_msgq_g‘_wr™”s
+(
+­p_·¿ms
+ *
+­p
+, 
+­p_msgq_·¿ms
+ *
+msgq
+)
+
+870 
+ušt32_t
+ 
+pos
+ = 
+msgq
+ - 
+­p
+->
+msgq_·¿ms
+;
+
+871 
+ušt32_t
+ 
+n_p–šes
+ = 
+	`RTE_MIN
+(
+­p
+->n_pipelines,
+
+872 
+	`RTE_DIM
+(
+­p
+->
+p–še_·¿ms
+));
+
+873 
+ušt32_t
+ 
+n_wr™”s
+ = 0, 
+i
+;
+
+875 
+i
+ = 0; i < 
+n_p–šes
+; i++) {
+
+876 
+­p_p–še_·¿ms
+ *
+p
+ = &
+­p
+->
+p–še_·¿ms
+[
+i
+];
+
+877 
+ušt32_t
+ 
+n_msgq_out
+ = 
+	`RTE_MIN
+(
+p
+->n_msgq_out,
+
+878 
+	`RTE_DIM
+(
+p
+->
+msgq_out
+));
+
+879 
+ušt32_t
+ 
+j
+;
+
+881 
+j
+ = 0; j < 
+n_msgq_out
+; j++)
+
+882 ià(
+p
+->
+msgq_out
+[
+j
+] =ð
+pos
+)
+
+883 
+n_wr™”s
+++;
+
+886  
+n_wr™”s
+;
+
+887 
+	}
+}
+
+889 
+šlše
+ 
+­p_lšk_·¿ms
+ *
+
+890 
+	$­p_g‘_lšk_fÜ_rxq
+(
+­p_·¿ms
+ *
+­p
+, 
+­p_pktq_hwq_š_·¿ms
+ *
+p
+)
+
+892 
+lšk_Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+893 
+ssize_t
+ 
+lšk_·¿m_idx
+;
+
+894 
+ušt32_t
+ 
+rxq_lšk_id
+, 
+rxq_queue_id
+;
+
+896 
+	`ssÿnf
+(
+p
+->
+Çme
+, "RXQ%" 
+SCNu32
+ ".%" SCNu32,
+
+897 &
+rxq_lšk_id
+, &
+rxq_queue_id
+);
+
+898 
+	`¥rštf
+(
+lšk_Çme
+, "LINK%" 
+PRIu32
+, 
+rxq_lšk_id
+);
+
+899 
+lšk_·¿m_idx
+ = 
+	`APP_PARAM_FIND
+(
+­p
+->
+lšk_·¿ms
+, 
+lšk_Çme
+);
+
+900 
+	`APP_CHECK
+((
+lšk_·¿m_idx
+ >= 0),
+
+901 "CªnÙ fšd % fÜ %s", 
+lšk_Çme
+, 
+p
+->
+Çme
+);
+
+903  &
+­p
+->
+lšk_·¿ms
+[
+lšk_·¿m_idx
+];
+
+904 
+	}
+}
+
+906 
+šlše
+ 
+­p_lšk_·¿ms
+ *
+
+907 
+	$­p_g‘_lšk_fÜ_txq
+(
+­p_·¿ms
+ *
+­p
+, 
+­p_pktq_hwq_out_·¿ms
+ *
+p
+)
+
+909 
+lšk_Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+910 
+ssize_t
+ 
+lšk_·¿m_idx
+;
+
+911 
+ušt32_t
+ 
+txq_lšk_id
+, 
+txq_queue_id
+;
+
+913 
+	`ssÿnf
+(
+p
+->
+Çme
+, "TXQ%" 
+SCNu32
+ ".%" SCNu32,
+
+914 &
+txq_lšk_id
+, &
+txq_queue_id
+);
+
+915 
+	`¥rštf
+(
+lšk_Çme
+, "LINK%" 
+PRIu32
+, 
+txq_lšk_id
+);
+
+916 
+lšk_·¿m_idx
+ = 
+	`APP_PARAM_FIND
+(
+­p
+->
+lšk_·¿ms
+, 
+lšk_Çme
+);
+
+917 
+	`APP_CHECK
+((
+lšk_·¿m_idx
+ >= 0),
+
+918 "CªnÙ fšd % fÜ %s", 
+lšk_Çme
+, 
+p
+->
+Çme
+);
+
+920  &
+­p
+->
+lšk_·¿ms
+[
+lšk_·¿m_idx
+];
+
+921 
+	}
+}
+
+923 
+šlše
+ 
+­p_lšk_·¿ms
+ *
+
+924 
+	$­p_g‘_lšk_fÜ_tm
+(
+­p_·¿ms
+ *
+­p
+, 
+­p_pktq_tm_·¿ms
+ *
+p_tm
+)
+
+926 
+lšk_Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+927 
+ušt32_t
+ 
+lšk_id
+;
+
+928 
+ssize_t
+ 
+lšk_·¿m_idx
+;
+
+930 
+	`ssÿnf
+(
+p_tm
+->
+Çme
+, "TM%" 
+PRIu32
+, &
+lšk_id
+);
+
+931 
+	`¥rštf
+(
+lšk_Çme
+, "LINK%" 
+PRIu32
+, 
+lšk_id
+);
+
+932 
+lšk_·¿m_idx
+ = 
+	`APP_PARAM_FIND
+(
+­p
+->
+lšk_·¿ms
+, 
+lšk_Çme
+);
+
+933 
+	`APP_CHECK
+((
+lšk_·¿m_idx
+ >= 0),
+
+934 "CªnÙ fšd % fÜ %s", 
+lšk_Çme
+, 
+p_tm
+->
+Çme
+);
+
+936  &
+­p
+->
+lšk_·¿ms
+[
+lšk_·¿m_idx
+];
+
+937 
+	}
+}
+
+939 
+­p_cÚfig_š™
+(
+­p_·¿ms
+ *
+­p
+);
+
+941 
+­p_cÚfig_¬gs
+(
+­p_·¿ms
+ *
+­p
+,
+
+942 
+¬gc
+, **
+¬gv
+);
+
+944 
+­p_cÚfig_´•roc
+(
+­p_·¿ms
+ *
+­p
+);
+
+946 
+­p_cÚfig_·r£
+(
+­p_·¿ms
+ *
+­p
+,
+
+947 cÚ¡ *
+fže_Çme
+);
+
+949 
+­p_cÚfig_·r£_tm
+(
+­p_·¿ms
+ *
+­p
+);
+
+951 
+­p_cÚfig_§ve
+(
+­p_·¿ms
+ *
+­p
+,
+
+952 cÚ¡ *
+fže_Çme
+);
+
+954 
+­p_cÚfig_check
+(
+­p_·¿ms
+ *
+­p
+);
+
+956 
+­p_š™
+(
+­p_·¿ms
+ *
+­p
+);
+
+958 
+­p_th»ad
+(*
+¬g
+);
+
+960 
+­p_p–še_ty³_»gi¡”
+(
+­p_·¿ms
+ *
+­p
+,
+
+961 
+p–še_ty³
+ *
+±y³
+);
+
+963 
+p–še_ty³
+ *
+­p_p–še_ty³_fšd
+(
+­p_·¿ms
+ *
+­p
+,
+
+964 *
+Çme
+);
+
+966 
+­p_lšk_up_š‹º®
+(
+­p_·¿ms
+ *
+­p
+,
+
+967 
+­p_lšk_·¿ms
+ *
+ý
+);
+
+969 
+­p_lšk_down_š‹º®
+(
+­p_·¿ms
+ *
+­p
+,
+
+970 
+­p_lšk_·¿ms
+ *
+ý
+);
+
+	@vnf_common/config_check.c
+
+17 
+	~<¡dio.h
+>
+
+19 
+	~<¹e_.h
+>
+
+21 
+	~"­p.h
+"
+
+23 
+ušt8_t
+ 
+	gg_n_hwq_š
+;
+
+25 
+	$check_mempoÞs
+(
+­p_·¿ms
+ *
+­p
+)
+
+27 
+ušt32_t
+ 
+i
+;
+
+29 
+i
+ = 0; i < 
+­p
+->
+n_mempoÞs
+; i++) {
+
+30 
+­p_mempoÞ_·¿ms
+ *
+p
+ = &
+­p
+->
+mempoÞ_·¿ms
+[
+i
+];
+
+32 
+	`APP_CHECK
+((
+p
+->
+poÞ_size
+ > 0),
+
+33 "MempoÞ % sizi 0\n", 
+p
+->
+Çme
+);
+
+35 
+	`APP_CHECK
+((
+p
+->
+ÿche_size
+ > 0),
+
+36 "MempoÞ % ÿchsizi 0\n", 
+p
+->
+Çme
+);
+
+38 
+	`APP_CHECK
+(
+	`¹e_is_pow”_of_2
+(
+p
+->
+ÿche_size
+),
+
+39 "MempoÞ % ÿchsiznه…ow” oà2\n", 
+p
+->
+Çme
+);
+
+41 
+	}
+}
+
+44 
+	$check_lšks
+(
+­p_·¿ms
+ *
+­p
+)
+
+46 
+ušt32_t
+ 
+i
+;
+
+49 ià(
+­p
+->
+pÜt_mask
+) {
+
+50 
+ušt32_t
+ 
+n_lšks_pÜt_mask
+ =
+
+51 
+	`__bužtš_pÝcouÁÎ
+(
+­p
+->
+pÜt_mask
+);
+
+53 
+	`APP_CHECK
+((
+­p
+->
+n_lšks
+ =ð
+n_lšks_pÜt_mask
+),
+
+57 
+i
+ = 0; i < 
+­p
+->
+n_lšks
+; i++) {
+
+58 
+­p_lšk_·¿ms
+ *
+lšk
+ = &
+­p
+->
+lšk_·¿ms
+[
+i
+];
+
+59 
+ušt32_t
+ 
+rxq_max
+, 
+n_rxq
+, 
+n_txq
+, 
+lšk_id
+, 
+i
+;
+
+61 
+	`APP_PARAM_GET_ID
+(
+lšk
+, "LINK", 
+lšk_id
+);
+
+64 
+rxq_max
+ = 0;
+
+65 ià(
+lšk
+->
+¬p_q
+ > 
+rxq_max
+)
+
+66 
+rxq_max
+ = 
+lšk
+->
+¬p_q
+;
+
+67 ià(
+lšk
+->
+tý_syn_q
+ > 
+rxq_max
+)
+
+68 
+rxq_max
+ = 
+lšk
+->
+tý_syn_q
+;
+
+69 ià(
+lšk
+->
+_loÿl_q
+ > 
+rxq_max
+)
+
+70 
+rxq_max
+ = 
+lšk
+->
+_loÿl_q
+;
+
+71 ià(
+lšk
+->
+tý_loÿl_q
+ > 
+rxq_max
+)
+
+72 
+rxq_max
+ = 
+lšk
+->
+tý_loÿl_q
+;
+
+73 ià(
+lšk
+->
+udp_loÿl_q
+ > 
+rxq_max
+)
+
+74 
+rxq_max
+ = 
+lšk
+->
+udp_loÿl_q
+;
+
+75 ià(
+lšk
+->
+sùp_loÿl_q
+ > 
+rxq_max
+)
+
+76 
+rxq_max
+ = 
+lšk
+->
+sùp_loÿl_q
+;
+
+78 if(
+’abË_hwlb
+ || 
+’abË_æow_dœ
+){
+
+79 
+g_n_hwq_š
+ = 
+­p
+->
+n_hwlb_q
+;
+
+80 
+rxq_max
+ = (
+g_n_hwq_š
+ - 1);
+
+81 
+i
+ = 
+g_n_hwq_š
+; i <ð
+rxq_max
+; i++)
+
+82 
+	`APP_CHECK
+(((
+lšk
+->
+¬p_q
+ =ð
+i
+) ||
+
+83 (
+lšk
+->
+tý_syn_q
+ =ð
+i
+) ||
+
+84 (
+lšk
+->
+_loÿl_q
+ =ð
+i
+) ||
+
+85 (
+lšk
+->
+tý_loÿl_q
+ =ð
+i
+) ||
+
+86 (
+lšk
+->
+udp_loÿl_q
+ =ð
+i
+) ||
+
+87 (
+lšk
+->
+sùp_loÿl_q
+ =ð
+i
+)),
+
+88 "% RXQ ¬nÙ cÚtiguou (A)\n", 
+lšk
+->
+Çme
+);
+
+92 
+i
+ = 1; i <ð
+rxq_max
+; i++)
+
+93 
+	`APP_CHECK
+(((
+lšk
+->
+¬p_q
+ =ð
+i
+) ||
+
+94 (
+lšk
+->
+tý_syn_q
+ =ð
+i
+) ||
+
+95 (
+lšk
+->
+_loÿl_q
+ =ð
+i
+) ||
+
+96 (
+lšk
+->
+tý_loÿl_q
+ =ð
+i
+) ||
+
+97 (
+lšk
+->
+udp_loÿl_q
+ =ð
+i
+) ||
+
+98 (
+lšk
+->
+sùp_loÿl_q
+ =ð
+i
+)),
+
+99 "% RXQ ¬nÙ cÚtiguou (A)\n", 
+lšk
+->
+Çme
+);
+
+101 
+n_rxq
+ = 
+	`­p_lšk_g‘_n_rxq
+(
+­p
+, 
+lšk
+);
+
+103 
+	`APP_CHECK
+((
+n_rxq
+), "% dÛ nÙ havªy RXQ\n", 
+lšk
+->
+Çme
+);
+
+104 
+	`´štf
+("n_rxq = %d\n",
+n_rxq
+);
+
+105 
+	`´štf
+("rxq_max = %d\n",
+rxq_max
+);
+
+109 
+i
+ = 0; i < 
+n_rxq
+; i++) {
+
+110 
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+111 
+pos
+;
+
+113 
+	`¥rštf
+(
+Çme
+, "RXQ%" 
+PRIu32
+ ".%" PRIu32,
+
+114 
+lšk_id
+, 
+i
+);
+
+115 
+pos
+ = 
+	`APP_PARAM_FIND
+(
+­p
+->
+hwq_š_·¿ms
+, 
+Çme
+);
+
+116 
+	`APP_CHECK
+((
+pos
+ >= 0),
+
+117 "% RXQ ¬nÙ cÚtiguou (C)\n", 
+lšk
+->
+Çme
+);
+
+121 
+n_txq
+ = 
+	`­p_lšk_g‘_n_txq
+(
+­p
+, 
+lšk
+);
+
+123 
+	`APP_CHECK
+((
+n_txq
+), "% dÛ nÙ havªy TXQ\n", 
+lšk
+->
+Çme
+);
+
+125 
+i
+ = 0; i < 
+n_txq
+; i++) {
+
+126 
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+127 
+pos
+;
+
+129 
+	`¥rštf
+(
+Çme
+, "TXQ%" 
+PRIu32
+ ".%" PRIu32,
+
+130 
+lšk_id
+, 
+i
+);
+
+131 
+pos
+ = 
+	`APP_PARAM_FIND
+(
+­p
+->
+hwq_out_·¿ms
+, 
+Çme
+);
+
+132 
+	`APP_CHECK
+((
+pos
+ >= 0),
+
+133 "% TXQ ¬nÙ cÚtiguous\n", 
+lšk
+->
+Çme
+);
+
+136 
+	}
+}
+
+139 
+	$check_rxqs
+(
+­p_·¿ms
+ *
+­p
+)
+
+141 
+ušt32_t
+ 
+i
+;
+
+143 
+i
+ = 0; i < 
+­p
+->
+n_pktq_hwq_š
+; i++) {
+
+144 
+­p_pktq_hwq_š_·¿ms
+ *
+p
+ = &
+­p
+->
+hwq_š_·¿ms
+[
+i
+];
+
+145 
+ušt32_t
+ 
+n_»ad”s
+ = 
+	`­p_rxq_g‘_»ad”s
+(
+­p
+, 
+p
+);
+
+147 
+	`APP_CHECK
+((
+p
+->
+size
+ > 0),
+
+148 "% sizi 0\n", 
+p
+->
+Çme
+);
+
+150 
+	`APP_CHECK
+((
+	`¹e_is_pow”_of_2
+(
+p
+->
+size
+)),
+
+151 "% sizi nه…ow” oà2\n", 
+p
+->
+Çme
+);
+
+153 
+	`APP_CHECK
+((
+p
+->
+bur¡
+ > 0),
+
+154 "% bur¡ sizi 0\n", 
+p
+->
+Çme
+);
+
+156 
+	`APP_CHECK
+((
+p
+->
+bur¡
+ <ðp->
+size
+),
+
+157 "% bur¡ sizi bigg”hª it size\n", 
+p
+->
+Çme
+);
+
+159 
+	`APP_CHECK
+((
+n_»ad”s
+ != 0),
+
+160 "% ha nØ»ad”\n", 
+p
+->
+Çme
+);
+
+162 
+	`APP_CHECK
+((
+n_»ad”s
+ == 1),
+
+163 "% ha mܐthª oėd”\n", 
+p
+->
+Çme
+);
+
+165 
+	}
+}
+
+168 
+	$check_txqs
+(
+­p_·¿ms
+ *
+­p
+)
+
+170 
+ušt32_t
+ 
+i
+;
+
+172 
+i
+ = 0; i < 
+­p
+->
+n_pktq_hwq_out
+; i++) {
+
+173 
+­p_pktq_hwq_out_·¿ms
+ *
+p
+ = &
+­p
+->
+hwq_out_·¿ms
+[
+i
+];
+
+174 
+ušt32_t
+ 
+n_wr™”s
+ = 
+	`­p_txq_g‘_wr™”s
+(
+­p
+, 
+p
+);
+
+176 
+	`APP_CHECK
+((
+p
+->
+size
+ > 0),
+
+177 "% sizi 0\n", 
+p
+->
+Çme
+);
+
+179 
+	`APP_CHECK
+((
+	`¹e_is_pow”_of_2
+(
+p
+->
+size
+)),
+
+180 "% sizi nه…ow” oà2\n", 
+p
+->
+Çme
+);
+
+182 
+	`APP_CHECK
+((
+p
+->
+bur¡
+ > 0),
+
+183 "% bur¡ sizi 0\n", 
+p
+->
+Çme
+);
+
+185 
+	`APP_CHECK
+((
+p
+->
+bur¡
+ <ðp->
+size
+),
+
+186 "% bur¡ sizi bigg”hª it size\n", 
+p
+->
+Çme
+);
+
+188 
+	`APP_CHECK
+((
+n_wr™”s
+ != 0),
+
+189 "% ha nØwr™”\n", 
+p
+->
+Çme
+);
+
+191 
+	`APP_CHECK
+((
+n_wr™”s
+ == 1),
+
+192 "% ha mܐthª oà wr™”\n", 
+p
+->
+Çme
+);
+
+194 
+	}
+}
+
+197 
+	$check_swqs
+(
+­p_·¿ms
+ *
+­p
+)
+
+199 
+ušt32_t
+ 
+i
+;
+
+201 
+i
+ = 0; i < 
+­p
+->
+n_pktq_swq
+; i++) {
+
+202 
+­p_pktq_swq_·¿ms
+ *
+p
+ = &
+­p
+->
+swq_·¿ms
+[
+i
+];
+
+203 
+ušt32_t
+ 
+n_»ad”s
+ = 
+	`­p_swq_g‘_»ad”s
+(
+­p
+, 
+p
+);
+
+204 
+ušt32_t
+ 
+n_wr™”s
+ = 
+	`­p_swq_g‘_wr™”s
+(
+­p
+, 
+p
+);
+
+205 
+ušt32_t
+ 
+n_æags
+;
+
+207 
+	`APP_CHECK
+((
+p
+->
+size
+ > 0),
+
+208 "% sizi 0\n", 
+p
+->
+Çme
+);
+
+210 
+	`APP_CHECK
+((
+	`¹e_is_pow”_of_2
+(
+p
+->
+size
+)),
+
+211 "% sizi nه…ow” oà2\n", 
+p
+->
+Çme
+);
+
+213 
+	`APP_CHECK
+((
+p
+->
+bur¡_»ad
+ > 0),
+
+214 "% »ad bur¡ sizi 0\n", 
+p
+->
+Çme
+);
+
+216 
+	`APP_CHECK
+((
+p
+->
+bur¡_»ad
+ <ðp->
+size
+),
+
+218 
+p
+->
+Çme
+);
+
+220 
+	`APP_CHECK
+((
+p
+->
+bur¡_wr™e
+ > 0),
+
+221 "% wr™bur¡ sizi 0\n", 
+p
+->
+Çme
+);
+
+223 
+	`APP_CHECK
+((
+p
+->
+bur¡_wr™e
+ <ðp->
+size
+),
+
+225 
+p
+->
+Çme
+);
+
+227 
+	`APP_CHECK
+((
+n_»ad”s
+ != 0),
+
+228 "% ha nØ»ad”\n", 
+p
+->
+Çme
+);
+
+230 ià(
+n_»ad”s
+ > 1)
+
+231 
+	`APP_LOG
+(
+­p
+, 
+LOW
+, "% ha mܐthª oėd”", 
+p
+->
+Çme
+);
+
+233 
+	`APP_CHECK
+((
+n_wr™”s
+ != 0),
+
+234 "% ha nØwr™”\n", 
+p
+->
+Çme
+);
+
+236 ià(
+n_wr™”s
+ > 1)
+
+237 
+	`APP_LOG
+(
+­p
+, 
+LOW
+, "% ha mܐthª oà wr™”", 
+p
+->
+Çme
+);
+
+239 
+n_æags
+ = 
+p
+->
+v4_äag
+ +…->
+v6_äag
+ +…->
+v4_¿s
+ +…->
+v6_¿s
+;
+
+241 
+	`APP_CHECK
+((
+n_æags
+ < 2),
+
+243 
+p
+->
+Çme
+);
+
+245 
+	`APP_CHECK
+((!((
+n_»ad”s
+ > 1è&& (
+n_æags
+ == 1))),
+
+248 
+p
+->
+Çme
+);
+
+250 
+	`APP_CHECK
+((!((
+n_wr™”s
+ > 1è&& (
+n_æags
+ == 1))),
+
+253 
+p
+->
+Çme
+);
+
+255 
+n_æags
+ = 
+p
+->
+v4_¿s
+ +…->
+v6_¿s
+;
+
+257 
+	`APP_CHECK
+((!((
+p
+->
+drÝËss
+ =ð1è&& (
+n_æags
+ == 1))),
+
+258 "% ha drÝËs wh’„—s£mbly mod’abËd\n", 
+p
+->
+Çme
+);
+
+260 
+n_æags
+ = 
+p
+->
+v4_äag
+ +…->
+v6_äag
+;
+
+262 ià(
+n_æags
+ == 1) {
+
+263 
+ušt16_t
+ 
+_hdr_size
+ = (
+p
+->
+v4_äag
+è? (
+v4_hdr
+) :
+
+264 (
+v6_hdr
+);
+
+266 
+	`APP_CHECK
+((
+p
+->
+mtu
+ > 
+_hdr_size
+),
+
+267 "% mtu sizi sm®Ë¸thª i°h—d”\n", 
+p
+->
+Çme
+);
+
+269 
+	`APP_CHECK
+((!((
+p
+->
+mtu
+ - 
+_hdr_size
+) % 8)),
+
+270 "% mtu sizi šcÜ»ù\n", 
+p
+->
+Çme
+);
+
+273 
+	}
+}
+
+276 
+	$check_tms
+(
+­p_·¿ms
+ *
+­p
+)
+
+278 
+ušt32_t
+ 
+i
+;
+
+280 
+i
+ = 0; i < 
+­p
+->
+n_pktq_tm
+; i++) {
+
+281 
+­p_pktq_tm_·¿ms
+ *
+p
+ = &
+­p
+->
+tm_·¿ms
+[
+i
+];
+
+282 
+ušt32_t
+ 
+n_»ad”s
+ = 
+	`­p_tm_g‘_»ad”s
+(
+­p
+, 
+p
+);
+
+283 
+ušt32_t
+ 
+n_wr™”s
+ = 
+	`­p_tm_g‘_wr™”s
+(
+­p
+, 
+p
+);
+
+285 
+	`APP_CHECK
+((
+n_»ad”s
+ != 0),
+
+286 "% ha nØ»ad”\n", 
+p
+->
+Çme
+);
+
+288 
+	`APP_CHECK
+((
+n_»ad”s
+ == 1),
+
+289 "% ha mܐthª oėd”\n", 
+p
+->
+Çme
+);
+
+291 
+	`APP_CHECK
+((
+n_wr™”s
+ != 0),
+
+292 "% ha nØwr™”\n", 
+p
+->
+Çme
+);
+
+294 
+	`APP_CHECK
+((
+n_wr™”s
+ == 1),
+
+295 "% ha mܐthª oà wr™”\n", 
+p
+->
+Çme
+);
+
+297 
+	}
+}
+
+300 
+	$check_sourûs
+(
+­p_·¿ms
+ *
+­p
+)
+
+302 
+ušt32_t
+ 
+i
+;
+
+304 
+i
+ = 0; i < 
+­p
+->
+n_pktq_sourû
+; i++) {
+
+305 
+­p_pktq_sourû_·¿ms
+ *
+p
+ = &
+­p
+->
+sourû_·¿ms
+[
+i
+];
+
+306 
+ušt32_t
+ 
+n_»ad”s
+ = 
+	`­p_sourû_g‘_»ad”s
+(
+­p
+, 
+p
+);
+
+308 
+	`APP_CHECK
+((
+n_»ad”s
+ != 0),
+
+309 "% ha nØ»ad”\n", 
+p
+->
+Çme
+);
+
+311 
+	`APP_CHECK
+((
+n_»ad”s
+ == 1),
+
+312 "% ha mܐthª oėd”\n", 
+p
+->
+Çme
+);
+
+314 
+	}
+}
+
+317 
+	$check_sšks
+(
+­p_·¿ms
+ *
+­p
+)
+
+319 
+ušt32_t
+ 
+i
+;
+
+321 
+i
+ = 0; i < 
+­p
+->
+n_pktq_sšk
+; i++) {
+
+322 
+­p_pktq_sšk_·¿ms
+ *
+p
+ = &
+­p
+->
+sšk_·¿ms
+[
+i
+];
+
+323 
+ušt32_t
+ 
+n_wr™”s
+ = 
+	`­p_sšk_g‘_wr™”s
+(
+­p
+, 
+p
+);
+
+325 
+	`APP_CHECK
+((
+n_wr™”s
+ != 0),
+
+326 "% ha nØwr™”\n", 
+p
+->
+Çme
+);
+
+328 
+	`APP_CHECK
+((
+n_wr™”s
+ == 1),
+
+329 "% ha mܐthª oà wr™”\n", 
+p
+->
+Çme
+);
+
+331 
+	}
+}
+
+334 
+	$check_msgqs
+(
+­p_·¿ms
+ *
+­p
+)
+
+336 
+ušt32_t
+ 
+i
+;
+
+338 
+i
+ = 0; i < 
+­p
+->
+n_msgq
+; i++) {
+
+339 
+­p_msgq_·¿ms
+ *
+p
+ = &
+­p
+->
+msgq_·¿ms
+[
+i
+];
+
+340 
+ušt32_t
+ 
+n_»ad”s
+ = 
+	`­p_msgq_g‘_»ad”s
+(
+­p
+, 
+p
+);
+
+341 
+ušt32_t
+ 
+n_wr™”s
+ = 
+	`­p_msgq_g‘_wr™”s
+(
+­p
+, 
+p
+);
+
+342 
+ušt32_t
+ 
+msgq_»q_p–še
+, 
+msgq_r¥_p–še
+;
+
+343 
+ušt32_t
+ 
+msgq_»q_cÜe
+, 
+msgq_r¥_cÜe
+;
+
+345 
+	`APP_CHECK
+((
+p
+->
+size
+ > 0),
+
+346 "% sizi 0\n", 
+p
+->
+Çme
+);
+
+348 
+	`APP_CHECK
+((
+	`¹e_is_pow”_of_2
+(
+p
+->
+size
+)),
+
+349 "% sizi nه…ow” oà2\n", 
+p
+->
+Çme
+);
+
+351 
+msgq_»q_p–še
+ = (
+	`¡ºcmp
+(
+p
+->
+Çme
+, "MSGQ-REQ-PIPELINE",
+
+352 
+	`¡¾’
+("MSGQ-REQ-PIPELINE")) == 0);
+
+354 
+msgq_r¥_p–še
+ = (
+	`¡ºcmp
+(
+p
+->
+Çme
+, "MSGQ-RSP-PIPELINE",
+
+355 
+	`¡¾’
+("MSGQ-RSP-PIPELINE")) == 0);
+
+357 
+msgq_»q_cÜe
+ = (
+	`¡ºcmp
+(
+p
+->
+Çme
+, "MSGQ-REQ-CORE",
+
+358 
+	`¡¾’
+("MSGQ-REQ-CORE")) == 0);
+
+360 
+msgq_r¥_cÜe
+ = (
+	`¡ºcmp
+(
+p
+->
+Çme
+, "MSGQ-RSP-CORE",
+
+361 
+	`¡¾’
+("MSGQ-RSP-CORE")) == 0);
+
+363 ià((
+msgq_»q_p–še
+ == 0) &&
+
+364 (
+msgq_r¥_p–še
+ == 0) &&
+
+365 (
+msgq_»q_cÜe
+ == 0) &&
+
+366 (
+msgq_r¥_cÜe
+ == 0)) {
+
+367 
+	`APP_CHECK
+((
+n_»ad”s
+ != 0),
+
+368 "% ha nØ»ad”\n", 
+p
+->
+Çme
+);
+
+370 
+	`APP_CHECK
+((
+n_»ad”s
+ == 1),
+
+371 "% ha mܐthª oėd”\n", 
+p
+->
+Çme
+);
+
+373 
+	`APP_CHECK
+((
+n_wr™”s
+ != 0),
+
+374 "% ha nØwr™”\n", 
+p
+->
+Çme
+);
+
+376 
+	`APP_CHECK
+((
+n_wr™”s
+ == 1),
+
+377 "% ha mܐthª oà wr™”\n", 
+p
+->
+Çme
+);
+
+380 ià(
+msgq_»q_p–še
+) {
+
+381 
+­p_p–še_·¿ms
+ *
+p–še
+;
+
+382 
+ušt32_t
+ 
+p–še_id
+;
+
+384 
+	`APP_PARAM_GET_ID
+(
+p
+, "MSGQ-REQ-PIPELINE", 
+p–še_id
+);
+
+386 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+p–še_·¿ms
+,
+
+388 
+p–še_id
+,
+
+389 
+p–še
+);
+
+391 
+	`APP_CHECK
+((
+p–še
+ !ð
+NULL
+),
+
+393 
+p
+->
+Çme
+);
+
+396 ià(
+msgq_r¥_p–še
+) {
+
+397 
+­p_p–še_·¿ms
+ *
+p–še
+;
+
+398 
+ušt32_t
+ 
+p–še_id
+;
+
+400 
+	`APP_PARAM_GET_ID
+(
+p
+, "MSGQ-RSP-PIPELINE", 
+p–še_id
+);
+
+402 
+	`APP_PARAM_FIND_BY_ID
+(
+­p
+->
+p–še_·¿ms
+,
+
+404 
+p–še_id
+,
+
+405 
+p–še
+);
+
+407 
+	`APP_CHECK
+((
+p–še
+ !ð
+NULL
+),
+
+409 
+p
+->
+Çme
+);
+
+412 
+	}
+}
+
+415 
+	$check_p–šes
+(
+­p_·¿ms
+ *
+­p
+)
+
+417 
+ušt32_t
+ 
+i
+;
+
+419 
+i
+ = 0; i < 
+­p
+->
+n_p–šes
+; i++) {
+
+420 
+­p_p–še_·¿ms
+ *
+p
+ = &
+­p
+->
+p–še_·¿ms
+[
+i
+];
+
+422 
+	`APP_CHECK
+((
+p
+->
+n_msgq_š
+ =ðp->
+n_msgq_out
+),
+
+424 "thnumb” oàouuˆMSGQs\n", 
+p
+->
+Çme
+);
+
+426 
+	}
+}
+
+429 
+	$­p_cÚfig_check
+(
+­p_·¿ms
+ *
+­p
+)
+
+431 
+	`check_mempoÞs
+(
+­p
+);
+
+432 
+	`check_lšks
+(
+­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šks
+(
+­p
+);
+
+439 
+	`check_msgqs
+(
+­p
+);
+
+440 
+	`check_p–šes
+(
+­p
+);
+
+443 
+	}
+}
+
+	@vnf_common/config_parse.c
+
+16 
+	~<¡dšt.h
+>
+
+17 
+	~<¡dlib.h
+>
+
+18 
+	~<¡dio.h
+>
+
+19 
+	~<ùy³.h
+>
+
+20 
+	~<g‘Ýt.h
+>
+
+21 
+	~<Ӽo.h
+>
+
+22 
+	~<¡d¬g.h
+>
+
+23 
+	~<¡ršg.h
+>
+
+24 
+	~<libg’.h
+>
+
+25 
+	~<uni¡d.h
+>
+
+26 
+	~<sys/wa™.h
+>
+
+28 
+	~<¹e_”ºo.h
+>
+
+29 
+	~<¹e_cfgfže.h
+>
+
+30 
+	~<¹e_¡ršg_âs.h
+>
+
+32 
+	~"­p.h
+"
+
+33 
+	~"·r£r.h
+"
+
+39 
+­p_·¿ms
+ 
+	g­p_·¿ms_deçuÉ
+ = {
+
+40 .
+cÚfig_fže
+ = "./config/ip_pipeline.cfg",
+
+41 .
+	glog_Ëv–
+ = 
+APP_LOG_LEVEL_HIGH
+,
+
+42 .
+	gpÜt_mask
+ = 0,
+
+44 .
+	g—l_·¿ms
+ = {
+
+45 .
+chªÃls
+ = 4,
+
+49 cÚ¡ 
+­p_mempoÞ_·¿ms
+ 
+	gmempoÞ_·¿ms_deçuÉ
+ = {
+
+50 .
+·r£d
+ = 0,
+
+51 .
+	gbufãr_size
+ = 2048 + (
+¹e_mbuf
+è+ 
+RTE_PKTMBUF_HEADROOM
+,
+
+52 .
+	gpoÞ_size
+ = 32 * 1024,
+
+53 .
+	gÿche_size
+ = 256,
+
+54 .
+	gýu_sock‘_id
+ = 0,
+
+57 cÚ¡ 
+­p_lšk_·¿ms
+ 
+	glšk_·¿ms_deçuÉ
+ = {
+
+58 .
+·r£d
+ = 0,
+
+59 .
+	gpmd_id
+ = 0,
+
+60 .
+	g¬p_q
+ = 0,
+
+61 .
+	gtý_syn_q
+ = 0,
+
+62 .
+	g_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
+ = 0,
+
+68 .
+	gv6
+ = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+
+69 .
+	gd•th
+ = 0,
+
+70 .
+	gd•th_v6
+ = 0,
+
+71 .
+	gmac_addr
+ = 0,
+
+72 .
+	gpci_bdf
+ = {0},
+
+74 .
+	gcÚf
+ = {
+
+75 .
+lšk_¥“ds
+ = 0,
+
+76 .
+	grxmode
+ = {
+
+77 .
+mq_mode
+ = 
+ETH_MQ_RX_NONE
+,
+
+79 .
+	gh—d”_¥l™
+ = 0,
+
+80 .
+	ghw__checksum
+ = 0,
+
+81 .
+	ghw_vÏn_fž‹r
+ = 0,
+
+82 .
+	ghw_vÏn_¡r
+ = 0,
+
+83 .
+	ghw_vÏn_ex‹nd
+ = 0,
+
+84 .
+	gjumbo_äame
+ = 0,
+
+85 .
+	ghw_¡r_üc
+ = 0,
+
+86 .
+	g’abË_sÿ‰”
+ = 0,
+
+88 .
+	gmax_rx_pkt_Ën
+ = 9000,
+
+89 .
+	g¥l™_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šŒ_cÚf
+ = {
+
+98 .
+lsc
+ = 1,
+
+104 .
+	g´omisc
+ = 1,
+
+107 cÚ¡ 
+­p_pktq_hwq_š_·¿ms
+ 
+	gdeçuÉ_hwq_š_·¿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_ä“_th»sh
+ = 64,
+
+120 .
+	grx_drÝ_’
+ = 0,
+
+121 .
+	grx_deã¼ed_¡¬t
+ = 0,
+
+125 cÚ¡ 
+­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_»Œ›s
+ = 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_ä“_th»sh
+ = 0,
+
+140 .
+	gtxq_æags
+ = 
+ETH_TXQ_FLAGS_NOMULTSEGS
+ |
+
+141 
+ETH_TXQ_FLAGS_NOOFFLOADS
+,
+
+142 .
+	gtx_deã¼ed_¡¬t
+ = 0,
+
+146 cÚ¡ 
+­p_pktq_swq_·¿ms
+ 
+	gdeçuÉ_swq_·¿ms
+ = {
+
+147 .
+·r£d
+ = 0,
+
+148 .
+	gsize
+ = 256,
+
+149 .
+	gbur¡_»ad
+ = 32,
+
+150 .
+	gbur¡_wr™e
+ = 32,
+
+151 .
+	gdrÝËss
+ = 0,
+
+152 .
+	gn_»Œ›s
+ = 0,
+
+153 .
+	gýu_sock‘_id
+ = 0,
+
+154 .
+	gv4_äag
+ = 0,
+
+155 .
+	gv6_äag
+ = 0,
+
+156 .
+	gv4_¿s
+ = 0,
+
+157 .
+	gv6_¿s
+ = 0,
+
+158 .
+	gmtu
+ = 0,
+
+159 .
+	gm‘ad©a_size
+ = 0,
+
+160 .
+	gmempoÞ_dœeù_id
+ = 0,
+
+161 .
+	gmempoÞ_šdœeù_id
+ = 0,
+
+164 
+­p_pktq_tm_·¿ms
+ 
+	gdeçuÉ_tm_·¿ms
+ = {
+
+165 .
+·r£d
+ = 0,
+
+166 .
+	gfže_Çme
+ = "./config/tm_profile.cfg",
+
+167 .
+	gbur¡_»ad
+ = 64,
+
+168 .
+	gbur¡_wr™e
+ = 32,
+
+171 
+­p_pktq_sourû_·¿ms
+ 
+	gdeçuÉ_sourû_·¿ms
+ = {
+
+172 .
+·r£d
+ = 0,
+
+173 .
+	gmempoÞ_id
+ = 0,
+
+174 .
+	gbur¡
+ = 32,
+
+175 .
+	gfže_Çme
+ = 
+NULL
+,
+
+176 .
+	gn_by‹s_³r_pkt
+ = 0,
+
+179 
+­p_pktq_sšk_·¿ms
+ 
+	gdeçuÉ_sšk_·¿ms
+ = {
+
+180 .
+·r£d
+ = 0,
+
+181 .
+	gfže_Çme
+ = 
+NULL
+,
+
+182 .
+	gn_pkts_to_dump
+ = 0,
+
+185 
+­p_msgq_·¿ms
+ 
+	gdeçuÉ_msgq_·¿ms
+ = {
+
+186 .
+·r£d
+ = 0,
+
+187 .
+	gsize
+ = 64,
+
+188 .
+	gýu_sock‘_id
+ = 0,
+
+191 
+­p_p–še_·¿ms
+ 
+	gdeçuÉ_p–še_·¿ms
+ = {
+
+192 .
+·r£d
+ = 0,
+
+193 .
+	gsock‘_id
+ = 0,
+
+194 .
+	gcÜe_id
+ = 0,
+
+195 .
+	ghy³r_th_id
+ = 0,
+
+196 .
+	gn_pktq_š
+ = 0,
+
+197 .
+	gn_pktq_out
+ = 0,
+
+198 .
+	gn_msgq_š
+ = 0,
+
+199 .
+	gn_msgq_out
+ = 0,
+
+200 .
+	gtim”_³riod
+ = 1,
+
+201 .
+	gn_¬gs
+ = 0,
+
+204 cÚ¡ 
+	g­p_u§ge
+[] =
+
+220 
+	$­p_´št_u§ge
+(*
+´gÇme
+)
+
+222 
+	`¹e_ex™
+(0, 
+­p_u§ge
+, 
+´gÇme
+, 
+­p_·¿ms_deçuÉ
+.
+cÚfig_fže
+);
+
+223 
+	}
+}
+
+225 
+	#sk_wh™e_¥aûs
+(
+pos
+) \
+
+227 
+	`__ty³of__
+(
+pos
+è
+_p
+ = (pos); \
+
+228  ; 
+	`is¥aû
+(*
+_p
+); _p++); \
+
+229 
+_p
+; \
+
+230 })
+
+	)
+
+232 
+	#PARSER_PARAM_ADD_CHECK
+(
+»suÉ
+, 
+·¿ms_¬¿y
+, 
+£ùiÚ_Çme
+) \
+
+234 
+	`APP_CHECK
+((
+»suÉ
+ !ð-
+EINVAL
+), \
+
+236 
+	`APP_CHECK
+((
+»suÉ
+ !ð-
+ENOMEM
+), \
+
+237 "P¬£ƒ¼Ü:oØmªy \"%s\" seùiÚs", 
+£ùiÚ_Çme
+); \
+
+238 
+	`APP_CHECK
+(((
+»suÉ
+ >ð0è&& (
+·¿ms_¬¿y
+)[»suÉ].
+·r£d
+ == 0),\
+
+239 "P¬£ƒ¼Ü: du¶iÿ‹ \"%s\" seùiÚ", 
+£ùiÚ_Çme
+); \
+
+240 
+	`APP_CHECK
+((
+»suÉ
+ >= 0), \
+
+241 "P¬£ƒ¼Ü iÀ£ùiÚ \"%s\"", 
+£ùiÚ_Çme
+); \
+
+242 } 0)
+
+	)
+
+245 
+	$·r£r_»ad_¬g_boÞ
+(cÚ¡ *
+p
+)
+
+247 
+p
+ = 
+	`sk_wh™e_¥aûs
+(p);
+
+248 
+»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_wh™e_¥aûs
+(p);
+
+276 ià(
+p
+[0] != '\0')
+
+277  -
+EINVAL
+;
+
+279  
+»suÉ
+;
+
+280 
+	}
+}
+
+282 
+	#PARSE_ERROR
+(
+exp
+, 
+£ùiÚ
+, 
+’Œy
+) \
+
+283 
+	`APP_CHECK
+(
+exp
+, "P¬£ƒ¼Ü iÀ£ùiÚ \"%s\":ƒÁry \"%s\"\n", 
+£ùiÚ
+, 
+’Œy
+)
+
+	)
+
+285 
+	#PARSE_ERROR_MESSAGE
+(
+exp
+, 
+£ùiÚ
+, 
+’Œy
+, 
+mes§ge
+) \
+
+286 
+	`APP_CHECK
+(
+exp
+, "Parseƒrror in section \"%s\",ƒntry \"%s\": %s\n", \
+
+287 
+£ùiÚ
+, 
+’Œy
+, 
+mes§ge
+)
+
+	)
+
+290 
+	#PARSE_ERROR_MALLOC
+(
+exp
+) \
+
+291 
+	`APP_CHECK
+(
+exp
+, "P¬£ƒ¼Ü:‚Øä“ memÜy\n")
+
+	)
+
+293 
+	#PARSE_ERROR_SECTION
+(
+exp
+, 
+£ùiÚ
+) \
+
+294 
+	`APP_CHECK
+(
+exp
+, "P¬£ƒ¼Ü iÀ£ùiÚ \"%s\"", 
+£ùiÚ
+)
+
+	)
+
+296 
+	#PARSE_ERROR_SECTION_NO_ENTRIES
+(
+exp
+, 
+£ùiÚ
+) \
+
+297 
+	`APP_CHECK
+(
+exp
+, "P¬£ƒ¼Ü iÀ£ùiÚ \"%s\":‚Ø’Œ›s\n", 
+£ùiÚ
+)
+
+	)
+
+299 
+	#PARSE_WARNING_IGNORED
+(
+exp
+, 
+£ùiÚ
+, 
+’Œy
+) \
+
+301 ià(!(
+exp
+)) \
+
+302 
+	`årštf
+(
+¡d”r
+, "Parse warning in section \"%s\": " \
+
+303 "’Œy \"%s\" i ignÜed\n", 
+£ùiÚ
+, 
+’Œy
+); \
+
+304 0)
+
+	)
+
+306 
+	#PARSE_ERROR_INVALID
+(
+exp
+, 
+£ùiÚ
+, 
+’Œy
+) \
+
+307 
+	`APP_CHECK
+(
+exp
+, "Parseƒrror in section \"%s\": unrecognizedƒntry \"%s\"\n",\
+
+308 
+£ùiÚ
+, 
+’Œy
+)
+
+	)
+
+310 
+	#PARSE_ERROR_DUPLICATE
+(
+exp
+, 
+£ùiÚ
+, 
+’Œy
+) \
+
+311 
+	`APP_CHECK
+(
+exp
+, "Parseƒrror in section \"%s\": duplicateƒntry \"%s\"\n",\
+
+312 
+£ùiÚ
+, 
+’Œy
+)
+
+	)
+
+315 
+	$·r£r_»ad_ušt64
+(
+ušt64_t
+ *
+v®ue
+, cÚ¡ *
+p
+)
+
+317 *
+Ãxt
+;
+
+318 
+ušt64_t
+ 
+v®
+;
+
+320 
+p
+ = 
+	`sk_wh™e_¥aûs
+(p);
+
+321 ià(!
+	`isdig™
+(*
+p
+))
+
+322  -
+EINVAL
+;
+
+324 
+v®
+ = 
+	`¡¹oul
+(
+p
+, &
+Ãxt
+, 10);
+
+325 ià(
+p
+ =ð
+Ãxt
+)
+
+326  -
+EINVAL
+;
+
+328 
+p
+ = 
+Ãxt
+;
+
+329 *
+p
+) {
+
+331 
+v®
+ *= 1024ULL;
+
+334 
+v®
+ *= 1024ULL;
+
+337 
+v®
+ *= 1024ULL;
+
+341 
+v®
+ *= 1024ULL;
+
+342 
+p
+++;
+
+346 
+p
+ = 
+	`sk_wh™e_¥aûs
+(p);
+
+347 ià(*
+p
+ != '\0')
+
+348  -
+EINVAL
+;
+
+350 *
+v®ue
+ = 
+v®
+;
+
+352 
+	}
+}
+
+355 
+	$·r£r_»ad_ušt32
+(
+ušt32_t
+ *
+v®ue
+, cÚ¡ *
+p
+)
+
+357 
+ušt64_t
+ 
+v®
+ = 0;
+
+358 
+»t
+ = 
+	`·r£r_»ad_ušt64
+(&
+v®
+, 
+p
+);
+
+360 ià(
+»t
+ < 0)
+
+361  
+»t
+;
+
+363 ià(
+v®
+ > 
+UINT32_MAX
+)
+
+364  -
+ERANGE
+;
+
+366 *
+v®ue
+ = 
+v®
+;
+
+368 
+	}
+}
+
+371 
+	$·r£_p–še_cÜe
+(
+ušt32_t
+ *
+sock‘
+,
+
+372 
+ušt32_t
+ *
+cÜe
+,
+
+373 
+ušt32_t
+ *
+ht
+,
+
+374 cÚ¡ *
+’Œy
+)
+
+376 
+size_t
+ 
+num_Ën
+;
+
+377 
+num
+[8];
+
+379 
+ušt32_t
+ 
+s
+ = 0, 
+c
+ = 0, 
+h
+ = 0, 
+v®
+;
+
+380 
+ušt8_t
+ 
+s_·r£d
+ = 0, 
+c_·r£d
+ = 0, 
+h_·r£d
+ = 0;
+
+381 cÚ¡ *
+Ãxt
+ = 
+	`sk_wh™e_¥aûs
+(
+’Œy
+);
+
+382 
+ty³
+;
+
+385 *
+Ãxt
+ != '\0') {
+
+387 ià(
+s_·r£d
+ && 
+c_·r£d
+ && 
+h_·r£d
+)
+
+388  -
+EINVAL
+;
+
+390 
+ty³
+ = *
+Ãxt
+;
+
+391 
+ty³
+) {
+
+394 ià(
+s_·r£d
+ || 
+c_·r£d
+ || 
+h_·r£d
+)
+
+395  -
+EINVAL
+;
+
+396 
+s_·r£d
+ = 1;
+
+397 
+Ãxt
+++;
+
+401 ià(
+c_·r£d
+ || 
+h_·r£d
+)
+
+402  -
+EINVAL
+;
+
+403 
+c_·r£d
+ = 1;
+
+404 
+Ãxt
+++;
+
+408 ià(
+h_·r£d
+)
+
+409  -
+EINVAL
+;
+
+410 
+h_·r£d
+ = 1;
+
+411 
+Ãxt
+++;
+
+415 ià(!
+	`isdig™
+(*
+Ãxt
+è|| 
+s_·r£d
+ || 
+c_·r£d
+ || 
+h_·r£d
+)
+
+416  -
+EINVAL
+;
+
+418 
+ty³
+ = 'C';
+
+421 
+num_Ën
+ = 0; *
+Ãxt
+ != '\0';‚ext++,‚um_len++) {
+
+422 ià(
+num_Ën
+ =ð
+	`RTE_DIM
+(
+num
+))
+
+423  -
+EINVAL
+;
+
+425 ià(!
+	`isdig™
+(*
+Ãxt
+))
+
+428 
+num
+[
+num_Ën
+] = *
+Ãxt
+;
+
+431 ià(
+num_Ën
+ =ð0 && 
+ty³
+ != 'h' &&ype != 'H')
+
+432  -
+EINVAL
+;
+
+434 ià(
+num_Ën
+ !ð0 && (
+ty³
+ == 'h' ||ype == 'H'))
+
+435  -
+EINVAL
+;
+
+436 if(
+num_Ën
+ < (
+num
+))
+
+437 
+num
+[
+num_Ën
+] = '\0';
+
+438 
+v®
+ = 
+	`¡¹Þ
+(
+num
+, 
+NULL
+, 10);
+
+440 
+h
+ = 0;
+
+441 
+ty³
+) {
+
+444 
+s
+ = 
+v®
+;
+
+448 
+c
+ = 
+v®
+;
+
+452 
+h
+ = 1;
+
+457 *
+sock‘
+ = 
+s
+;
+
+458 *
+cÜe
+ = 
+c
+;
+
+459 *
+ht
+ = 
+h
+;
+
+461 
+	}
+}
+
+463 
+ušt32_t
+
+
+464 
+	$g‘_hex_v®
+(
+c
+)
+
+466 
+c
+) {
+
+469  
+c
+ - '0';
+
+471  
+c
+ - 'A' + 10;
+
+473  
+c
+ - 'a' + 10;
+
+477 
+	}
+}
+
+480 
+	$·r£_hex_¡ršg
+(*
+¤c
+, 
+ušt8_t
+ *
+d¡
+, 
+ušt32_t
+ *
+size
+)
+
+482 *
+c
+;
+
+483 
+ušt32_t
+ 
+Ën
+, 
+i
+;
+
+486 ià((
+¤c
+ =ð
+NULL
+) ||
+
+487 (
+d¡
+ =ð
+NULL
+) ||
+
+488 (
+size
+ =ð
+NULL
+) ||
+
+489 (*
+size
+ == 0))
+
+492 
+Ën
+ = 
+	`¡¾’
+(
+¤c
+);
+
+493 ià(((
+Ën
+ & 3) != 0) ||
+
+494 (
+Ën
+ > (*
+size
+) * 2))
+
+496 *
+size
+ = 
+Ën
+ / 2;
+
+498 
+c
+ = 
+¤c
+; *c != 0; c++) {
+
+499 ià((((*
+c
+) >= '0') && ((*c) <= '9')) ||
+
+500 (((*
+c
+) >= 'A') && ((*c) <= 'F')) ||
+
+501 (((*
+c
+) >= 'a') && ((*c) <= 'f')))
+
+508 
+i
+ = 0; i < *
+size
+; i++)
+
+509 
+d¡
+[
+i
+] = 
+	`g‘_hex_v®
+(
+¤c
+[2 * i]) * 16 +
+
+510 
+	`g‘_hex_v®
+(
+¤c
+[2 * 
+i
+ + 1]);
+
+513 
+	}
+}
+
+515 
+size_t
+
+
+516 
+	$sk_dig™s
+(cÚ¡ *
+¤c
+)
+
+518 
+size_t
+ 
+i
+;
+
+520 
+i
+ = 0; 
+	`isdig™
+(
+¤c
+[i]); i++);
+
+522  
+i
+;
+
+523 
+	}
+}
+
+526 
+	$v®id©e_Çme
+(cÚ¡ *
+Çme
+, cÚ¡ *
+´efix
+, 
+num
+)
+
+528 
+size_t
+ 
+i
+, 
+j
+;
+
+530 
+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_dig™s
+(&
+Çme
+[
+i
+]);
+
+547 
+i
+ +ð
+j
+;
+
+548 ià((
+j
+ =ð0è|| (
+Çme
+[
+i
+] != '.'))
+
+550 
+i
+++;
+
+553 ià(
+num
+ == 1) {
+
+554 
+j
+ = 
+	`sk_dig™s
+(&
+Çme
+[
+i
+]);
+
+555 
+i
+ +ð
+j
+;
+
+556 ià((
+j
+ =ð0è|| (
+Çme
+[
+i
+] != '\0'))
+
+561 
+	}
+}
+
+564 
+	$·r£_—l
+(
+­p_·¿ms
+ *
+­p
+,
+
+565 cÚ¡ *
+£ùiÚ_Çme
+,
+
+566 
+¹e_cfgfže
+ *
+cfg
+)
+
+568 
+­p_—l_·¿ms
+ *
+p
+ = &
+­p
+->
+—l_·¿ms
+;
+
+569 
+¹e_cfgfže_’Œy
+ *
+’Œ›s
+;
+
+570 
+n_’Œ›s
+, 
+i
+;
+
+572 
+n_’Œ›s
+ = 
+	`¹e_cfgfže_£ùiÚ_num_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+);
+
+573 
+	`PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_’Œ›s
+ > 0), 
+£ùiÚ_Çme
+);
+
+575 
+’Œ›s
+ = 
+	`m®loc
+(
+n_’Œ›s
+ * (
+¹e_cfgfže_’Œy
+));
+
+576 
+	`PARSE_ERROR_MALLOC
+(
+’Œ›s
+ !ð
+NULL
+);
+
+578 
+	`¹e_cfgfže_£ùiÚ_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+, 
+’Œ›s
+, 
+n_’Œ›s
+);
+
+580 
+i
+ = 0; i < 
+n_’Œ›s
+; i++) {
+
+581 
+¹e_cfgfže_’Œy
+ *
+’Œy
+ = &
+’Œ›s
+[
+i
+];
+
+584 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "c") == 0) {
+
+585 
+	`PARSE_WARNING_IGNORED
+(0, 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+590 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "l") == 0) {
+
+591 
+	`PARSE_WARNING_IGNORED
+(0, 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+596 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "lcores") == 0) {
+
+597 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+cÜem­
+ =ð
+NULL
+),
+
+598 
+£ùiÚ_Çme
+,
+
+599 
+’Œy
+->
+Çme
+);
+
+600 
+p
+->
+cÜem­
+ = 
+	`¡rdup
+(
+’Œy
+->
+v®ue
+);
+
+605 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "master_lcore") == 0) {
+
+606 
+¡©us
+;
+
+608 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+ma¡”_lcÜe_´e£Á
+ == 0),
+
+609 
+£ùiÚ_Çme
+,
+
+610 
+’Œy
+->
+Çme
+);
+
+611 
+p
+->
+ma¡”_lcÜe_´e£Á
+ = 1;
+
+613 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+p
+->
+ma¡”_lcÜe
+,
+
+614 
+’Œy
+->
+v®ue
+);
+
+615 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+620 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "n") == 0) {
+
+621 
+¡©us
+;
+
+623 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+chªÃls_´e£Á
+ == 0),
+
+624 
+£ùiÚ_Çme
+,
+
+625 
+’Œy
+->
+Çme
+);
+
+626 
+p
+->
+chªÃls_´e£Á
+ = 1;
+
+628 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+p
+->
+chªÃls
+, 
+’Œy
+->
+v®ue
+);
+
+629 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+634 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "m") == 0) {
+
+635 
+¡©us
+;
+
+637 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+memÜy_´e£Á
+ == 0),
+
+638 
+£ùiÚ_Çme
+,
+
+639 
+’Œy
+->
+Çme
+);
+
+640 
+p
+->
+memÜy_´e£Á
+ = 1;
+
+642 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+p
+->
+memÜy
+, 
+’Œy
+->
+v®ue
+);
+
+643 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+648 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "r") == 0) {
+
+649 
+¡©us
+;
+
+651 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+¿nks_´e£Á
+ == 0),
+
+652 
+£ùiÚ_Çme
+,
+
+653 
+’Œy
+->
+Çme
+);
+
+654 
+p
+->
+¿nks_´e£Á
+ = 1;
+
+656 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+p
+->
+¿nks
+, 
+’Œy
+->
+v®ue
+);
+
+657 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+662 ià((
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "pci_blacklist") == 0) ||
+
+663 (
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "b") == 0)) {
+
+664 
+ušt32_t
+ 
+i
+;
+
+666 
+i
+ = 0; i < 
+APP_MAX_LINKS
+; i++) {
+
+667 ià(
+p
+->
+pci_bÏckli¡
+[
+i
+])
+
+670 
+p
+->
+pci_bÏckli¡
+[
+i
+] =
+
+671 
+	`¡rdup
+(
+’Œy
+->
+v®ue
+);
+
+672 
+	`PARSE_ERROR_MALLOC
+(
+p
+->
+pci_bÏckli¡
+[
+i
+]);
+
+677 
+	`PARSE_ERROR_MESSAGE
+((
+i
+ < 
+APP_MAX_LINKS
+),
+
+678 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+,
+
+684 ià((
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "pci_whitelist") == 0) ||
+
+685 (
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "w") == 0)) {
+
+686 
+ušt32_t
+ 
+i
+;
+
+688 
+	`PARSE_ERROR_MESSAGE
+((
+­p
+->
+pÜt_mask
+ != 0),
+
+689 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+, "entryo be "
+
+693 
+i
+ = 0; i < 
+APP_MAX_LINKS
+; i++) {
+
+694 ià(
+p
+->
+pci_wh™–i¡
+[
+i
+])
+
+697 
+p
+->
+pci_wh™–i¡
+[
+i
+] = 
+	`¡rdup
+(
+’Œy
+->
+v®ue
+);
+
+698 
+	`PARSE_ERROR_MALLOC
+(
+p
+->
+pci_wh™–i¡
+[
+i
+]);
+
+703 
+	`PARSE_ERROR_MESSAGE
+((
+i
+ < 
+APP_MAX_LINKS
+),
+
+704 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+,
+
+710 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "vdev") == 0) {
+
+711 
+ušt32_t
+ 
+i
+;
+
+713 
+i
+ = 0; i < 
+APP_MAX_LINKS
+; i++) {
+
+714 ià(
+p
+->
+vdev
+[
+i
+])
+
+717 
+p
+->
+vdev
+[
+i
+] = 
+	`¡rdup
+(
+’Œy
+->
+v®ue
+);
+
+718 
+	`PARSE_ERROR_MALLOC
+(
+p
+->
+vdev
+[
+i
+]);
+
+723 
+	`PARSE_ERROR_MESSAGE
+((
+i
+ < 
+APP_MAX_LINKS
+),
+
+724 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+,
+
+730 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "vmware_tsc_map") == 0) {
+
+731 
+v®
+;
+
+733 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+vmw¬e_tsc_m­_´e£Á
+ == 0),
+
+734 
+£ùiÚ_Çme
+,
+
+735 
+’Œy
+->
+Çme
+);
+
+736 
+p
+->
+vmw¬e_tsc_m­_´e£Á
+ = 1;
+
+738 
+v®
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’Œy
+->
+v®ue
+);
+
+739 
+	`PARSE_ERROR
+((
+v®
+ >ð0), 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+740 
+p
+->
+vmw¬e_tsc_m­
+ = 
+v®
+;
+
+745 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "proc_type") == 0) {
+
+746 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+´oc_ty³
+ =ð
+NULL
+),
+
+747 
+£ùiÚ_Çme
+,
+
+748 
+’Œy
+->
+Çme
+);
+
+749 
+p
+->
+´oc_ty³
+ = 
+	`¡rdup
+(
+’Œy
+->
+v®ue
+);
+
+754 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "syslog") == 0) {
+
+755 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+sy¦og
+ =ð
+NULL
+),
+
+756 
+£ùiÚ_Çme
+,
+
+757 
+’Œy
+->
+Çme
+);
+
+758 
+p
+->
+sy¦og
+ = 
+	`¡rdup
+(
+’Œy
+->
+v®ue
+);
+
+763 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "log_level") == 0) {
+
+764 
+¡©us
+;
+
+766 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+log_Ëv–_´e£Á
+ == 0),
+
+767 
+£ùiÚ_Çme
+,
+
+768 
+’Œy
+->
+Çme
+);
+
+769 
+p
+->
+log_Ëv–_´e£Á
+ = 1;
+
+771 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+p
+->
+log_Ëv–
+,
+
+772 
+’Œy
+->
+v®ue
+);
+
+773 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+778 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "v") == 0) {
+
+779 
+v®
+;
+
+781 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+v”siÚ_´e£Á
+ == 0),
+
+782 
+£ùiÚ_Çme
+,
+
+783 
+’Œy
+->
+Çme
+);
+
+784 
+p
+->
+v”siÚ_´e£Á
+ = 1;
+
+786 
+v®
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’Œy
+->
+v®ue
+);
+
+787 
+	`PARSE_ERROR
+((
+v®
+ >ð0), 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+788 
+p
+->
+v”siÚ
+ = 
+v®
+;
+
+793 ià((
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "help") == 0) ||
+
+794 (
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "h") == 0)) {
+
+795 
+v®
+;
+
+797 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+h–p_´e£Á
+ == 0),
+
+798 
+£ùiÚ_Çme
+,
+
+799 
+’Œy
+->
+Çme
+);
+
+800 
+p
+->
+h–p_´e£Á
+ = 1;
+
+802 
+v®
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’Œy
+->
+v®ue
+);
+
+803 
+	`PARSE_ERROR
+((
+v®
+ >ð0), 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+804 
+p
+->
+h–p
+ = 
+v®
+;
+
+809 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "no_huge") == 0) {
+
+810 
+v®
+;
+
+812 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+no_huge_´e£Á
+ == 0),
+
+813 
+£ùiÚ_Çme
+,
+
+814 
+’Œy
+->
+Çme
+);
+
+815 
+p
+->
+no_huge_´e£Á
+ = 1;
+
+817 
+v®
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’Œy
+->
+v®ue
+);
+
+818 
+	`PARSE_ERROR
+((
+v®
+ >ð0), 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+819 
+p
+->
+no_huge
+ = 
+v®
+;
+
+824 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "no_pci") == 0) {
+
+825 
+v®
+;
+
+827 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+no_pci_´e£Á
+ == 0),
+
+828 
+£ùiÚ_Çme
+,
+
+829 
+’Œy
+->
+Çme
+);
+
+830 
+p
+->
+no_pci_´e£Á
+ = 1;
+
+832 
+v®
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’Œy
+->
+v®ue
+);
+
+833 
+	`PARSE_ERROR
+((
+v®
+ >ð0), 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+834 
+p
+->
+no_pci
+ = 
+v®
+;
+
+839 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "no_hpet") == 0) {
+
+840 
+v®
+;
+
+842 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+no_h³t_´e£Á
+ == 0),
+
+843 
+£ùiÚ_Çme
+,
+
+844 
+’Œy
+->
+Çme
+);
+
+845 
+p
+->
+no_h³t_´e£Á
+ = 1;
+
+847 
+v®
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’Œy
+->
+v®ue
+);
+
+848 
+	`PARSE_ERROR
+((
+v®
+ >ð0), 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+849 
+p
+->
+no_h³t
+ = 
+v®
+;
+
+854 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "no_shconf") == 0) {
+
+855 
+v®
+;
+
+857 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+no_shcÚf_´e£Á
+ == 0),
+
+858 
+£ùiÚ_Çme
+,
+
+859 
+’Œy
+->
+Çme
+);
+
+860 
+p
+->
+no_shcÚf_´e£Á
+ = 1;
+
+862 
+v®
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’Œy
+->
+v®ue
+);
+
+863 
+	`PARSE_ERROR
+((
+v®
+ >ð0), 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+864 
+p
+->
+no_shcÚf
+ = 
+v®
+;
+
+869 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "d") == 0) {
+
+870 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+add_driv”
+ =ð
+NULL
+),
+
+871 
+£ùiÚ_Çme
+,
+
+872 
+’Œy
+->
+Çme
+);
+
+873 
+p
+->
+add_driv”
+ = 
+	`¡rdup
+(
+’Œy
+->
+v®ue
+);
+
+878 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "socket_mem") == 0) {
+
+879 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+sock‘_mem
+ =ð
+NULL
+),
+
+880 
+£ùiÚ_Çme
+,
+
+881 
+’Œy
+->
+Çme
+);
+
+882 
+p
+->
+sock‘_mem
+ = 
+	`¡rdup
+(
+’Œy
+->
+v®ue
+);
+
+887 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "huge_dir") == 0) {
+
+888 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+huge_dœ
+ =ð
+NULL
+),
+
+889 
+£ùiÚ_Çme
+,
+
+890 
+’Œy
+->
+Çme
+);
+
+891 
+p
+->
+huge_dœ
+ = 
+	`¡rdup
+(
+’Œy
+->
+v®ue
+);
+
+896 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "file_prefix") == 0) {
+
+897 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+fže_´efix
+ =ð
+NULL
+),
+
+898 
+£ùiÚ_Çme
+,
+
+899 
+’Œy
+->
+Çme
+);
+
+900 
+p
+->
+fže_´efix
+ = 
+	`¡rdup
+(
+’Œy
+->
+v®ue
+);
+
+905 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "base_virtaddr") == 0) {
+
+906 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+ba£_vœddr
+ =ð
+NULL
+),
+
+907 
+£ùiÚ_Çme
+,
+
+908 
+’Œy
+->
+Çme
+);
+
+909 
+p
+->
+ba£_vœddr
+ = 
+	`¡rdup
+(
+’Œy
+->
+v®ue
+);
+
+914 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "create_uio_dev") == 0) {
+
+915 
+v®
+;
+
+917 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+ü—‹_uio_dev_´e£Á
+ == 0),
+
+918 
+£ùiÚ_Çme
+,
+
+919 
+’Œy
+->
+Çme
+);
+
+920 
+p
+->
+ü—‹_uio_dev_´e£Á
+ = 1;
+
+922 
+v®
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’Œy
+->
+v®ue
+);
+
+923 
+	`PARSE_ERROR
+((
+v®
+ >ð0), 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+924 
+p
+->
+ü—‹_uio_dev
+ = 
+v®
+;
+
+929 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "vfio_intr") == 0) {
+
+930 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+vfio_šŒ
+ =ð
+NULL
+),
+
+931 
+£ùiÚ_Çme
+,
+
+932 
+’Œy
+->
+Çme
+);
+
+933 
+p
+->
+vfio_šŒ
+ = 
+	`¡rdup
+(
+’Œy
+->
+v®ue
+);
+
+938 ià(
+	`¡rcmp
+(
+’Œy
+->
+Çme
+, "xen_dom0") == 0) {
+
+939 
+v®
+;
+
+941 
+	`PARSE_ERROR_DUPLICATE
+((
+p
+->
+x’_dom0_´e£Á
+ == 0),
+
+942 
+£ùiÚ_Çme
+,
+
+943 
+’Œy
+->
+Çme
+);
+
+944 
+p
+->
+x’_dom0_´e£Á
+ = 1;
+
+946 
+v®
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’Œy
+->
+v®ue
+);
+
+947 
+	`PARSE_ERROR
+((
+v®
+ >ð0), 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+948 
+p
+->
+x’_dom0
+ = 
+v®
+;
+
+953 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’Œy
+->
+Çme
+);
+
+956 
+	`ä“
+(
+’Œ›s
+);
+
+957 
+	}
+}
+
+960 
+	$·r£_p–še_pÿp_sourû
+(
+­p_·¿ms
+ *
+­p
+,
+
+961 
+­p_p–še_·¿ms
+ *
+p
+,
+
+962 cÚ¡ *
+fže_Çme
+, cÚ¡ *
+ý_size
+)
+
+964 cÚ¡ *
+Ãxt
+ = 
+NULL
+;
+
+965 *
+’d
+;
+
+966 
+ušt32_t
+ 
+i
+;
+
+967 
+·r£_fže
+ = 0;
+
+969 ià(
+fže_Çme
+ && !
+ý_size
+) {
+
+970 
+Ãxt
+ = 
+fže_Çme
+;
+
+971 
+·r£_fže
+ = 1;
+
+972 } ià(
+ý_size
+ && !
+fže_Çme
+) {
+
+973 
+Ãxt
+ = 
+ý_size
+;
+
+974 
+·r£_fže
+ = 0;
+
+976  -
+EINVAL
+;
+
+978 
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+979 
+size_t
+ 
+Çme_Ën
+;
+
+981 ià(
+p
+->
+n_pktq_š
+ == 0)
+
+982  -
+EINVAL
+;
+
+984 
+i
+ = 0;
+
+985 *
+Ãxt
+ != '\0') {
+
+986 
+ušt32_t
+ 
+id
+;
+
+988 ià(
+i
+ >ð
+p
+->
+n_pktq_š
+)
+
+989  -
+EINVAL
+;
+
+991 
+id
+ = 
+p
+->
+pktq_š
+[
+i
+].id;
+
+993 
+’d
+ = 
+	`¡rchr
+(
+Ãxt
+, ' ');
+
+994 ià(!
+’d
+)
+
+995 
+Çme_Ën
+ = 
+	`¡¾’
+(
+Ãxt
+);
+
+997 
+Çme_Ën
+ = 
+’d
+ - 
+Ãxt
+;
+
+999 ià(
+Çme_Ën
+ =ð0 ||‚ame_ËÀ=ð(
+Çme
+))
+
+1000  -
+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že
+) {
+
+1009 
+­p
+->
+sourû_·¿ms
+[
+id
+].
+fže_Çme
+ = 
+	`¡rdup
+(
+Çme
+);
+
+1010 ià(
+­p
+->
+sourû_·¿ms
+[
+id
+].
+fže_Çme
+ =ð
+NULL
+)
+
+1011  -
+ENOMEM
+;
+
+1013 ià(
+	`·r£r_»ad_ušt32
+(
+
+1014 &
+­p
+->
+sourû_·¿ms
+[
+id
+].
+n_by‹s_³r_pkt
+,
+
+1015 
+Çme
+) != 0) {
+
+1016 ià(
+­p
+->
+sourû_·¿ms
+[
+id
+].
+
+1017 
+fže_Çme
+ !ð
+NULL
+)
+
+1018 
+	`ä“
+(
+­p
+->
+sourû_·¿ms
+[
+id
+].
+
+1019 
+fže_Çme
+);
+
+1020  -
+EINVAL
+;
+
+1024 
+i
+++;
+
+1026 ià(
+i
+ =ð
+p
+->
+n_pktq_š
+)
+
+1030  -
+EINVAL
+;
+
+1031 
+	}
+}
+
+1034 
+	$·r£_p–še_pÿp_sšk
+(
+­p_·¿ms
+ *
+­p
+,
+
+1035 
+­p_p–še_·¿ms
+ *
+p
+,
+
+1036 cÚ¡ *
+fže_Çme
+, cÚ¡ *
+n_pkts_to_dump
+)
+
+1038 cÚ¡ *
+Ãxt
+ = 
+NULL
+;
+
+1039 *
+’d
+;
+
+1040 
+ušt32_t
+ 
+i
+;
+
+1041 
+·r£_fže
+ = 0;
+
+1043 ià(
+fže_Çme
+ && !
+n_pkts_to_dump
+) {
+
+1044 
+Ãxt
+ = 
+fže_Çme
+;
+
+1045 
+·r£_fže
+ = 1;
+
+1046 } ià(
+n_pkts_to_dump
+ && !
+fže_Çme
+) {
+
+1047 
+Ãxt
+ = 
+n_pkts_to_dump
+;
+
+1048 
+·r£_fže
+ = 0;
+
+1050  -
+EINVAL
+;
+
+1052 
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+1053 
+size_t
+ 
+Çme_Ën
+;
+
+1055 ià(
+p
+->
+n_pktq_out
+ == 0)
+
+1056  -
+EINVAL
+;
+
+1058 
+i
+ = 0;
+
+1059 *
+Ãxt
+ != '\0') {
+
+1060 
+ušt32_t
+ 
+id
+;
+
+1062 ià(
+i
+ >ð
+p
+->
+n_pktq_out
+)
+
+1063  -
+EINVAL
+;
+
+1065 
+id
+ = 
+p
+->
+pktq_out
+[
+i
+].id;
+
+1067 
+’d
+ = 
+	`¡rchr
+(
+Ãxt
+, ' ');
+
+1068 ià(!
+’d
+)
+
+1069 
+Çme_Ën
+ = 
+	`¡¾’
+(
+Ãxt
+);
+
+1071 
+Çme_Ën
+ = 
+’d
+ - 
+Ãxt
+;
+
+1073 ià(
+Çme_Ën
+ =ð0 ||‚ame_ËÀ=ð(
+Çme
+))
+
+1074  -
+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že
+) {
+
+1083 
+­p
+->
+sšk_·¿ms
+[
+id
+].
+fže_Çme
+ = 
+	`¡rdup
+(
+Çme
+);
+
+1084 ià(
+­p
+->
+sšk_·¿ms
+[
+id
+].
+fže_Çme
+ =ð
+NULL
+)
+
+1085  -
+ENOMEM
+;
+
+1087 ià(
+	`·r£r_»ad_ušt32
+(
+
+1088 &
+­p
+->
+sšk_·¿ms
+[
+id
+].
+n_pkts_to_dump
+,
+
+1089 
+Çme
+) != 0) {
+
+1090 ià(
+­p
+->
+sšk_·¿ms
+[
+id
+].
+fže_Çme
+ !=
+
+1091 
+NULL
+)
+
+1092 
+	`ä“
+(
+­p
+->
+sšk_·¿ms
+[
+id
+].
+
+1093 
+fže_Çme
+);
+
+1094  -
+EINVAL
+;
+
+1098 
+i
+++;
+
+1100 ià(
+i
+ =ð
+p
+->
+n_pktq_out
+)
+
+1104  -
+EINVAL
+;
+
+1105 
+	}
+}
+
+1108 
+	$·r£_p–še_pktq_š
+(
+­p_·¿ms
+ *
+­p
+,
+
+1109 
+­p_p–še_·¿ms
+ *
+p
+,
+
+1110 cÚ¡ *
+v®ue
+)
+
+1112 cÚ¡ *
+Ãxt
+ = 
+v®ue
+;
+
+1113 if(
+Ãxt
+ =ð
+NULL
+)
+
+1114  -
+EINVAL
+;
+
+1115 *
+’d
+;
+
+1116 
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+1117 
+size_t
+ 
+Çme_Ën
+;
+
+1119 *
+Ãxt
+ != '\0') {
+
+1120 
+­p_pktq_š_ty³
+ 
+ty³
+;
+
+1121 
+id
+;
+
+1122 *
+’d_¥aû
+;
+
+1123 *
+’d_b
+;
+
+1124 if(
+Ãxt
+ !ð
+NULL
+)
+
+1125 
+Ãxt
+ = 
+	`sk_wh™e_¥aûs
+(next);
+
+1126 ià(!
+Ãxt
+)
+
+1129 
+’d_¥aû
+ = 
+	`¡rchr
+(
+Ãxt
+, ' ');
+
+1130 
+’d_b
+ = 
+	`¡rchr
+(
+Ãxt
+, ' ');
+
+1132 ià(
+’d_¥aû
+ && (!
+’d_b
+))
+
+1133 
+’d
+ = 
+’d_¥aû
+;
+
+1134 ià((!
+’d_¥aû
+è&& 
+’d_b
+)
+
+1135 
+’d
+ = 
+’d_b
+;
+
+1136 ià(
+’d_¥aû
+ && 
+’d_b
+)
+
+1137 
+’d
+ = 
+	`RTE_MIN
+(
+’d_¥aû
+, 
+’d_b
+);
+
+1139 
+’d
+ = 
+NULL
+;
+
+1141 ià(!
+’d
+)
+
+1142 
+Çme_Ën
+ = 
+	`¡¾’
+(
+Ãxt
+);
+
+1144 
+Çme_Ën
+ = 
+’d
+ - 
+Ãxt
+;
+
+1146 ià(
+Çme_Ën
+ =ð0 ||‚ame_ËÀ=ð(
+Çme
+))
+
+1147  -
+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_š_·¿ms
+, 
+Çme
+);
+
+1158 } ià(
+	`v®id©e_Çme
+(
+Çme
+, "SWQ", 1) == 0) {
+
+1159 
+ty³
+ = 
+APP_PKTQ_IN_SWQ
+;
+
+1160 
+id
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+swq_·¿ms
+, 
+Çme
+);
+
+1161 } ià(
+	`v®id©e_Çme
+(
+Çme
+, "TM", 1) == 0) {
+
+1162 
+ty³
+ = 
+APP_PKTQ_IN_TM
+;
+
+1163 
+id
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+tm_·¿ms
+, 
+Çme
+);
+
+1164 } ià(
+	`v®id©e_Çme
+(
+Çme
+, "SOURCE", 1) == 0) {
+
+1165 
+ty³
+ = 
+APP_PKTQ_IN_SOURCE
+;
+
+1166 
+id
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+sourû_·¿ms
+, 
+Çme
+);
+
+1168  -
+EINVAL
+;
+
+1170 ià(
+id
+ < 0)
+
+1171  
+id
+;
+
+1173 
+p
+->
+pktq_š
+[p->
+n_pktq_š
+].
+ty³
+ =ype;
+
+1174 
+p
+->
+pktq_š
+[p->
+n_pktq_š
+].
+id
+ = (
+ušt32_t
+) id;
+
+1175 
+p
+->
+n_pktq_š
+++;
+
+1179 
+	}
+}
+
+1182 
+	$·r£_p–še_pktq_out
+(
+­p_·¿ms
+ *
+­p
+,
+
+1183 
+­p_p–še_·¿ms
+ *
+p
+,
+
+1184 cÚ¡ *
+v®ue
+)
+
+1186 cÚ¡ *
+Ãxt
+ = 
+v®ue
+;
+
+1187 if(
+Ãxt
+ =ð
+NULL
+)
+
+1188  -
+EINVAL
+;
+
+1189 *
+’d
+;
+
+1190 
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+1191 
+size_t
+ 
+Çme_Ën
+;
+
+1193 *
+Ãxt
+ != '\0') {
+
+1194 
+­p_pktq_out_ty³
+ 
+ty³
+;
+
+1195 
+id
+;
+
+1196 *
+’d_¥aû
+;
+
+1197 *
+’d_b
+;
+
+1198 if(
+Ãxt
+ !ð
+NULL
+)
+
+1199 
+Ãxt
+ = 
+	`sk_wh™e_¥aûs
+(next);
+
+1200 ià(!
+Ãxt
+)
+
+1203 
+’d_¥aû
+ = 
+	`¡rchr
+(
+Ãxt
+, ' ');
+
+1204 
+’d_b
+ = 
+	`¡rchr
+(
+Ãxt
+, ' ');
+
+1206 ià(
+’d_¥aû
+ && (!
+’d_b
+))
+
+1207 
+’d
+ = 
+’d_¥aû
+;
+
+1208 ià((!
+’d_¥aû
+è&& 
+’d_b
+)
+
+1209 
+’d
+ = 
+’d_b
+;
+
+1210 ià(
+’d_¥aû
+ && 
+’d_b
+)
+
+1211 
+’d
+ = 
+	`RTE_MIN
+(
+’d_¥aû
+, 
+’d_b
+);
+
+1213 
+’d
+ = 
+NULL
+;
+
+1215 ià(!
+’d
+)
+
+1216 
+Çme_Ën
+ = 
+	`¡¾’
+(
+Ãxt
+);
+
+1218 
+Çme_Ën
+ = 
+’d
+ - 
+Ãxt
+;
+
+1220 ià(
+Çme_Ën
+ =ð0 ||‚ame_ËÀ=ð(
+Çme
+))
+
+1221  -
+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 } ià(
+	`v®id©e_Çme
+(
+Çme
+, "SWQ", 1) == 0) {
+
+1232 
+ty³
+ = 
+APP_PKTQ_OUT_SWQ
+;
+
+1233 
+id
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+swq_·¿ms
+, 
+Çme
+);
+
+1234 } ià(
+	`v®id©e_Çme
+(
+Çme
+, "TM", 1) == 0) {
+
+1235 
+ty³
+ = 
+APP_PKTQ_OUT_TM
+;
+
+1236 
+id
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+tm_·¿ms
+, 
+Çme
+);
+
+1237 } ià(
+	`v®id©e_Çme
+(
+Çme
+, "SINK", 1) == 0) {
+
+1238 
+ty³
+ = 
+APP_PKTQ_OUT_SINK
+;
+
+1239 
+id
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+sšk_·¿ms
+, 
+Çme
+);
+
+1241  -
+EINVAL
+;
+
+1243 ià(
+id
+ < 0)
+
+1244  
+id
+;
+
+1246 
+p
+->
+pktq_out
+[p->
+n_pktq_out
+].
+ty³
+ =ype;
+
+1247 
+p
+->
+pktq_out
+[p->
+n_pktq_out
+].
+id
+ = id;
+
+1248 
+p
+->
+n_pktq_out
+++;
+
+1252 
+	}
+}
+
+1255 
+	$·r£_p–še_msgq_š
+(
+­p_·¿ms
+ *
+­p
+,
+
+1256 
+­p_p–še_·¿ms
+ *
+p
+,
+
+1257 cÚ¡ *
+v®ue
+)
+
+1259 cÚ¡ *
+Ãxt
+ = 
+v®ue
+;
+
+1260 if(
+Ãxt
+ =ð
+NULL
+)
+
+1261  -
+EINVAL
+;
+
+1262 *
+’d
+;
+
+1263 
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+1264 
+size_t
+ 
+Çme_Ën
+;
+
+1265 
+ssize_t
+ 
+idx
+;
+
+1267 *
+Ãxt
+ != '\0') {
+
+1268 *
+’d_¥aû
+;
+
+1269 *
+’d_b
+;
+
+1270 if(
+Ãxt
+ !ð
+NULL
+)
+
+1271 
+Ãxt
+ = 
+	`sk_wh™e_¥aûs
+(next);
+
+1272 ià(!
+Ãxt
+)
+
+1275 
+’d_¥aû
+ = 
+	`¡rchr
+(
+Ãxt
+, ' ');
+
+1276 
+’d_b
+ = 
+	`¡rchr
+(
+Ãxt
+, ' ');
+
+1278 ià(
+’d_¥aû
+ && (!
+’d_b
+))
+
+1279 
+’d
+ = 
+’d_¥aû
+;
+
+1280 ià((!
+’d_¥aû
+è&& 
+’d_b
+)
+
+1281 
+’d
+ = 
+’d_b
+;
+
+1282 ià(
+’d_¥aû
+ && 
+’d_b
+)
+
+1283 
+’d
+ = 
+	`RTE_MIN
+(
+’d_¥aû
+, 
+’d_b
+);
+
+1285 
+’d
+ = 
+NULL
+;
+
+1287 ià(!
+’d
+)
+
+1288 
+Çme_Ën
+ = 
+	`¡¾’
+(
+Ãxt
+);
+
+1290 
+Çme_Ën
+ = 
+’d
+ - 
+Ãxt
+;
+
+1292 ià(
+Çme_Ën
+ =ð0 ||‚ame_ËÀ=ð(
+Çme
+))
+
+1293  -
+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  -
+EINVAL
+;
+
+1304 
+idx
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+msgq_·¿ms
+, 
+Çme
+);
+
+1305 ià(
+idx
+ < 0)
+
+1306  
+idx
+;
+
+1308 
+p
+->
+msgq_š
+[p->
+n_msgq_š
+] = 
+idx
+;
+
+1309 
+p
+->
+n_msgq_š
+++;
+
+1313 
+	}
+}
+
+1316 
+	$·r£_p–še_msgq_out
+(
+­p_·¿ms
+ *
+­p
+,
+
+1317 
+­p_p–še_·¿ms
+ *
+p
+,
+
+1318 cÚ¡ *
+v®ue
+)
+
+1320 cÚ¡ *
+Ãxt
+ = 
+v®ue
+;
+
+1321 if(
+Ãxt
+ =ð
+NULL
+)
+
+1322  -
+EINVAL
+;
+
+1323 *
+’d
+;
+
+1324 
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+1325 
+size_t
+ 
+Çme_Ën
+;
+
+1326 
+ssize_t
+ 
+idx
+;
+
+1328 *
+Ãxt
+ != '\0') {
+
+1329 *
+’d_¥aû
+;
+
+1330 *
+’d_b
+;
+
+1331 if(
+Ãxt
+ !ð
+NULL
+)
+
+1332 
+Ãxt
+ = 
+	`sk_wh™e_¥aûs
+(next);
+
+1333 ià(!
+Ãxt
+)
+
+1336 
+’d_¥aû
+ = 
+	`¡rchr
+(
+Ãxt
+, ' ');
+
+1337 
+’d_b
+ = 
+	`¡rchr
+(
+Ãxt
+, ' ');
+
+1339 ià(
+’d_¥aû
+ && (!
+’d_b
+))
+
+1340 
+’d
+ = 
+’d_¥aû
+;
+
+1341 ià((!
+’d_¥aû
+è&& 
+’d_b
+)
+
+1342 
+’d
+ = 
+’d_b
+;
+
+1343 ià(
+’d_¥aû
+ && 
+’d_b
+)
+
+1344 
+’d
+ = 
+	`RTE_MIN
+(
+’d_¥aû
+, 
+’d_b
+);
+
+1346 
+’d
+ = 
+NULL
+;
+
+1348 ià(!
+’d
+)
+
+1349 
+Çme_Ën
+ = 
+	`¡¾’
+(
+Ãxt
+);
+
+1351 
+Çme_Ën
+ = 
+’d
+ - 
+Ãxt
+;
+
+1353 ià(
+Çme_Ën
+ =ð0 ||‚ame_ËÀ=ð(
+Çme
+))
+
+1354  -
+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  -
+EINVAL
+;
+
+1365 
+idx
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+msgq_·¿ms
+, 
+Çme
+);
+
+1366 ià(
+idx
+ < 0)
+
+1367  
+idx
+;
+
+1369 
+p
+->
+msgq_out
+[p->
+n_msgq_out
+] = 
+idx
+;
+
+1370 
+p
+->
+n_msgq_out
+++;
+
+1374 
+	}
+}
+
+1377 
+	$·r£_p–še
+(
+­p_·¿ms
+ *
+­p
+,
+
+1378 cÚ¡ *
+£ùiÚ_Çme
+,
+
+1379 
+¹e_cfgfže
+ *
+cfg
+)
+
+1381 
+Çme
+[
+CFG_NAME_LEN
+];
+
+1382 
+­p_p–še_·¿ms
+ *
+·¿m
+;
+
+1383 
+¹e_cfgfže_’Œy
+ *
+’Œ›s
+;
+
+1384 
+ssize_t
+ 
+·¿m_idx
+;
+
+1385 
+n_’Œ›s
+, 
+i
+;
+
+1387 
+n_’Œ›s
+ = 
+	`¹e_cfgfže_£ùiÚ_num_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+);
+
+1388 
+	`PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_’Œ›s
+ > 0), 
+£ùiÚ_Çme
+);
+
+1390 
+’Œ›s
+ = 
+	`m®loc
+(
+n_’Œ›s
+ * (
+¹e_cfgfže_’Œy
+));
+
+1391 
+	`PARSE_ERROR_MALLOC
+(
+’Œ›s
+ !ð
+NULL
+);
+
+1393 
+	`¹e_cfgfže_£ùiÚ_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+, 
+’Œ›s
+, 
+n_’Œ›s
+);
+
+1395 
+·¿m_idx
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+p–še_·¿ms
+, 
+£ùiÚ_Çme
+);
+
+1396 
+	`PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+, 
+­p
+->
+p–še_·¿ms
+, 
+£ùiÚ_Çme
+);
+
+1398 
+·¿m
+ = &
+­p
+->
+p–še_·¿ms
+[
+·¿m_idx
+];
+
+1400 
+i
+ = 0; i < 
+n_’Œ›s
+; i++) {
+
+1401 
+¹e_cfgfže_’Œy
+ *
+’t
+ = &
+’Œ›s
+[
+i
+];
+
+1403 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "type") == 0) {
+
+1404 
+w_size
+ = 
+	`¢´štf
+(
+·¿m
+->
+ty³
+, 
+	`RTE_DIM
+(param->type),
+
+1405 "%s", 
+’t
+->
+v®ue
+);
+
+1407 
+	`PARSE_ERROR
+(((
+w_size
+ > 0) &&
+
+1408 (
+w_size
+ < ()
+	`RTE_DIM
+(
+·¿m
+->
+ty³
+))),
+
+1409 
+£ùiÚ_Çme
+,
+
+1410 
+’t
+->
+Çme
+);
+
+1414 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "core") == 0) {
+
+1415 
+¡©us
+ = 
+	`·r£_p–še_cÜe
+(
+
+1416 &
+·¿m
+->
+sock‘_id
+, &·¿m->
+cÜe_id
+,
+
+1417 &
+·¿m
+->
+hy³r_th_id
+, 
+’t
+->
+v®ue
+);
+
+1419 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1420 
+’t
+->
+Çme
+);
+
+1424 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "pktq_in") == 0) {
+
+1425 
+¡©us
+ = 
+	`·r£_p–še_pktq_š
+(
+­p
+, 
+·¿m
+,
+
+1426 
+’t
+->
+v®ue
+);
+
+1428 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1429 
+’t
+->
+Çme
+);
+
+1433 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "pktq_out") == 0) {
+
+1434 
+¡©us
+ = 
+	`·r£_p–še_pktq_out
+(
+­p
+, 
+·¿m
+,
+
+1435 
+’t
+->
+v®ue
+);
+
+1437 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1438 
+’t
+->
+Çme
+);
+
+1442 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "msgq_in") == 0) {
+
+1443 
+¡©us
+ = 
+	`·r£_p–še_msgq_š
+(
+­p
+, 
+·¿m
+,
+
+1444 
+’t
+->
+v®ue
+);
+
+1446 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1447 
+’t
+->
+Çme
+);
+
+1451 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "msgq_out") == 0) {
+
+1452 
+¡©us
+ = 
+	`·r£_p–še_msgq_out
+(
+­p
+, 
+·¿m
+,
+
+1453 
+’t
+->
+v®ue
+);
+
+1455 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1456 
+’t
+->
+Çme
+);
+
+1460 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "timer_period") == 0) {
+
+1461 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+1462 &
+·¿m
+->
+tim”_³riod
+,
+
+1463 
+’t
+->
+v®ue
+);
+
+1465 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1466 
+’t
+->
+Çme
+);
+
+1470 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "pcap_file_rd") == 0) {
+
+1471 
+¡©us
+;
+
+1473 #iâdeà
+RTE_PORT_PCAP
+
+
+1474 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+1477 
+¡©us
+ = 
+	`·r£_p–še_pÿp_sourû
+(
+­p
+,
+
+1478 
+·¿m
+, 
+’t
+->
+v®ue
+, 
+NULL
+);
+
+1480 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1481 
+’t
+->
+Çme
+);
+
+1485 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "pcap_bytes_rd_per_pkt") == 0) {
+
+1486 
+¡©us
+;
+
+1488 #iâdeà
+RTE_PORT_PCAP
+
+
+1489 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+1492 
+¡©us
+ = 
+	`·r£_p–še_pÿp_sourû
+(
+­p
+,
+
+1493 
+·¿m
+, 
+NULL
+, 
+’t
+->
+v®ue
+);
+
+1495 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1496 
+’t
+->
+Çme
+);
+
+1500 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "pcap_file_wr") == 0) {
+
+1501 
+¡©us
+;
+
+1503 #iâdeà
+RTE_PORT_PCAP
+
+
+1504 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+1507 
+¡©us
+ = 
+	`·r£_p–še_pÿp_sšk
+(
+­p
+, 
+·¿m
+,
+
+1508 
+’t
+->
+v®ue
+, 
+NULL
+);
+
+1510 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1511 
+’t
+->
+Çme
+);
+
+1515 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "pcap_n_pkt_wr") == 0) {
+
+1516 
+¡©us
+;
+
+1518 #iâdeà
+RTE_PORT_PCAP
+
+
+1519 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+1522 
+¡©us
+ = 
+	`·r£_p–še_pÿp_sšk
+(
+­p
+, 
+·¿m
+,
+
+1523 
+NULL
+, 
+’t
+->
+v®ue
+);
+
+1525 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1526 
+’t
+->
+Çme
+);
+
+1531 
+	`APP_CHECK
+((
+·¿m
+->
+n_¬gs
+ < 
+APP_MAX_PIPELINE_ARGS
+),
+
+1533 "p–š¥ecif›d…¬am‘”s", 
+£ùiÚ_Çme
+);
+
+1535 
+·¿m
+->
+¬gs_Çme
+[·¿m->
+n_¬gs
+] = 
+	`¡rdup
+(
+’t
+->
+Çme
+);
+
+1536 
+·¿m
+->
+¬gs_v®ue
+[·¿m->
+n_¬gs
+] = 
+	`¡rdup
+(
+’t
+->
+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 
+	`¢´štf
+(
+Çme
+, Ò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‘_id
+ = 
+·¿m
+->
+sock‘_id
+;
+
+1551 
+·¿m
+->
+msgq_š
+[·¿m->
+n_msgq_š
+++] = 
+·¿m_idx
+;
+
+1553 
+	`¢´štf
+(
+Çme
+, Ò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‘_id
+ = 
+·¿m
+->
+sock‘_id
+;
+
+1557 
+·¿m
+->
+msgq_out
+[·¿m->
+n_msgq_out
+++] = 
+·¿m_idx
+;
+
+1559 
+	`¢´štf
+(
+Çme
+, Òame), "MSGQ-REQ-CORE-s%" 
+PRIu32
+ "c%" PRIu32 "%s",
+
+1560 
+·¿m
+->
+sock‘_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‘_id
+ = 
+·¿m
+->
+sock‘_id
+;
+
+1567 
+	`¢´štf
+(
+Çme
+, Òame), "MSGQ-RSP-CORE-s%" 
+PRIu32
+ "c%" PRIu32 "%s",
+
+1568 
+·¿m
+->
+sock‘_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‘_id
+ = 
+·¿m
+->
+sock‘_id
+;
+
+1575 
+	`ä“
+(
+’Œ›s
+);
+
+1576 
+	}
+}
+
+1579 
+	$·r£_mempoÞ
+(
+­p_·¿ms
+ *
+­p
+,
+
+1580 cÚ¡ *
+£ùiÚ_Çme
+,
+
+1581 
+¹e_cfgfže
+ *
+cfg
+)
+
+1583 
+­p_mempoÞ_·¿ms
+ *
+·¿m
+;
+
+1584 
+¹e_cfgfže_’Œy
+ *
+’Œ›s
+;
+
+1585 
+ssize_t
+ 
+·¿m_idx
+;
+
+1586 
+n_’Œ›s
+, 
+i
+;
+
+1588 
+n_’Œ›s
+ = 
+	`¹e_cfgfže_£ùiÚ_num_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+);
+
+1589 
+	`PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_’Œ›s
+ > 0), 
+£ùiÚ_Çme
+);
+
+1591 
+’Œ›s
+ = 
+	`m®loc
+(
+n_’Œ›s
+ * (
+¹e_cfgfže_’Œy
+));
+
+1592 
+	`PARSE_ERROR_MALLOC
+(
+’Œ›s
+ !ð
+NULL
+);
+
+1594 
+	`¹e_cfgfže_£ùiÚ_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+, 
+’Œ›s
+, 
+n_’Œ›s
+);
+
+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 
+i
+ = 0; i < 
+n_’Œ›s
+; i++) {
+
+1602 
+¹e_cfgfže_’Œy
+ *
+’t
+ = &
+’Œ›s
+[
+i
+];
+
+1604 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "buffer_size") == 0) {
+
+1605 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+1606 &
+·¿m
+->
+bufãr_size
+, 
+’t
+->
+v®ue
+);
+
+1608 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1609 
+’t
+->
+Çme
+);
+
+1613 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "pool_size") == 0) {
+
+1614 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+1615 &
+·¿m
+->
+poÞ_size
+, 
+’t
+->
+v®ue
+);
+
+1617 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1618 
+’t
+->
+Çme
+);
+
+1622 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "cache_size") == 0) {
+
+1623 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+1624 &
+·¿m
+->
+ÿche_size
+, 
+’t
+->
+v®ue
+);
+
+1626 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1627 
+’t
+->
+Çme
+);
+
+1631 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "cpu") == 0) {
+
+1632 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+1633 &
+·¿m
+->
+ýu_sock‘_id
+, 
+’t
+->
+v®ue
+);
+
+1635 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1636 
+’t
+->
+Çme
+);
+
+1641 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+1644 
+·¿m
+->
+·r£d
+ = 1;
+
+1646 
+	`ä“
+(
+’Œ›s
+);
+
+1647 
+	}
+}
+
+1650 
+	$·r£_lšk
+(
+­p_·¿ms
+ *
+­p
+,
+
+1651 cÚ¡ *
+£ùiÚ_Çme
+,
+
+1652 
+¹e_cfgfže
+ *
+cfg
+)
+
+1654 
+­p_lšk_·¿ms
+ *
+·¿m
+;
+
+1655 
+¹e_cfgfže_’Œy
+ *
+’Œ›s
+;
+
+1656 
+n_’Œ›s
+, 
+i
+;
+
+1657 
+pci_bdf_´e£Á
+ = 0;
+
+1658 
+ssize_t
+ 
+·¿m_idx
+;
+
+1660 
+n_’Œ›s
+ = 
+	`¹e_cfgfže_£ùiÚ_num_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+);
+
+1661 
+	`PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_’Œ›s
+ > 0), 
+£ùiÚ_Çme
+);
+
+1663 
+’Œ›s
+ = 
+	`m®loc
+(
+n_’Œ›s
+ * (
+¹e_cfgfže_’Œy
+));
+
+1664 
+	`PARSE_ERROR_MALLOC
+(
+’Œ›s
+ !ð
+NULL
+);
+
+1666 
+	`¹e_cfgfže_£ùiÚ_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+, 
+’Œ›s
+, 
+n_’Œ›s
+);
+
+1668 
+·¿m_idx
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+lšk_·¿ms
+, 
+£ùiÚ_Çme
+);
+
+1669 
+	`PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+, 
+­p
+->
+lšk_·¿ms
+, 
+£ùiÚ_Çme
+);
+
+1671 
+·¿m
+ = &
+­p
+->
+lšk_·¿ms
+[
+·¿m_idx
+];
+
+1673 
+i
+ = 0; i < 
+n_’Œ›s
+; i++) {
+
+1674 
+¹e_cfgfže_’Œy
+ *
+’t
+ = &
+’Œ›s
+[
+i
+];
+
+1676 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "promisc") == 0) {
+
+1677 
+¡©us
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’t
+->
+v®ue
+);
+
+1679 
+	`PARSE_ERROR
+((
+¡©us
+ !ð-
+EINVAL
+), 
+£ùiÚ_Çme
+,
+
+1680 
+’t
+->
+Çme
+);
+
+1681 
+·¿m
+->
+´omisc
+ = 
+¡©us
+;
+
+1685 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "arp_q") == 0) {
+
+1686 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+·¿m
+->
+¬p_q
+,
+
+1687 
+’t
+->
+v®ue
+);
+
+1689 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1690 
+’t
+->
+Çme
+);
+
+1694 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "tcp_syn_q") == 0) {
+
+1695 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+1696 &
+·¿m
+->
+tý_syn_q
+, 
+’t
+->
+v®ue
+);
+
+1698 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+1702 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "ip_local_q") == 0) {
+
+1703 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+1704 &
+·¿m
+->
+_loÿl_q
+, 
+’t
+->
+v®ue
+);
+
+1706 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1707 
+’t
+->
+Çme
+);
+
+1712 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "tcp_local_q") == 0) {
+
+1713 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+1714 &
+·¿m
+->
+tý_loÿl_q
+, 
+’t
+->
+v®ue
+);
+
+1716 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1717 
+’t
+->
+Çme
+);
+
+1721 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "udp_local_q") == 0) {
+
+1722 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+1723 &
+·¿m
+->
+udp_loÿl_q
+, 
+’t
+->
+v®ue
+);
+
+1725 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1726 
+’t
+->
+Çme
+);
+
+1730 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "sctp_local_q") == 0) {
+
+1731 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+1732 &
+·¿m
+->
+sùp_loÿl_q
+, 
+’t
+->
+v®ue
+);
+
+1734 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1735 
+’t
+->
+Çme
+);
+
+1739 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "pci_bdf") == 0) {
+
+1740 
+	`PARSE_ERROR_DUPLICATE
+((
+pci_bdf_´e£Á
+ == 0),
+
+1741 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+1743 
+	`¢´štf
+(
+·¿m
+->
+pci_bdf
+, 
+APP_LINK_PCI_BDF_SIZE
+,
+
+1744 "%s", 
+’t
+->
+v®ue
+);
+
+1745 
+pci_bdf_´e£Á
+ = 1;
+
+1750 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Ç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 
+	`ä“
+(
+’Œ›s
+);
+
+1767 
+	}
+}
+
+1770 
+	$·r£_rxq
+(
+­p_·¿ms
+ *
+­p
+,
+
+1771 cÚ¡ *
+£ùiÚ_Çme
+,
+
+1772 
+¹e_cfgfže
+ *
+cfg
+)
+
+1774 
+­p_pktq_hwq_š_·¿ms
+ *
+·¿m
+;
+
+1775 
+¹e_cfgfže_’Œy
+ *
+’Œ›s
+;
+
+1776 
+n_’Œ›s
+, 
+i
+;
+
+1777 
+ssize_t
+ 
+·¿m_idx
+;
+
+1779 
+n_’Œ›s
+ = 
+	`¹e_cfgfže_£ùiÚ_num_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+);
+
+1780 
+	`PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_’Œ›s
+ > 0), 
+£ùiÚ_Çme
+);
+
+1782 
+’Œ›s
+ = 
+	`m®loc
+(
+n_’Œ›s
+ * (
+¹e_cfgfže_’Œy
+));
+
+1783 
+	`PARSE_ERROR_MALLOC
+(
+’Œ›s
+ !ð
+NULL
+);
+
+1785 
+	`¹e_cfgfže_£ùiÚ_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+, 
+’Œ›s
+, 
+n_’Œ›s
+);
+
+1787 
+·¿m_idx
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+hwq_š_·¿ms
+, 
+£ùiÚ_Çme
+);
+
+1788 
+	`PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+, 
+­p
+->
+hwq_š_·¿ms
+, 
+£ùiÚ_Çme
+);
+
+1790 
+·¿m
+ = &
+­p
+->
+hwq_š_·¿ms
+[
+·¿m_idx
+];
+
+1792 
+i
+ = 0; i < 
+n_’Œ›s
+; i++) {
+
+1793 
+¹e_cfgfže_’Œy
+ *
+’t
+ = &
+’Œ›s
+[
+i
+];
+
+1795 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "mempool") == 0) {
+
+1796 
+¡©us
+ = 
+	`v®id©e_Çme
+(
+’t
+->
+v®ue
+,
+
+1798 
+ssize_t
+ 
+idx
+;
+
+1800 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1801 
+’t
+->
+Çme
+);
+
+1802 
+idx
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+mempoÞ_·¿ms
+,
+
+1803 
+’t
+->
+v®ue
+);
+
+1804 
+	`PARSER_PARAM_ADD_CHECK
+(
+idx
+, 
+­p
+->
+mempoÞ_·¿ms
+,
+
+1805 
+£ùiÚ_Çme
+);
+
+1806 
+·¿m
+->
+mempoÞ_id
+ = 
+idx
+;
+
+1810 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "size") == 0) {
+
+1811 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+·¿m
+->
+size
+,
+
+1812 
+’t
+->
+v®ue
+);
+
+1814 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1815 
+’t
+->
+Çme
+);
+
+1819 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "burst") == 0) {
+
+1820 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+·¿m
+->
+bur¡
+,
+
+1821 
+’t
+->
+v®ue
+);
+
+1823 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1824 
+’t
+->
+Çme
+);
+
+1829 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+1832 
+·¿m
+->
+·r£d
+ = 1;
+
+1834 
+	`ä“
+(
+’Œ›s
+);
+
+1835 
+	}
+}
+
+1838 
+	$·r£_txq
+(
+­p_·¿ms
+ *
+­p
+,
+
+1839 cÚ¡ *
+£ùiÚ_Çme
+,
+
+1840 
+¹e_cfgfže
+ *
+cfg
+)
+
+1842 
+­p_pktq_hwq_out_·¿ms
+ *
+·¿m
+;
+
+1843 
+¹e_cfgfže_’Œy
+ *
+’Œ›s
+;
+
+1844 
+n_’Œ›s
+, 
+i
+;
+
+1845 
+ssize_t
+ 
+·¿m_idx
+;
+
+1847 
+n_’Œ›s
+ = 
+	`¹e_cfgfže_£ùiÚ_num_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+);
+
+1848 
+	`PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_’Œ›s
+ > 0), 
+£ùiÚ_Çme
+);
+
+1850 
+’Œ›s
+ = 
+	`m®loc
+(
+n_’Œ›s
+ * (
+¹e_cfgfže_’Œy
+));
+
+1851 
+	`PARSE_ERROR_MALLOC
+(
+’Œ›s
+ !ð
+NULL
+);
+
+1853 
+	`¹e_cfgfže_£ùiÚ_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+, 
+’Œ›s
+, 
+n_’Œ›s
+);
+
+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 
+i
+ = 0; i < 
+n_’Œ›s
+; i++) {
+
+1861 
+¹e_cfgfže_’Œy
+ *
+’t
+ = &
+’Œ›s
+[
+i
+];
+
+1863 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "size") == 0) {
+
+1864 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+·¿m
+->
+size
+,
+
+1865 
+’t
+->
+v®ue
+);
+
+1867 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1868 
+’t
+->
+Çme
+);
+
+1872 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "burst") == 0) {
+
+1873 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+·¿m
+->
+bur¡
+,
+
+1874 
+’t
+->
+v®ue
+);
+
+1876 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1877 
+’t
+->
+Çme
+);
+
+1881 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "dropless") == 0) {
+
+1882 
+¡©us
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’t
+->
+v®ue
+);
+
+1885 
+	`PARSE_ERROR
+((
+¡©us
+ !ð-
+EINVAL
+), 
+£ùiÚ_Çme
+,
+
+1886 
+’t
+->
+Çme
+);
+
+1887 
+·¿m
+->
+drÝËss
+ = 
+¡©us
+;
+
+1892 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+1895 
+·¿m
+->
+·r£d
+ = 1;
+
+1897 
+	`ä“
+(
+’Œ›s
+);
+
+1898 
+	}
+}
+
+1901 
+	$·r£_swq
+(
+­p_·¿ms
+ *
+­p
+,
+
+1902 cÚ¡ *
+£ùiÚ_Çme
+,
+
+1903 
+¹e_cfgfže
+ *
+cfg
+)
+
+1905 
+­p_pktq_swq_·¿ms
+ *
+·¿m
+;
+
+1906 
+¹e_cfgfže_’Œy
+ *
+’Œ›s
+;
+
+1907 
+n_’Œ›s
+, 
+i
+;
+
+1908 
+ušt32_t
+ 
+mtu_´e£Á
+ = 0;
+
+1909 
+ušt32_t
+ 
+m‘ad©a_size_´e£Á
+ = 0;
+
+1910 
+ušt32_t
+ 
+mempoÞ_dœeù_´e£Á
+ = 0;
+
+1911 
+ušt32_t
+ 
+mempoÞ_šdœeù_´e£Á
+ = 0;
+
+1913 
+ssize_t
+ 
+·¿m_idx
+;
+
+1915 
+n_’Œ›s
+ = 
+	`¹e_cfgfže_£ùiÚ_num_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+);
+
+1916 
+	`PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_’Œ›s
+ > 0), 
+£ùiÚ_Çme
+);
+
+1918 
+’Œ›s
+ = 
+	`m®loc
+(
+n_’Œ›s
+ * (
+¹e_cfgfže_’Œy
+));
+
+1919 
+	`PARSE_ERROR_MALLOC
+(
+’Œ›s
+ !ð
+NULL
+);
+
+1921 
+	`¹e_cfgfže_£ùiÚ_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+, 
+’Œ›s
+, 
+n_’Œ›s
+);
+
+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 
+i
+ = 0; i < 
+n_’Œ›s
+; i++) {
+
+1929 
+¹e_cfgfže_’Œy
+ *
+’t
+ = &
+’Œ›s
+[
+i
+];
+
+1931 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "size") == 0) {
+
+1932 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+·¿m
+->
+size
+,
+
+1933 
+’t
+->
+v®ue
+);
+
+1935 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1936 
+’t
+->
+Çme
+);
+
+1940 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "burst_read") == 0) {
+
+1941 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+
+1942 
+·¿m
+->
+bur¡_»ad
+, 
+’t
+->
+v®ue
+);
+
+1944 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1945 
+’t
+->
+Çme
+);
+
+1949 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "burst_write") == 0) {
+
+1950 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+1951 &
+·¿m
+->
+bur¡_wr™e
+, 
+’t
+->
+v®ue
+);
+
+1953 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1954 
+’t
+->
+Çme
+);
+
+1958 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "dropless") == 0) {
+
+1959 
+¡©us
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’t
+->
+v®ue
+);
+
+1961 
+	`PARSE_ERROR
+((
+¡©us
+ !ð-
+EINVAL
+), 
+£ùiÚ_Çme
+,
+
+1962 
+’t
+->
+Çme
+);
+
+1963 
+·¿m
+->
+drÝËss
+ = 
+¡©us
+;
+
+1967 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "n_retries") == 0) {
+
+1968 
+¡©us
+ = 
+	`·r£r_»ad_ušt64
+(&
+·¿m
+->
+n_»Œ›s
+,
+
+1969 
+’t
+->
+v®ue
+);
+
+1971 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+1972 
+’t
+->
+Çme
+);
+
+1976 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "cpu") == 0) {
+
+1977 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+1978 &
+·¿m
+->
+ýu_sock‘_id
+, 
+’t
+->
+v®ue
+);
+
+1980 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+1984 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "ipv4_frag") == 0) {
+
+1985 
+¡©us
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’t
+->
+v®ue
+);
+
+1987 
+	`PARSE_ERROR
+((
+¡©us
+ !ð-
+EINVAL
+), 
+£ùiÚ_Çme
+,
+
+1988 
+’t
+->
+Çme
+);
+
+1990 
+·¿m
+->
+v4_äag
+ = 
+¡©us
+;
+
+1991 ià(
+·¿m
+->
+mtu
+ == 0)
+
+1992 
+·¿m
+->
+mtu
+ = 1500;
+
+1997 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "ipv6_frag") == 0) {
+
+1998 
+¡©us
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’t
+->
+v®ue
+);
+
+2000 
+	`PARSE_ERROR
+((
+¡©us
+ !ð-
+EINVAL
+), 
+£ùiÚ_Çme
+,
+
+2001 
+’t
+->
+Çme
+);
+
+2002 
+·¿m
+->
+v6_äag
+ = 
+¡©us
+;
+
+2003 ià(
+·¿m
+->
+mtu
+ == 0)
+
+2004 
+·¿m
+->
+mtu
+ = 1320;
+
+2008 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "ipv4_ras") == 0) {
+
+2009 
+¡©us
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’t
+->
+v®ue
+);
+
+2011 
+	`PARSE_ERROR
+((
+¡©us
+ !ð-
+EINVAL
+), 
+£ùiÚ_Çme
+,
+
+2012 
+’t
+->
+Çme
+);
+
+2013 
+·¿m
+->
+v4_¿s
+ = 
+¡©us
+;
+
+2017 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "ipv6_ras") == 0) {
+
+2018 
+¡©us
+ = 
+	`·r£r_»ad_¬g_boÞ
+(
+’t
+->
+v®ue
+);
+
+2020 
+	`PARSE_ERROR
+((
+¡©us
+ !ð-
+EINVAL
+), 
+£ùiÚ_Çme
+,
+
+2021 
+’t
+->
+Çme
+);
+
+2022 
+·¿m
+->
+v6_¿s
+ = 
+¡©us
+;
+
+2026 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "mtu") == 0) {
+
+2027 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+·¿m
+->
+mtu
+,
+
+2028 
+’t
+->
+v®ue
+);
+
+2030 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+2031 
+’t
+->
+Çme
+);
+
+2032 
+mtu_´e£Á
+ = 1;
+
+2036 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "metadata_size") == 0) {
+
+2037 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+2038 &
+·¿m
+->
+m‘ad©a_size
+, 
+’t
+->
+v®ue
+);
+
+2040 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+2041 
+’t
+->
+Çme
+);
+
+2042 
+m‘ad©a_size_´e£Á
+ = 1;
+
+2046 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "mempool_direct") == 0) {
+
+2047 
+¡©us
+ = 
+	`v®id©e_Çme
+(
+’t
+->
+v®ue
+,
+
+2049 
+ssize_t
+ 
+idx
+;
+
+2051 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+2052 
+’t
+->
+Çme
+);
+
+2054 
+idx
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+mempoÞ_·¿ms
+,
+
+2055 
+’t
+->
+v®ue
+);
+
+2056 
+	`PARSER_PARAM_ADD_CHECK
+(
+idx
+, 
+­p
+->
+mempoÞ_·¿ms
+,
+
+2057 
+£ùiÚ_Çme
+);
+
+2058 
+·¿m
+->
+mempoÞ_dœeù_id
+ = 
+idx
+;
+
+2059 
+mempoÞ_dœeù_´e£Á
+ = 1;
+
+2063 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "mempool_indirect") == 0) {
+
+2064 
+¡©us
+ = 
+	`v®id©e_Çme
+(
+’t
+->
+v®ue
+,
+
+2066 
+ssize_t
+ 
+idx
+;
+
+2068 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+2069 
+’t
+->
+Çme
+);
+
+2070 
+idx
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+mempoÞ_·¿ms
+,
+
+2071 
+’t
+->
+v®ue
+);
+
+2072 
+	`PARSER_PARAM_ADD_CHECK
+(
+idx
+, 
+­p
+->
+mempoÞ_·¿ms
+,
+
+2073 
+£ùiÚ_Çme
+);
+
+2074 
+·¿m
+->
+mempoÞ_šdœeù_id
+ = 
+idx
+;
+
+2075 
+mempoÞ_šdœeù_´e£Á
+ = 1;
+
+2080 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+2083 
+	`APP_CHECK
+(((
+mtu_´e£Á
+) &&
+
+2084 ((
+·¿m
+->
+v4_äag
+ =ð1è|| (·¿m->
+v6_äag
+ == 1))),
+
+2087 
+£ùiÚ_Çme
+);
+
+2089 
+	`APP_CHECK
+(((
+m‘ad©a_size_´e£Á
+) &&
+
+2090 ((
+·¿m
+->
+v4_äag
+ =ð1è|| (·¿m->
+v6_äag
+ == 1))),
+
+2093 "nهÎowed", 
+£ùiÚ_Çme
+);
+
+2095 
+	`APP_CHECK
+(((
+mempoÞ_dœeù_´e£Á
+) &&
+
+2096 ((
+·¿m
+->
+v4_äag
+ =ð1è|| (·¿m->
+v6_äag
+ == 1))),
+
+2099 "nهÎowed", 
+£ùiÚ_Çme
+);
+
+2101 
+	`APP_CHECK
+(((
+mempoÞ_šdœeù_´e£Á
+) &&
+
+2102 ((
+·¿m
+->
+v4_äag
+ =ð1è|| (·¿m->
+v6_äag
+ == 1))),
+
+2105 "nهÎowed", 
+£ùiÚ_Çme
+);
+
+2107 
+·¿m
+->
+·r£d
+ = 1;
+
+2109 
+	`ä“
+(
+’Œ›s
+);
+
+2110 
+	}
+}
+
+2113 
+	$·r£_tm
+(
+­p_·¿ms
+ *
+­p
+,
+
+2114 cÚ¡ *
+£ùiÚ_Çme
+,
+
+2115 
+¹e_cfgfže
+ *
+cfg
+)
+
+2117 
+­p_pktq_tm_·¿ms
+ *
+·¿m
+;
+
+2118 
+¹e_cfgfže_’Œy
+ *
+’Œ›s
+;
+
+2119 
+n_’Œ›s
+, 
+i
+;
+
+2120 
+ssize_t
+ 
+·¿m_idx
+;
+
+2122 
+n_’Œ›s
+ = 
+	`¹e_cfgfže_£ùiÚ_num_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+);
+
+2123 
+	`PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_’Œ›s
+ > 0), 
+£ùiÚ_Çme
+);
+
+2125 
+’Œ›s
+ = 
+	`m®loc
+(
+n_’Œ›s
+ * (
+¹e_cfgfže_’Œy
+));
+
+2126 
+	`PARSE_ERROR_MALLOC
+(
+’Œ›s
+ !ð
+NULL
+);
+
+2128 
+	`¹e_cfgfže_£ùiÚ_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+, 
+’Œ›s
+, 
+n_’Œ›s
+);
+
+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 
+i
+ = 0; i < 
+n_’Œ›s
+; i++) {
+
+2136 
+¹e_cfgfže_’Œy
+ *
+’t
+ = &
+’Œ›s
+[
+i
+];
+
+2138 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "cfg") == 0) {
+
+2139 
+·¿m
+->
+fže_Çme
+ = 
+	`¡rdup
+(
+’t
+->
+v®ue
+);
+
+2140 
+	`PARSE_ERROR_MALLOC
+(
+·¿m
+->
+fže_Çme
+ !ð
+NULL
+);
+
+2144 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "burst_read") == 0) {
+
+2145 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+2146 &
+·¿m
+->
+bur¡_»ad
+, 
+’t
+->
+v®ue
+);
+
+2148 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+2149 
+’t
+->
+Çme
+);
+
+2153 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "burst_write") == 0) {
+
+2154 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+2155 &
+·¿m
+->
+bur¡_wr™e
+, 
+’t
+->
+v®ue
+);
+
+2157 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+2158 
+’t
+->
+Çme
+);
+
+2163 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+2166 
+·¿m
+->
+·r£d
+ = 1;
+
+2168 
+	`ä“
+(
+’Œ›s
+);
+
+2169 
+	}
+}
+
+2172 
+	$·r£_sourû
+(
+­p_·¿ms
+ *
+­p
+,
+
+2173 cÚ¡ *
+£ùiÚ_Çme
+,
+
+2174 
+¹e_cfgfže
+ *
+cfg
+)
+
+2176 
+­p_pktq_sourû_·¿ms
+ *
+·¿m
+;
+
+2177 
+¹e_cfgfže_’Œy
+ *
+’Œ›s
+;
+
+2178 
+n_’Œ›s
+, 
+i
+;
+
+2179 
+ssize_t
+ 
+·¿m_idx
+;
+
+2180 
+ušt32_t
+ 
+pÿp_fže_´e£Á
+ = 0;
+
+2181 
+ušt32_t
+ 
+pÿp_size_´e£Á
+ = 0;
+
+2183 
+n_’Œ›s
+ = 
+	`¹e_cfgfže_£ùiÚ_num_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+);
+
+2184 
+	`PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_’Œ›s
+ > 0), 
+£ùiÚ_Çme
+);
+
+2186 
+’Œ›s
+ = 
+	`m®loc
+(
+n_’Œ›s
+ * (
+¹e_cfgfže_’Œy
+));
+
+2187 
+	`PARSE_ERROR_MALLOC
+(
+’Œ›s
+ !ð
+NULL
+);
+
+2189 
+	`¹e_cfgfže_£ùiÚ_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+, 
+’Œ›s
+, 
+n_’Œ›s
+);
+
+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 
+i
+ = 0; i < 
+n_’Œ›s
+; i++) {
+
+2197 
+¹e_cfgfže_’Œy
+ *
+’t
+ = &
+’Œ›s
+[
+i
+];
+
+2199 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "mempool") == 0) {
+
+2200 
+¡©us
+ = 
+	`v®id©e_Çme
+(
+’t
+->
+v®ue
+,
+
+2202 
+ssize_t
+ 
+idx
+;
+
+2204 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+2205 
+’t
+->
+Çme
+);
+
+2206 
+idx
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+mempoÞ_·¿ms
+,
+
+2207 
+’t
+->
+v®ue
+);
+
+2208 
+	`PARSER_PARAM_ADD_CHECK
+(
+idx
+, 
+­p
+->
+mempoÞ_·¿ms
+,
+
+2209 
+£ùiÚ_Çme
+);
+
+2210 
+·¿m
+->
+mempoÞ_id
+ = 
+idx
+;
+
+2214 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "burst") == 0) {
+
+2215 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+·¿m
+->
+bur¡
+,
+
+2216 
+’t
+->
+v®ue
+);
+
+2218 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+2219 
+’t
+->
+Çme
+);
+
+2223 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "pcap_file_rd")) {
+
+2224 
+	`PARSE_ERROR_DUPLICATE
+((
+pÿp_fže_´e£Á
+ == 0),
+
+2225 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+2227 
+·¿m
+->
+fže_Çme
+ = 
+	`¡rdup
+(
+’t
+->
+v®ue
+);
+
+2229 
+	`PARSE_ERROR_MALLOC
+(
+·¿m
+->
+fže_Çme
+ !ð
+NULL
+);
+
+2230 
+pÿp_fže_´e£Á
+ = 1;
+
+2235 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "pcap_bytes_rd_per_pkt") == 0) {
+
+2236 
+¡©us
+;
+
+2238 
+	`PARSE_ERROR_DUPLICATE
+((
+pÿp_size_´e£Á
+ == 0),
+
+2239 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+2241 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+2242 &
+·¿m
+->
+n_by‹s_³r_pkt
+, 
+’t
+->
+v®ue
+);
+
+2244 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+2245 
+’t
+->
+Çme
+);
+
+2246 
+pÿp_size_´e£Á
+ = 1;
+
+2252 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+2255 
+·¿m
+->
+·r£d
+ = 1;
+
+2257 
+	`ä“
+(
+’Œ›s
+);
+
+2258 
+	}
+}
+
+2261 
+	$·r£_sšk
+(
+­p_·¿ms
+ *
+­p
+,
+
+2262 cÚ¡ *
+£ùiÚ_Çme
+,
+
+2263 
+¹e_cfgfže
+ *
+cfg
+)
+
+2265 
+­p_pktq_sšk_·¿ms
+ *
+·¿m
+;
+
+2266 
+¹e_cfgfže_’Œy
+ *
+’Œ›s
+;
+
+2267 
+n_’Œ›s
+, 
+i
+;
+
+2268 
+ssize_t
+ 
+·¿m_idx
+;
+
+2269 
+ušt32_t
+ 
+pÿp_fže_´e£Á
+ = 0;
+
+2270 
+ušt32_t
+ 
+pÿp_n_pkt_´e£Á
+ = 0;
+
+2272 
+n_’Œ›s
+ = 
+	`¹e_cfgfže_£ùiÚ_num_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+);
+
+2273 
+	`PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_’Œ›s
+ > 0), 
+£ùiÚ_Çme
+);
+
+2275 
+’Œ›s
+ = 
+	`m®loc
+(
+n_’Œ›s
+ * (
+¹e_cfgfže_’Œy
+));
+
+2276 
+	`PARSE_ERROR_MALLOC
+(
+’Œ›s
+ !ð
+NULL
+);
+
+2278 
+	`¹e_cfgfže_£ùiÚ_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+, 
+’Œ›s
+, 
+n_’Œ›s
+);
+
+2280 
+·¿m_idx
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+sšk_·¿ms
+, 
+£ùiÚ_Çme
+);
+
+2281 
+	`PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+, 
+­p
+->
+sšk_·¿ms
+, 
+£ùiÚ_Çme
+);
+
+2283 
+·¿m
+ = &
+­p
+->
+sšk_·¿ms
+[
+·¿m_idx
+];
+
+2285 
+i
+ = 0; i < 
+n_’Œ›s
+; i++) {
+
+2286 
+¹e_cfgfže_’Œy
+ *
+’t
+ = &
+’Œ›s
+[
+i
+];
+
+2288 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "pcap_file_wr")) {
+
+2289 
+	`PARSE_ERROR_DUPLICATE
+((
+pÿp_fže_´e£Á
+ == 0),
+
+2290 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+2292 
+·¿m
+->
+fže_Çme
+ = 
+	`¡rdup
+(
+’t
+->
+v®ue
+);
+
+2294 
+	`PARSE_ERROR_MALLOC
+((
+·¿m
+->
+fže_Çme
+ !ð
+NULL
+));
+
+2299 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "pcap_n_pkt_wr")) {
+
+2300 
+¡©us
+;
+
+2302 
+	`PARSE_ERROR_DUPLICATE
+((
+pÿp_n_pkt_´e£Á
+ == 0),
+
+2303 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+2305 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+2306 &
+·¿m
+->
+n_pkts_to_dump
+, 
+’t
+->
+v®ue
+);
+
+2308 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+2309 
+’t
+->
+Çme
+);
+
+2315 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+2318 
+·¿m
+->
+·r£d
+ = 1;
+
+2320 
+	`ä“
+(
+’Œ›s
+);
+
+2321 
+	}
+}
+
+2324 
+	$·r£_msgq_»q_p–še
+(
+­p_·¿ms
+ *
+­p
+,
+
+2325 cÚ¡ *
+£ùiÚ_Çme
+,
+
+2326 
+¹e_cfgfže
+ *
+cfg
+)
+
+2328 
+­p_msgq_·¿ms
+ *
+·¿m
+;
+
+2329 
+¹e_cfgfže_’Œy
+ *
+’Œ›s
+;
+
+2330 
+n_’Œ›s
+, 
+i
+;
+
+2331 
+ssize_t
+ 
+·¿m_idx
+;
+
+2333 
+n_’Œ›s
+ = 
+	`¹e_cfgfže_£ùiÚ_num_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+);
+
+2334 
+	`PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_’Œ›s
+ > 0), 
+£ùiÚ_Çme
+);
+
+2336 
+’Œ›s
+ = 
+	`m®loc
+(
+n_’Œ›s
+ * (
+¹e_cfgfže_’Œy
+));
+
+2337 
+	`PARSE_ERROR_MALLOC
+(
+’Œ›s
+ !ð
+NULL
+);
+
+2339 
+	`¹e_cfgfže_£ùiÚ_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+, 
+’Œ›s
+, 
+n_’Œ›s
+);
+
+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 
+i
+ = 0; i < 
+n_’Œ›s
+; i++) {
+
+2347 
+¹e_cfgfže_’Œy
+ *
+’t
+ = &
+’Œ›s
+[
+i
+];
+
+2349 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "size") == 0) {
+
+2350 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+·¿m
+->
+size
+,
+
+2351 
+’t
+->
+v®ue
+);
+
+2353 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+2354 
+’t
+->
+Çme
+);
+
+2359 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+2362 
+·¿m
+->
+·r£d
+ = 1;
+
+2363 
+	`ä“
+(
+’Œ›s
+);
+
+2364 
+	}
+}
+
+2367 
+	$·r£_msgq_r¥_p–še
+(
+­p_·¿ms
+ *
+­p
+,
+
+2368 cÚ¡ *
+£ùiÚ_Çme
+,
+
+2369 
+¹e_cfgfže
+ *
+cfg
+)
+
+2371 
+­p_msgq_·¿ms
+ *
+·¿m
+;
+
+2372 
+¹e_cfgfže_’Œy
+ *
+’Œ›s
+;
+
+2373 
+n_’Œ›s
+, 
+i
+;
+
+2374 
+ssize_t
+ 
+·¿m_idx
+;
+
+2376 
+n_’Œ›s
+ = 
+	`¹e_cfgfže_£ùiÚ_num_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+);
+
+2377 
+	`PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_’Œ›s
+ > 0), 
+£ùiÚ_Çme
+);
+
+2379 
+’Œ›s
+ = 
+	`m®loc
+(
+n_’Œ›s
+ * (
+¹e_cfgfže_’Œy
+));
+
+2380 
+	`PARSE_ERROR_MALLOC
+(
+’Œ›s
+ !ð
+NULL
+);
+
+2382 
+	`¹e_cfgfže_£ùiÚ_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+, 
+’Œ›s
+, 
+n_’Œ›s
+);
+
+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 
+i
+ = 0; i < 
+n_’Œ›s
+; i++) {
+
+2390 
+¹e_cfgfže_’Œy
+ *
+’t
+ = &
+’Œ›s
+[
+i
+];
+
+2392 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "size") == 0) {
+
+2393 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+·¿m
+->
+size
+,
+
+2394 
+’t
+->
+v®ue
+);
+
+2396 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+2397 
+’t
+->
+Çme
+);
+
+2402 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+2405 
+·¿m
+->
+·r£d
+ = 1;
+
+2407 
+	`ä“
+(
+’Œ›s
+);
+
+2408 
+	}
+}
+
+2411 
+	$·r£_msgq
+(
+­p_·¿ms
+ *
+­p
+,
+
+2412 cÚ¡ *
+£ùiÚ_Çme
+,
+
+2413 
+¹e_cfgfže
+ *
+cfg
+)
+
+2415 
+­p_msgq_·¿ms
+ *
+·¿m
+;
+
+2416 
+¹e_cfgfže_’Œy
+ *
+’Œ›s
+;
+
+2417 
+n_’Œ›s
+, 
+i
+;
+
+2418 
+ssize_t
+ 
+·¿m_idx
+;
+
+2420 
+n_’Œ›s
+ = 
+	`¹e_cfgfže_£ùiÚ_num_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+);
+
+2421 
+	`PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_’Œ›s
+ > 0), 
+£ùiÚ_Çme
+);
+
+2423 
+’Œ›s
+ = 
+	`m®loc
+(
+n_’Œ›s
+ * (
+¹e_cfgfže_’Œy
+));
+
+2424 
+	`PARSE_ERROR_MALLOC
+(
+’Œ›s
+ !ð
+NULL
+);
+
+2426 
+	`¹e_cfgfže_£ùiÚ_’Œ›s
+(
+cfg
+, 
+£ùiÚ_Çme
+, 
+’Œ›s
+, 
+n_’Œ›s
+);
+
+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 
+i
+ = 0; i < 
+n_’Œ›s
+; i++) {
+
+2434 
+¹e_cfgfže_’Œy
+ *
+’t
+ = &
+’Œ›s
+[
+i
+];
+
+2436 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "size") == 0) {
+
+2437 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(&
+·¿m
+->
+size
+,
+
+2438 
+’t
+->
+v®ue
+);
+
+2440 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+2441 
+’t
+->
+Çme
+);
+
+2445 ià(
+	`¡rcmp
+(
+’t
+->
+Çme
+, "cpu") == 0) {
+
+2446 
+¡©us
+ = 
+	`·r£r_»ad_ušt32
+(
+
+2447 &
+·¿m
+->
+ýu_sock‘_id
+, 
+’t
+->
+v®ue
+);
+
+2449 
+	`PARSE_ERROR
+((
+¡©us
+ =ð0), 
+£ùiÚ_Çme
+,
+
+2450 
+’t
+->
+Çme
+);
+
+2455 
+	`PARSE_ERROR_INVALID
+(0, 
+£ùiÚ_Çme
+, 
+’t
+->
+Çme
+);
+
+2458 
+·¿m
+->
+·r£d
+ = 1;
+
+2460 
+	`ä“
+(
+’Œ›s
+);
+
+2461 
+	}
+}
+
+2463 (*
+	tcÚfig_£ùiÚ_lßd
+)(
+	t­p_·¿ms
+ *
+	tp
+,
+
+2464 cÚ¡ *
+	t£ùiÚ_Çme
+,
+
+2465 
+	t¹e_cfgfže
+ *
+	tcfg
+);
+
+2467 
+	scÚfig_£ùiÚ
+ {
+
+2468 cÚ¡ 
+´efix
+[
+CFG_NAME_LEN
+];
+
+2469 
+numb”s
+;
+
+2470 
+cÚfig_£ùiÚ_lßd
+ 
+lßd
+;
+
+2473 cÚ¡ 
+cÚfig_£ùiÚ
+ 
+cfg_fže_scheme
+[] = {
+
+2474 {"EAL", 0, 
+·r£_—l
+},
+
+2475 {"PIPELINE", 1, 
+·r£_p–še
+},
+
+2476 {"MEMPOOL", 1, 
+·r£_mempoÞ
+},
+
+2477 {"LINK", 1, 
+·r£_lšk
+},
+
+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šk
+},
+
+2484 {"MSGQ-REQ-PIPELINE", 1, 
+·r£_msgq_»q_p–še
+},
+
+2485 {"MSGQ-RSP-PIPELINE", 1, 
+·r£_msgq_r¥_p–še
+},
+
+2486 {"MSGQ", 1, 
+·r£_msgq
+},
+
+2487 
+	}
+};
+
+2490 
+	$ü—‹_im¶ic™_mempoÞs
+(
+­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 
+	$ü—‹_im¶ic™_lšks_äom_pÜt_mask
+(
+­p_·¿ms
+ *
+­p
+,
+
+2500 
+ušt64_t
+ 
+pÜt_mask
+)
+
+2502 
+ušt32_t
+ 
+pmd_id
+, 
+lšk_id
+;
+
+2504 
+lšk_id
+ = 0;
+
+2505 
+pmd_id
+ = 0;…md_id < 
+RTE_MAX_ETHPORTS
+;…md_id++) {
+
+2506 
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+2507 
+ssize_t
+ 
+idx
+;
+
+2509 ià((
+pÜt_mask
+ & (1LLU << 
+pmd_id
+)) == 0)
+
+2512 
+	`¢´štf
+(
+Çme
+, Òame), "LINK%" 
+PRIu32
+, 
+lšk_id
+);
+
+2513 
+idx
+ = 
+	`APP_PARAM_ADD
+(
+­p
+->
+lšk_·¿ms
+, 
+Çme
+);
+
+2514 
+	`PARSER_PARAM_ADD_CHECK
+(
+idx
+, 
+­p
+->
+lšk_·¿ms
+, 
+Çme
+);
+
+2516 
+­p
+->
+lšk_·¿ms
+[
+idx
+].
+pmd_id
+ =…md_id;
+
+2517 
+lšk_id
+++;
+
+2519 
+	}
+}
+
+2522 
+	$assign_lšk_pmd_id_äom_pci_bdf
+(
+­p_·¿ms
+ *
+­p
+)
+
+2524 
+ušt32_t
+ 
+i
+;
+
+2526 
+i
+ = 0; i < 
+­p
+->
+n_lšks
+; i++) {
+
+2527 
+­p_lšk_·¿ms
+ *
+lšk
+ = &
+­p
+->
+lšk_·¿ms
+[
+i
+];
+
+2529 
+lšk
+->
+pmd_id
+ = 
+i
+;
+
+2531 
+	}
+}
+
+2534 
+	$­p_cÚfig_·r£
+(
+­p_·¿ms
+ *
+­p
+, cÚ¡ *
+fže_Çme
+)
+
+2536 
+¹e_cfgfže
+ *
+cfg
+;
+
+2537 **
+£ùiÚ_Çmes
+;
+
+2538 
+i
+, 
+j
+, 
+£ù_couÁ
+;
+
+2541 
+	`ü—‹_im¶ic™_mempoÞs
+(
+­p
+);
+
+2544 ià(
+­p
+->
+pÜt_mask
+)
+
+2545 
+	`ü—‹_im¶ic™_lšks_äom_pÜt_mask
+(
+­p
+,‡µ->
+pÜt_mask
+);
+
+2548 
+cfg
+ = 
+	`¹e_cfgfže_lßd
+(
+fže_Çme
+, 0);
+
+2549 
+	`APP_CHECK
+((
+cfg
+ !ð
+NULL
+), "Parseƒrror: Unableo†oad config "
+
+2550 "fž%s", 
+fže_Çme
+);
+
+2552 
+£ù_couÁ
+ = 
+	`¹e_cfgfže_num_£ùiÚs
+(
+cfg
+, 
+NULL
+, 0);
+
+2553 
+	`APP_CHECK
+((
+£ù_couÁ
+ > 0), "Parseƒrror:‚umber of sections "
+
+2554 "š fž\"%s\"„‘uº %d", 
+fže_Çme
+,
+
+2555 
+£ù_couÁ
+);
+
+2557 
+£ùiÚ_Çmes
+ = 
+	`m®loc
+(
+£ù_couÁ
+ * (*));
+
+2558 
+	`PARSE_ERROR_MALLOC
+(
+£ùiÚ_Çmes
+ !ð
+NULL
+);
+
+2560 
+i
+ = 0; i < 
+£ù_couÁ
+; i++)
+
+2561 
+£ùiÚ_Çmes
+[
+i
+] = 
+	`m®loc
+(
+CFG_NAME_LEN
+);
+
+2563 
+	`¹e_cfgfže_£ùiÚs
+(
+cfg
+, 
+£ùiÚ_Çmes
+, 
+£ù_couÁ
+);
+
+2565 
+i
+ = 0; i < 
+£ù_couÁ
+; i++) {
+
+2566 cÚ¡ 
+cÚfig_£ùiÚ
+ *
+sch_s
+;
+
+2567 
+Ën
+, 
+cfg_Çme_Ën
+;
+
+2569 
+cfg_Çme_Ën
+ = 
+	`¡¾’
+(
+£ùiÚ_Çmes
+[
+i
+]);
+
+2572 
+j
+ = 0; j < ()
+	`RTE_DIM
+(
+cfg_fže_scheme
+); j++) {
+
+2573 
+sch_s
+ = &
+cfg_fže_scheme
+[
+j
+];
+
+2574 
+Ën
+ = 
+	`¡¾’
+(
+sch_s
+->
+´efix
+);
+
+2576 ià(
+cfg_Çme_Ën
+ < 
+Ën
+)
+
+2585 ià((
+£ùiÚ_Çmes
+[
+i
+][
+Ën
+] != '\0') &&
+
+2586 !
+	`isdig™
+(
+£ùiÚ_Çmes
+[
+i
+][
+Ën
+]))
+
+2589 ià(
+	`¡ºcmp
+(
+sch_s
+->
+´efix
+, 
+£ùiÚ_Çmes
+[
+i
+], 
+Ën
+) == 0)
+
+2593 
+	`APP_CHECK
+(
+j
+ < ()
+	`RTE_DIM
+(
+cfg_fže_scheme
+),
+
+2595 
+£ùiÚ_Çmes
+[
+i
+]);
+
+2597 
+	`APP_CHECK
+(
+	`v®id©e_Çme
+(
+£ùiÚ_Çmes
+[
+i
+],
+
+2598 
+sch_s
+->
+´efix
+,
+
+2599 
+sch_s
+->
+numb”s
+) == 0,
+
+2601 
+£ùiÚ_Çmes
+[
+i
+]);
+
+2603 
+sch_s
+->
+	`lßd
+(
+­p
+, 
+£ùiÚ_Çmes
+[
+i
+], 
+cfg
+);
+
+2606 
+i
+ = 0; i < 
+£ù_couÁ
+; i++)
+
+2607 
+	`ä“
+(
+£ùiÚ_Çmes
+[
+i
+]);
+
+2609 
+	`ä“
+(
+£ùiÚ_Çmes
+);
+
+2611 
+	`¹e_cfgfže_þo£
+(
+cfg
+);
+
+2613 
+	`APP_PARAM_COUNT
+(
+­p
+->
+mempoÞ_·¿ms
+,‡µ->
+n_mempoÞs
+);
+
+2614 
+	`APP_PARAM_COUNT
+(
+­p
+->
+lšk_·¿ms
+,‡µ->
+n_lšks
+);
+
+2615 
+	`APP_PARAM_COUNT
+(
+­p
+->
+hwq_š_·¿ms
+,‡µ->
+n_pktq_hwq_š
+);
+
+2616 
+	`APP_PARAM_COUNT
+(
+­p
+->
+hwq_out_·¿ms
+,‡µ->
+n_pktq_hwq_out
+);
+
+2617 
+	`APP_PARAM_COUNT
+(
+­p
+->
+swq_·¿ms
+,‡µ->
+n_pktq_swq
+);
+
+2618 
+	`APP_PARAM_COUNT
+(
+­p
+->
+tm_·¿ms
+,‡µ->
+n_pktq_tm
+);
+
+2619 
+	`APP_PARAM_COUNT
+(
+­p
+->
+sourû_·¿ms
+,‡µ->
+n_pktq_sourû
+);
+
+2620 
+	`APP_PARAM_COUNT
+(
+­p
+->
+sšk_·¿ms
+,‡µ->
+n_pktq_sšk
+);
+
+2621 
+	`APP_PARAM_COUNT
+(
+­p
+->
+msgq_·¿ms
+,‡µ->
+n_msgq
+);
+
+2622 
+	`APP_PARAM_COUNT
+(
+­p
+->
+p–še_·¿ms
+,‡µ->
+n_p–šes
+);
+
+2624 #ifdeà
+RTE_PORT_PCAP
+
+
+2625 
+i
+ = 0; i < ()
+­p
+->
+n_pktq_sourû
+; i++) {
+
+2626 
+­p_pktq_sourû_·¿ms
+ *
+p
+ = &
+­p
+->
+sourû_·¿ms
+[
+i
+];
+
+2628 
+	`APP_CHECK
+((
+p
+->
+fže_Çme
+), "Parseƒrror: missing "
+
+2630 
+p
+->
+Çme
+);
+
+2633 
+i
+ = 0; i < ()
+­p
+->
+n_pktq_sourû
+; i++) {
+
+2634 
+­p_pktq_sourû_·¿ms
+ *
+p
+ = &
+­p
+->
+sourû_·¿ms
+[
+i
+];
+
+2636 
+	`APP_CHECK
+((!
+p
+->
+fže_Çme
+), "Parseƒrror: invalid field "
+
+2637 "\"pÿp_fže_rd\" fÜ \"%s\"", 
+p
+->
+Çme
+);
+
+2641 ià(
+­p
+->
+pÜt_mask
+ == 0)
+
+2642 
+	`assign_lšk_pmd_id_äom_pci_bdf
+(
+­p
+);
+
+2645 
+	`­p_cÚfig_§ve
+(
+­p
+,‡µ->
+ouut_fže
+);
+
+2648 
+	`­p_cÚfig_·r£_tm
+(
+­p
+);
+
+2651 
+	}
+}
+
+2654 
+	$§ve_—l_·¿ms
+(
+­p_·¿ms
+ *
+­p
+, 
+FILE
+ *
+f
+)
+
+2656 
+­p_—l_·¿ms
+ *
+p
+ = &
+­p
+->
+—l_·¿ms
+;
+
+2657 
+ušt32_t
+ 
+i
+;
+
+2659 
+	`årštf
+(
+f
+, "[EAL]\n");
+
+2661 ià(
+p
+->
+cÜem­
+)
+
+2662 
+	`årštf
+(
+f
+, "% ð%s\n", "lcÜes", 
+p
+->
+cÜem­
+);
+
+2664 ià(
+p
+->
+ma¡”_lcÜe_´e£Á
+)
+
+2665 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n",
+
+2666 "ma¡”_lcÜe", 
+p
+->
+ma¡”_lcÜe
+);
+
+2668 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "n", 
+p
+->
+chªÃls
+);
+
+2670 ià(
+p
+->
+memÜy_´e£Á
+)
+
+2671 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "m", 
+p
+->
+memÜy
+);
+
+2673 ià(
+p
+->
+¿nks_´e£Á
+)
+
+2674 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "r", 
+p
+->
+¿nks
+);
+
+2676 
+i
+ = 0; i < 
+APP_MAX_LINKS
+; i++) {
+
+2677 ià(
+p
+->
+pci_bÏckli¡
+[
+i
+] =ð
+NULL
+)
+
+2680 
+	`årštf
+(
+f
+, "%s = %s\n", "pci_blacklist",
+
+2681 
+p
+->
+pci_bÏckli¡
+[
+i
+]);
+
+2684 
+i
+ = 0; i < 
+APP_MAX_LINKS
+; i++) {
+
+2685 ià(
+p
+->
+pci_wh™–i¡
+[
+i
+] =ð
+NULL
+)
+
+2688 
+	`årštf
+(
+f
+, "%s = %s\n", "pci_whitelist",
+
+2689 
+p
+->
+pci_wh™–i¡
+[
+i
+]);
+
+2692 
+i
+ = 0; i < 
+APP_MAX_LINKS
+; i++) {
+
+2693 ià(
+p
+->
+vdev
+[
+i
+] =ð
+NULL
+)
+
+2696 
+	`årštf
+(
+f
+, "%s = %s\n", "vdev",
+
+2697 
+p
+->
+vdev
+[
+i
+]);
+
+2700 ià(
+p
+->
+vmw¬e_tsc_m­_´e£Á
+)
+
+2701 
+	`årštf
+(
+f
+, "%s = %s\n", "vmware_tsc_map",
+
+2702 (
+p
+->
+vmw¬e_tsc_m­
+) ? "yes" : "no");
+
+2704 ià(
+p
+->
+´oc_ty³
+)
+
+2705 
+	`årštf
+(
+f
+, "% ð%s\n", "´oc_ty³", 
+p
+->
+´oc_ty³
+);
+
+2707 ià(
+p
+->
+sy¦og
+)
+
+2708 
+	`årštf
+(
+f
+, "% ð%s\n", "sy¦og", 
+p
+->
+sy¦og
+);
+
+2710 ià(
+p
+->
+log_Ëv–_´e£Á
+)
+
+2711 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "log_Ëv–", 
+p
+->
+log_Ëv–
+);
+
+2713 ià(
+p
+->
+v”siÚ_´e£Á
+)
+
+2714 
+	`årštf
+(
+f
+, "% ð%s\n", "v", (
+p
+->
+v”siÚ
+) ? "yes" : "no");
+
+2716 ià(
+p
+->
+h–p_´e£Á
+)
+
+2717 
+	`årštf
+(
+f
+, "% ð%s\n", "h–p", (
+p
+->
+h–p
+) ? "yes" : "no");
+
+2719 ià(
+p
+->
+no_huge_´e£Á
+)
+
+2720 
+	`årštf
+(
+f
+, "% ð%s\n", "no_huge", (
+p
+->
+no_huge
+) ? "yes" : "no");
+
+2722 ià(
+p
+->
+no_pci_´e£Á
+)
+
+2723 
+	`årštf
+(
+f
+, "% ð%s\n", "no_pci", (
+p
+->
+no_pci
+) ? "yes" : "no");
+
+2725 ià(
+p
+->
+no_h³t_´e£Á
+)
+
+2726 
+	`årštf
+(
+f
+, "% ð%s\n", "no_h³t", (
+p
+->
+no_h³t
+) ? "yes" : "no");
+
+2728 ià(
+p
+->
+no_shcÚf_´e£Á
+)
+
+2729 
+	`årštf
+(
+f
+, "%s = %s\n", "no_shconf",
+
+2730 (
+p
+->
+no_shcÚf
+) ? "yes" : "no");
+
+2732 ià(
+p
+->
+add_driv”
+)
+
+2733 
+	`årštf
+(
+f
+, "% ð%s\n", "d", 
+p
+->
+add_driv”
+);
+
+2735 ià(
+p
+->
+sock‘_mem
+)
+
+2736 
+	`årštf
+(
+f
+, "% ð%s\n", "sock‘_mem", 
+p
+->
+sock‘_mem
+);
+
+2738 ià(
+p
+->
+huge_dœ
+)
+
+2739 
+	`årštf
+(
+f
+, "% ð%s\n", "huge_dœ", 
+p
+->
+huge_dœ
+);
+
+2741 ià(
+p
+->
+fže_´efix
+)
+
+2742 
+	`årštf
+(
+f
+, "% ð%s\n", "fže_´efix", 
+p
+->
+fže_´efix
+);
+
+2744 ià(
+p
+->
+ba£_vœddr
+)
+
+2745 
+	`årštf
+(
+f
+, "% ð%s\n", "ba£_vœddr", 
+p
+->
+ba£_vœddr
+);
+
+2747 ià(
+p
+->
+ü—‹_uio_dev_´e£Á
+)
+
+2748 
+	`årštf
+(
+f
+, "%s = %s\n", "create_uio_dev",
+
+2749 (
+p
+->
+ü—‹_uio_dev
+) ? "yes" : "no");
+
+2751 ià(
+p
+->
+vfio_šŒ
+)
+
+2752 
+	`årštf
+(
+f
+, "% ð%s\n", "vfio_šŒ", 
+p
+->
+vfio_šŒ
+);
+
+2754 ià(
+p
+->
+x’_dom0_´e£Á
+)
+
+2755 
+	`årštf
+(
+f
+, "%s = %s\n", "xen_dom0",
+
+2756 (
+p
+->
+x’_dom0
+) ? "yes" : "no");
+
+2758 
+	`åutc
+('\n', 
+f
+);
+
+2759 
+	}
+}
+
+2762 
+	$§ve_mempoÞ_·¿ms
+(
+­p_·¿ms
+ *
+­p
+, 
+FILE
+ *
+f
+)
+
+2764 
+­p_mempoÞ_·¿ms
+ *
+p
+;
+
+2765 
+size_t
+ 
+i
+, 
+couÁ
+;
+
+2767 
+couÁ
+ = 
+	`RTE_DIM
+(
+­p
+->
+mempoÞ_·¿ms
+);
+
+2768 
+i
+ = 0; i < 
+couÁ
+; i++) {
+
+2769 
+p
+ = &
+­p
+->
+mempoÞ_·¿ms
+[
+i
+];
+
+2770 ià(!
+	`APP_PARAM_VALID
+(
+p
+))
+
+2773 
+	`årštf
+(
+f
+, "[%s]\n", 
+p
+->
+Çme
+);
+
+2774 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "bufãr_size", 
+p
+->
+bufãr_size
+);
+
+2775 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "poÞ_size", 
+p
+->
+poÞ_size
+);
+
+2776 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "ÿche_size", 
+p
+->
+ÿche_size
+);
+
+2777 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "ýu", 
+p
+->
+ýu_sock‘_id
+);
+
+2779 
+	`åutc
+('\n', 
+f
+);
+
+2781 
+	}
+}
+
+2784 
+	$§ve_lšks_·¿ms
+(
+­p_·¿ms
+ *
+­p
+, 
+FILE
+ *
+f
+)
+
+2786 
+­p_lšk_·¿ms
+ *
+p
+;
+
+2787 
+size_t
+ 
+i
+, 
+couÁ
+;
+
+2789 
+couÁ
+ = 
+	`RTE_DIM
+(
+­p
+->
+lšk_·¿ms
+);
+
+2790 
+i
+ = 0; i < 
+couÁ
+; i++) {
+
+2791 
+p
+ = &
+­p
+->
+lšk_·¿ms
+[
+i
+];
+
+2792 ià(!
+	`APP_PARAM_VALID
+(
+p
+))
+
+2795 
+	`årštf
+(
+f
+, "[%s]\n", 
+p
+->
+Çme
+);
+
+2796 
+	`årštf
+(
+f
+, "; % ð%" 
+PRIu32
+ "\n", "pmd_id", 
+p
+->
+pmd_id
+);
+
+2797 
+	`årštf
+(
+f
+, "% ð%s\n", "´omisc", 
+p
+->
+´omisc
+ ? "yes" : "no");
+
+2798 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "¬p_q", 
+p
+->
+¬p_q
+);
+
+2799 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "tcp_syn_q",
+
+2800 
+p
+->
+tý_syn_q
+);
+
+2801 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "_loÿl_q", 
+p
+->
+_loÿl_q
+);
+
+2802 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "tý_loÿl_q", 
+p
+->
+tý_loÿl_q
+);
+
+2803 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "udp_loÿl_q", 
+p
+->
+udp_loÿl_q
+);
+
+2804 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "sctp_local_q",
+
+2805 
+p
+->
+sùp_loÿl_q
+);
+
+2807 ià(
+	`¡¾’
+(
+p
+->
+pci_bdf
+))
+
+2808 
+	`årštf
+(
+f
+, "% ð%s\n", "pci_bdf", 
+p
+->
+pci_bdf
+);
+
+2810 
+	`åutc
+('\n', 
+f
+);
+
+2812 
+	}
+}
+
+2815 
+	$§ve_rxq_·¿ms
+(
+­p_·¿ms
+ *
+­p
+, 
+FILE
+ *
+f
+)
+
+2817 
+­p_pktq_hwq_š_·¿ms
+ *
+p
+;
+
+2818 
+size_t
+ 
+i
+, 
+couÁ
+;
+
+2820 
+couÁ
+ = 
+	`RTE_DIM
+(
+­p
+->
+hwq_š_·¿ms
+);
+
+2821 
+i
+ = 0; i < 
+couÁ
+; i++) {
+
+2822 
+p
+ = &
+­p
+->
+hwq_š_·¿ms
+[
+i
+];
+
+2823 ià(!
+	`APP_PARAM_VALID
+(
+p
+))
+
+2826 
+	`årštf
+(
+f
+, "[%s]\n", 
+p
+->
+Çme
+);
+
+2827 
+	`årštf
+(
+f
+, "%s = %s\n",
+
+2829 
+­p
+->
+mempoÞ_·¿ms
+[
+p
+->
+mempoÞ_id
+].
+Çme
+);
+
+2830 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "size", 
+p
+->
+size
+);
+
+2831 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "bur¡", 
+p
+->
+bur¡
+);
+
+2833 
+	`åutc
+('\n', 
+f
+);
+
+2835 
+	}
+}
+
+2838 
+	$§ve_txq_·¿ms
+(
+­p_·¿ms
+ *
+­p
+, 
+FILE
+ *
+f
+)
+
+2840 
+­p_pktq_hwq_out_·¿ms
+ *
+p
+;
+
+2841 
+size_t
+ 
+i
+, 
+couÁ
+;
+
+2843 
+couÁ
+ = 
+	`RTE_DIM
+(
+­p
+->
+hwq_out_·¿ms
+);
+
+2844 
+i
+ = 0; i < 
+couÁ
+; i++) {
+
+2845 
+p
+ = &
+­p
+->
+hwq_out_·¿ms
+[
+i
+];
+
+2846 ià(!
+	`APP_PARAM_VALID
+(
+p
+))
+
+2849 
+	`årštf
+(
+f
+, "[%s]\n", 
+p
+->
+Çme
+);
+
+2850 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "size", 
+p
+->
+size
+);
+
+2851 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "bur¡", 
+p
+->
+bur¡
+);
+
+2852 
+	`årštf
+(
+f
+, "%s = %s\n",
+
+2854 
+p
+->
+drÝËss
+ ? "yes" : "no");
+
+2856 
+	`åutc
+('\n', 
+f
+);
+
+2858 
+	}
+}
+
+2861 
+	$§ve_swq_·¿ms
+(
+­p_·¿ms
+ *
+­p
+, 
+FILE
+ *
+f
+)
+
+2863 
+­p_pktq_swq_·¿ms
+ *
+p
+;
+
+2864 
+size_t
+ 
+i
+, 
+couÁ
+;
+
+2866 
+couÁ
+ = 
+	`RTE_DIM
+(
+­p
+->
+swq_·¿ms
+);
+
+2867 
+i
+ = 0; i < 
+couÁ
+; i++) {
+
+2868 
+p
+ = &
+­p
+->
+swq_·¿ms
+[
+i
+];
+
+2869 ià(!
+	`APP_PARAM_VALID
+(
+p
+))
+
+2872 
+	`årštf
+(
+f
+, "[%s]\n", 
+p
+->
+Çme
+);
+
+2873 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "size", 
+p
+->
+size
+);
+
+2874 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "bur¡_»ad", 
+p
+->
+bur¡_»ad
+);
+
+2875 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "bur¡_wr™e", 
+p
+->
+bur¡_wr™e
+);
+
+2876 
+	`årštf
+(
+f
+, "% ð%s\n", "drÝËss", 
+p
+->
+drÝËss
+ ? "yes" : "no");
+
+2877 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu64
+ "\n", "n_»Œ›s", 
+p
+->
+n_»Œ›s
+);
+
+2878 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "ýu", 
+p
+->
+ýu_sock‘_id
+);
+
+2879 
+	`årštf
+(
+f
+, "% ð%s\n", "v4_äag", 
+p
+->
+v4_äag
+ ? "yes" : "no");
+
+2880 
+	`årštf
+(
+f
+, "% ð%s\n", "v6_äag", 
+p
+->
+v6_äag
+ ? "yes" : "no");
+
+2881 
+	`årštf
+(
+f
+, "% ð%s\n", "v4_¿s", 
+p
+->
+v4_¿s
+ ? "yes" : "no");
+
+2882 
+	`årštf
+(
+f
+, "% ð%s\n", "v6_¿s", 
+p
+->
+v6_¿s
+ ? "yes" : "no");
+
+2883 ià((
+p
+->
+v4_äag
+ =ð1è|| (p->
+v6_äag
+ == 1)) {
+
+2884 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "mtu", 
+p
+->
+mtu
+);
+
+2885 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "m‘ad©a_size", 
+p
+->
+m‘ad©a_size
+);
+
+2886 
+	`årštf
+(
+f
+, "%s = %s\n",
+
+2888 
+­p
+->
+mempoÞ_·¿ms
+[
+p
+->
+mempoÞ_dœeù_id
+].
+Çme
+);
+
+2889 
+	`årštf
+(
+f
+, "%s = %s\n",
+
+2891 
+­p
+->
+mempoÞ_·¿ms
+[
+p
+->
+mempoÞ_šdœeù_id
+].
+Çme
+);
+
+2894 
+	`åutc
+('\n', 
+f
+);
+
+2896 
+	}
+}
+
+2899 
+	$§ve_tm_·¿ms
+(
+­p_·¿ms
+ *
+­p
+, 
+FILE
+ *
+f
+)
+
+2901 
+­p_pktq_tm_·¿ms
+ *
+p
+;
+
+2902 
+size_t
+ 
+i
+, 
+couÁ
+;
+
+2904 
+couÁ
+ = 
+	`RTE_DIM
+(
+­p
+->
+tm_·¿ms
+);
+
+2905 
+i
+ = 0; i < 
+couÁ
+; i++) {
+
+2906 
+p
+ = &
+­p
+->
+tm_·¿ms
+[
+i
+];
+
+2907 ià(!
+	`APP_PARAM_VALID
+(
+p
+))
+
+2910 
+	`årštf
+(
+f
+, "[%s]\n", 
+p
+->
+Çme
+);
+
+2911 
+	`årštf
+(
+f
+, "% ð%s\n", "cfg", 
+p
+->
+fže_Çme
+);
+
+2912 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "bur¡_»ad", 
+p
+->
+bur¡_»ad
+);
+
+2913 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "bur¡_wr™e", 
+p
+->
+bur¡_wr™e
+);
+
+2915 
+	`åutc
+('\n', 
+f
+);
+
+2917 
+	}
+}
+
+2920 
+	$§ve_sourû_·¿ms
+(
+­p_·¿ms
+ *
+­p
+, 
+FILE
+ *
+f
+)
+
+2922 
+­p_pktq_sourû_·¿ms
+ *
+p
+;
+
+2923 
+size_t
+ 
+i
+, 
+couÁ
+;
+
+2925 
+couÁ
+ = 
+	`RTE_DIM
+(
+­p
+->
+sourû_·¿ms
+);
+
+2926 
+i
+ = 0; i < 
+couÁ
+; i++) {
+
+2927 
+p
+ = &
+­p
+->
+sourû_·¿ms
+[
+i
+];
+
+2928 ià(!
+	`APP_PARAM_VALID
+(
+p
+))
+
+2931 
+	`årštf
+(
+f
+, "[%s]\n", 
+p
+->
+Çme
+);
+
+2932 
+	`årštf
+(
+f
+, "%s = %s\n",
+
+2934 
+­p
+->
+mempoÞ_·¿ms
+[
+p
+->
+mempoÞ_id
+].
+Çme
+);
+
+2935 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "bur¡", 
+p
+->
+bur¡
+);
+
+2936 
+	`årštf
+(
+f
+, "% ð%s\n", "pÿp_fže_rd", 
+p
+->
+fže_Çme
+);
+
+2937 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "pcap_bytes_rd_per_pkt",
+
+2938 
+p
+->
+n_by‹s_³r_pkt
+);
+
+2939 
+	`åutc
+('\n', 
+f
+);
+
+2941 
+	}
+}
+
+2944 
+	$§ve_sšk_·¿ms
+(
+­p_·¿ms
+ *
+­p
+, 
+FILE
+ *
+f
+)
+
+2946 
+­p_pktq_sšk_·¿ms
+ *
+p
+;
+
+2947 
+size_t
+ 
+i
+, 
+couÁ
+;
+
+2949 
+couÁ
+ = 
+	`RTE_DIM
+(
+­p
+->
+sšk_·¿ms
+);
+
+2950 
+i
+ = 0; i < 
+couÁ
+; i++) {
+
+2951 
+p
+ = &
+­p
+->
+sšk_·¿ms
+[
+i
+];
+
+2952 ià(!
+	`APP_PARAM_VALID
+(
+p
+))
+
+2955 
+	`årštf
+(
+f
+, "[%s]\n", 
+p
+->
+Çme
+);
+
+2956 
+	`årštf
+(
+f
+, "% ð%s\n", "pÿp_fže_wr", 
+p
+->
+fže_Çme
+);
+
+2957 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n",
+
+2958 "pÿp_n_pkt_wr", 
+p
+->
+n_pkts_to_dump
+);
+
+2959 
+	`åutc
+('\n', 
+f
+);
+
+2961 
+	}
+}
+
+2964 
+	$§ve_msgq_·¿ms
+(
+­p_·¿ms
+ *
+­p
+, 
+FILE
+ *
+f
+)
+
+2966 
+­p_msgq_·¿ms
+ *
+p
+;
+
+2967 
+size_t
+ 
+i
+, 
+couÁ
+;
+
+2969 
+couÁ
+ = 
+	`RTE_DIM
+(
+­p
+->
+msgq_·¿ms
+);
+
+2970 
+i
+ = 0; i < 
+couÁ
+; i++) {
+
+2971 
+p
+ = &
+­p
+->
+msgq_·¿ms
+[
+i
+];
+
+2972 ià(!
+	`APP_PARAM_VALID
+(
+p
+))
+
+2975 
+	`årštf
+(
+f
+, "[%s]\n", 
+p
+->
+Çme
+);
+
+2976 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "size", 
+p
+->
+size
+);
+
+2977 
+	`årštf
+(
+f
+, "% ð%" 
+PRIu32
+ "\n", "ýu", 
+p
+->
+ýu_sock‘_id
+);
+
+2979 
+	`åutc
+('\n', 
+f
+);
+
+2981 
+	}
+}
+
+2984 
+	$§ve_p–še_·¿ms
+(
+­p_·¿ms
+ *
+­p
+, 
+FILE
+ *
+f
+)
+
+2986 
+size_t
+ 
+i
+, 
+couÁ
+;
+
+2988 
+couÁ
+ = 
+	`RTE_DIM
+(
+­p
+->
+p–še_·¿ms
+);
+
+2989 
+i
+ = 0; i < 
+couÁ
+; i++) {
+
+2990 
+­p_p–še_·¿ms
+ *
+p
+ = &
+­p
+->
+p–še_·¿ms
+[
+i
+];
+
+2992 ià(!
+	`APP_PARAM_VALID
+(
+p
+))
+
+2996 
+	`årštf
+(
+f
+, "[%s]\n", 
+p
+->
+Çme
+);
+
+2999 
+	`årštf
+(
+f
+, "ty³ = %s\n", 
+p
+->
+ty³
+);
+
+3002 
+	`årštf
+(
+f
+, "cܐðs%" 
+PRIu32
+ "c%" PRIu32 "%s\n",
+
+3003 
+p
+->
+sock‘_id
+,
+
+3004 
+p
+->
+cÜe_id
+,
+
+3005 (
+p
+->
+hy³r_th_id
+) ? "h" : "");
+
+3008 ià(
+p
+->
+n_pktq_š
+) {
+
+3009 
+ušt32_t
+ 
+j
+;
+
+3011 
+	`årštf
+(
+f
+, "pktq_in =");
+
+3012 
+j
+ = 0; j < 
+p
+->
+n_pktq_š
+; j++) {
+
+3013 
+­p_pktq_š_·¿ms
+ *
+µ
+ = &
+p
+->
+pktq_š
+[
+j
+];
+
+3014 *
+Çme
+;
+
+3016 
+µ
+->
+ty³
+) {
+
+3017 
+APP_PKTQ_IN_HWQ
+:
+
+3018 
+Çme
+ = 
+­p
+->
+hwq_š_·¿ms
+[
+µ
+->
+id
+].name;
+
+3020 
+APP_PKTQ_IN_SWQ
+:
+
+3021 
+Çme
+ = 
+­p
+->
+swq_·¿ms
+[
+µ
+->
+id
+].name;
+
+3023 
+APP_PKTQ_IN_TM
+:
+
+3024 
+Çme
+ = 
+­p
+->
+tm_·¿ms
+[
+µ
+->
+id
+].name;
+
+3026 
+APP_PKTQ_IN_SOURCE
+:
+
+3027 
+Çme
+ = 
+­p
+->
+sourû_·¿ms
+[
+µ
+->
+id
+].name;
+
+3030 
+	`APP_CHECK
+(0, "Systemƒrror "
+
+3035 
+	`årštf
+(
+f
+, " %s", 
+Çme
+);
+
+3037 
+	`årštf
+(
+f
+, "\n");
+
+3041 ià(
+p
+->
+n_pktq_out
+) {
+
+3042 
+ušt32_t
+ 
+j
+;
+
+3044 
+	`årštf
+(
+f
+, "pktq_out =");
+
+3045 
+j
+ = 0; j < 
+p
+->
+n_pktq_out
+; j++) {
+
+3046 
+­p_pktq_out_·¿ms
+ *
+µ
+ =
+
+3047 &
+p
+->
+pktq_out
+[
+j
+];
+
+3048 *
+Çme
+;
+
+3050 
+µ
+->
+ty³
+) {
+
+3051 
+APP_PKTQ_OUT_HWQ
+:
+
+3052 
+Çme
+ = 
+­p
+->
+hwq_out_·¿ms
+[
+µ
+->
+id
+].name;
+
+3054 
+APP_PKTQ_OUT_SWQ
+:
+
+3055 
+Çme
+ = 
+­p
+->
+swq_·¿ms
+[
+µ
+->
+id
+].name;
+
+3057 
+APP_PKTQ_OUT_TM
+:
+
+3058 
+Çme
+ = 
+­p
+->
+tm_·¿ms
+[
+µ
+->
+id
+].name;
+
+3060 
+APP_PKTQ_OUT_SINK
+:
+
+3061 
+Çme
+ = 
+­p
+->
+sšk_·¿ms
+[
+µ
+->
+id
+].name;
+
+3064 
+	`APP_CHECK
+(0, "Systemƒrror "
+
+3069 
+	`årštf
+(
+f
+, " %s", 
+Çme
+);
+
+3071 
+	`årštf
+(
+f
+, "\n");
+
+3075 ià(
+p
+->
+n_msgq_š
+) {
+
+3076 
+ušt32_t
+ 
+j
+;
+
+3078 
+	`årštf
+(
+f
+, "msgq_in =");
+
+3079 
+j
+ = 0; j < 
+p
+->
+n_msgq_š
+; j++) {
+
+3080 
+ušt32_t
+ 
+id
+ = 
+p
+->
+msgq_š
+[
+j
+];
+
+3081 *
+Çme
+ = 
+­p
+->
+msgq_·¿ms
+[
+id
+].name;
+
+3083 
+	`årštf
+(
+f
+, " %s", 
+Çme
+);
+
+3085 
+	`årštf
+(
+f
+, "\n");
+
+3089 ià(
+p
+->
+n_msgq_out
+) {
+
+3090 
+ušt32_t
+ 
+j
+;
+
+3092 
+	`årštf
+(
+f
+, "msgq_out =");
+
+3093 
+j
+ = 0; j < 
+p
+->
+n_msgq_out
+; j++) {
+
+3094 
+ušt32_t
+ 
+id
+ = 
+p
+->
+msgq_out
+[
+j
+];
+
+3095 *
+Çme
+ = 
+­p
+->
+msgq_·¿ms
+[
+id
+].name;
+
+3097 
+	`årštf
+(
+f
+, " %s", 
+Çme
+);
+
+3099 
+	`årštf
+(
+f
+, "\n");
+
+3103 
+	`årštf
+(
+f
+, "tim”_³riod = %" 
+PRIu32
+ "\n", 
+p
+->
+tim”_³riod
+);
+
+3106 ià(
+p
+->
+n_¬gs
+) {
+
+3107 
+ušt32_t
+ 
+j
+;
+
+3109 
+j
+ = 0; j < 
+p
+->
+n_¬gs
+; j++)
+
+3110 
+	`årštf
+(
+f
+, "% ð%s\n", 
+p
+->
+¬gs_Çme
+[
+j
+],
+
+3111 
+p
+->
+¬gs_v®ue
+[
+j
+]);
+
+3114 
+	`årštf
+(
+f
+, "\n");
+
+3116 
+	}
+}
+
+3119 
+	$­p_cÚfig_§ve
+(
+­p_·¿ms
+ *
+­p
+, cÚ¡ *
+fže_Çme
+)
+
+3121 
+FILE
+ *
+fže
+;
+
+3122 *
+Çme
+, *
+dœ_Çme
+;
+
+3123 
+¡©us
+;
+
+3125 
+Çme
+ = 
+	`¡rdup
+(
+fže_Çme
+);
+
+3126 
+dœ_Çme
+ = 
+	`dςme
+(
+Çme
+);
+
+3127 
+¡©us
+ = 
+	`acûss
+(
+dœ_Çme
+, 
+W_OK
+);
+
+3128 
+	`APP_CHECK
+((
+¡©us
+ == 0),
+
+3130 "\"%s\"Ø§vcÚfigu¿tiÚ\n", 
+dœ_Çme
+);
+
+3132 
+fže
+ = 
+	`fݒ
+(
+fže_Çme
+, "w");
+
+3133 
+	`APP_CHECK
+((
+fže
+ !ð
+NULL
+),
+
+3135 
+fže_Çme
+);
+
+3137 
+	`§ve_—l_·¿ms
+(
+­p
+, 
+fže
+);
+
+3138 
+	`§ve_p–še_·¿ms
+(
+­p
+, 
+fže
+);
+
+3139 
+	`§ve_mempoÞ_·¿ms
+(
+­p
+, 
+fže
+);
+
+3140 
+	`§ve_lšks_·¿ms
+(
+­p
+, 
+fže
+);
+
+3141 
+	`§ve_rxq_·¿ms
+(
+­p
+, 
+fže
+);
+
+3142 
+	`§ve_txq_·¿ms
+(
+­p
+, 
+fže
+);
+
+3143 
+	`§ve_swq_·¿ms
+(
+­p
+, 
+fže
+);
+
+3144 
+	`§ve_tm_·¿ms
+(
+­p
+, 
+fže
+);
+
+3145 
+	`§ve_sourû_·¿ms
+(
+­p
+, 
+fže
+);
+
+3146 
+	`§ve_sšk_·¿ms
+(
+­p
+, 
+fže
+);
+
+3147 
+	`§ve_msgq_·¿ms
+(
+­p
+, 
+fže
+);
+
+3149 
+	`fþo£
+(
+fže
+);
+
+3150 
+	`ä“
+(
+Çme
+);
+
+3151 
+	}
+}
+
+3154 
+	$­p_cÚfig_š™
+(
+­p_·¿ms
+ *
+­p
+)
+
+3156 
+size_t
+ 
+i
+;
+
+3158 
+	`memýy
+(
+­p
+, &
+­p_·¿ms_deçuÉ
+, (
+­p_·¿ms
+));
+
+3160 
+i
+ = 0; i < 
+	`RTE_DIM
+(
+­p
+->
+mempoÞ_·¿ms
+); i++)
+
+3161 
+	`memýy
+(&
+­p
+->
+mempoÞ_·¿ms
+[
+i
+],
+
+3162 &
+mempoÞ_·¿ms_deçuÉ
+,
+
+3163 (
+­p_mempoÞ_·¿ms
+));
+
+3165 
+i
+ = 0; i < 
+	`RTE_DIM
+(
+­p
+->
+lšk_·¿ms
+); i++)
+
+3166 
+	`memýy
+(&
+­p
+->
+lšk_·¿ms
+[
+i
+],
+
+3167 &
+lšk_·¿ms_deçuÉ
+,
+
+3168 (
+­p_lšk_·¿ms
+));
+
+3170 
+i
+ = 0; i < 
+	`RTE_DIM
+(
+­p
+->
+hwq_š_·¿ms
+); i++)
+
+3171 
+	`memýy
+(&
+­p
+->
+hwq_š_·¿ms
+[
+i
+],
+
+3172 &
+deçuÉ_hwq_š_·¿ms
+,
+
+3173 (
+deçuÉ_hwq_š_·¿ms
+));
+
+3175 
+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 (
+deçuÉ_hwq_out_·¿ms
+));
+
+3180 
+i
+ = 0; i < 
+	`RTE_DIM
+(
+­p
+->
+swq_·¿ms
+); i++)
+
+3181 
+	`memýy
+(&
+­p
+->
+swq_·¿ms
+[
+i
+],
+
+3182 &
+deçuÉ_swq_·¿ms
+,
+
+3183 (
+deçuÉ_swq_·¿ms
+));
+
+3185 
+i
+ = 0; i < 
+	`RTE_DIM
+(
+­p
+->
+tm_·¿ms
+); i++)
+
+3186 
+	`memýy
+(&
+­p
+->
+tm_·¿ms
+[
+i
+],
+
+3187 &
+deçuÉ_tm_·¿ms
+,
+
+3188 (
+deçuÉ_tm_·¿ms
+));
+
+3190 
+i
+ = 0; i < 
+	`RTE_DIM
+(
+­p
+->
+sourû_·¿ms
+); i++)
+
+3191 
+	`memýy
+(&
+­p
+->
+sourû_·¿ms
+[
+i
+],
+
+3192 &
+deçuÉ_sourû_·¿ms
+,
+
+3193 (
+deçuÉ_sourû_·¿ms
+));
+
+3195 
+i
+ = 0; i < 
+	`RTE_DIM
+(
+­p
+->
+sšk_·¿ms
+); i++)
+
+3196 
+	`memýy
+(&
+­p
+->
+sšk_·¿ms
+[
+i
+],
+
+3197 &
+deçuÉ_sšk_·¿ms
+,
+
+3198 (
+deçuÉ_sšk_·¿ms
+));
+
+3200 
+i
+ = 0; i < 
+	`RTE_DIM
+(
+­p
+->
+msgq_·¿ms
+); i++)
+
+3201 
+	`memýy
+(&
+­p
+->
+msgq_·¿ms
+[
+i
+],
+
+3202 &
+deçuÉ_msgq_·¿ms
+,
+
+3203 (
+deçuÉ_msgq_·¿ms
+));
+
+3205 
+i
+ = 0; i < 
+	`RTE_DIM
+(
+­p
+->
+p–še_·¿ms
+); i++)
+
+3206 
+	`memýy
+(&
+­p
+->
+p–še_·¿ms
+[
+i
+],
+
+3207 &
+deçuÉ_p–še_·¿ms
+,
+
+3208 (
+deçuÉ_p–še_·¿ms
+));
+
+3211 
+	}
+}
+
+3214 
+	$fž’amedup
+(cÚ¡ *
+fž’ame
+, cÚ¡ *
+suffix
+)
+
+3216 *
+s
+ = 
+	`m®loc
+(
+	`¡¾’
+(
+fž’ame
+è+ sŒËn(
+suffix
+) + 1);
+
+3218 ià(!
+s
+)
+
+3219  
+NULL
+;
+
+3221 
+	`¥rštf
+(
+s
+, "%s%s", 
+fž’ame
+, 
+suffix
+);
+
+3222  
+s
+;
+
+3223 
+	}
+}
+
+3226 
+	$­p_cÚfig_¬gs
+(
+­p_·¿ms
+ *
+­p
+, 
+¬gc
+, **
+¬gv
+)
+
+3228 cÚ¡ *
+݊ame
+;
+
+3229 
+Ýt
+, 
+ÝtiÚ_šdex
+;
+
+3230 
+f_´e£Á
+, 
+s_´e£Á
+, 
+p_´e£Á
+, 
+l_´e£Á
+;
+
+3231 
+´•roc_´e£Á
+, 
+´•roc_·¿ms_´e£Á
+, 
+di§bË_csum_´e£Á
+;
+
+3232 
+hwlb_´e£Á
+;
+
+3233 
+æow_dœ_´e£Á
+;
+
+3234 
+sÿÃd
+ = 0;
+
+3236 
+Ý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 
+´•roc_´e£Á
+ = 0;
+
+3254 
+´•roc_·¿ms_´e£Á
+ = 0;
+
+3255 
+­p
+->
+h—d”_csum_»q
+ =1;
+
+3256 
+hwlb_´e£Á
+ = 0;
+
+3257 
+æow_dœ_´e£Á
+ = 0;
+
+3260 (
+Ýt
+ = 
+	`g‘Ýt_lÚg
+(
+¬gc
+, 
+¬gv
+, "f:s:p:l:", 
+lgÝts
+,
+
+3261 &
+ÝtiÚ_šdex
+)è!ð
+EOF
+)
+
+3262 
+Ýt
+) {
+
+3264 ià(
+f_´e£Á
+)
+
+3265 
+	`¹e_·nic
+("Error: Config file is…rovided "
+
+3267 
+f_´e£Á
+ = 1;
+
+3269 ià(!
+	`¡¾’
+(
+ݏrg
+))
+
+3270 
+	`¹e_·nic
+("Error: Config file‚ame is‚ull\n");
+
+3272 
+­p
+->
+cÚfig_fže
+ = 
+	`¡rdup
+(
+ݏrg
+);
+
+3273 ià(
+­p
+->
+cÚfig_fže
+ =ð
+NULL
+)
+
+3274 
+	`¹e_·nic
+("Error: Memory‡llocation failure\n");
+
+3279 ià(
+s_´e£Á
+)
+
+3280 
+	`¹e_·nic
+("Error: Script file is…rovided "
+
+3282 
+s_´e£Á
+ = 1;
+
+3284 ià(!
+	`¡¾’
+(
+ݏrg
+))
+
+3285 
+	`¹e_·nic
+("Error: Script file‚ame is‚ull\n");
+
+3287 
+­p
+->
+süt_fže
+ = 
+	`¡rdup
+(
+ݏrg
+);
+
+3288 ià(
+­p
+->
+süt_fže
+ =ð
+NULL
+)
+
+3289 
+	`¹e_·nic
+("Error: Memory‡llocation failure\n");
+
+3294 ià(
+p_´e£Á
+)
+
+3295 
+	`¹e_·nic
+("Error: PORT_MASK is…rovided "
+
+3297 
+p_´e£Á
+ = 1;
+
+3299 ià((
+	`ssÿnf
+(
+ݏrg
+, "%" 
+SCNx64
+ "%n", &
+­p
+->
+pÜt_mask
+,
+
+3300 &
+sÿÃd
+) != 1) ||
+
+3301 ((
+size_t
+è
+sÿÃd
+ !ð
+	`¡¾’
+(
+ݏrg
+)))
+
+3302 
+	`¹e_·nic
+("Error: PORT_MASK is‚ot "
+
+3305 ià(
+­p
+->
+pÜt_mask
+ == 0)
+
+3306 
+	`¹e_·nic
+("Error: PORT_MASK is‚ull\n");
+
+3311 ià(
+l_´e£Á
+)
+
+3312 
+	`¹e_·nic
+("Error: LOG_LEVEL is…rovided "
+
+3314 
+l_´e£Á
+ = 1;
+
+3316 ià((
+	`ssÿnf
+(
+ݏrg
+, "%" 
+SCNu32
+ "%n", &
+­p
+->
+log_Ëv–
+,
+
+3317 &
+sÿÃd
+) != 1) ||
+
+3318 ((
+size_t
+è
+sÿÃd
+ !ð
+	`¡¾’
+(
+ݏrg
+)) ||
+
+3319 (
+­p
+->
+log_Ëv–
+ >ð
+APP_LOG_LEVELS
+))
+
+3320 
+	`¹e_·nic
+("Error: LOG_LEVEL invalid value\n");
+
+3325 
+݊ame
+ = 
+lgÝts
+[
+ÝtiÚ_šdex
+].
+Çme
+;
+
+3327 ià(
+	`¡rcmp
+(
+݊ame
+, "hwlb") == 0) {
+
+3328 ià(
+hwlb_´e£Á
+)
+
+3329 
+	`¹e_·nic
+("Error: hwlb‡rgument "
+
+3331 
+hwlb_´e£Á
+ = 1;
+
+3332 
+	`´štf
+(" 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‡tleast 1\n");
+
+3339 
+	`´štf
+("NØoàHWQ fÜ HWLB‡» %d\n",
+­p
+->
+n_hwlb_q
+);
+
+3340 
+’abË_hwlb
+ = 1;
+
+3344 ià(
+	`¡rcmp
+(
+݊ame
+, "flow_dir") == 0) {
+
+3345 ià(
+æow_dœ_´e£Á
+)
+
+3346 
+	`¹e_·nic
+("Error: flow_dir‡rgument "
+
+3348 
+æow_dœ_´e£Á
+ = 1;
+
+3349 
+	`´štf
+(" FLOW DIR is configured\n");
+
+3351 
+’abË_æow_dœ
+ = 1;
+
+3356 ià(
+	`¡rcmp
+(
+݊ame
+, "disable-hw-csum") == 0) {
+
+3357 ià(
+di§bË_csum_´e£Á
+)
+
+3358 
+	`¹e_·nic
+("Error: disable-hw-csum‡rgument "
+
+3361 
+	`´štf
+("Disable TCP/UDP HW checksumi\n");
+
+3362 
+­p
+->
+h—d”_csum_»q
+ = 0;
+
+3363 
+di§bË_csum_´e£Á
+ = 1;
+
+3367 ià(
+	`¡rcmp
+(
+݊ame
+, "preproc") == 0) {
+
+3368 ià(
+´•roc_´e£Á
+)
+
+3369 
+	`¹e_·nic
+("Error: Preprocessor‡rgument "
+
+3371 
+´•roc_´e£Á
+ = 1;
+
+3373 
+­p
+->
+´•roc
+ = 
+	`¡rdup
+(
+ݏrg
+);
+
+3377 ià(
+	`¡rcmp
+(
+݊ame
+, "preproc-args") == 0) {
+
+3378 ià(
+´•roc_·¿ms_´e£Á
+)
+
+3379 
+	`¹e_·nic
+("Error: Preprocessor‡rgs "
+
+3381 
+´•roc_·¿ms_´e£Á
+ = 1;
+
+3383 
+­p
+->
+´•roc_¬gs
+ = 
+	`¡rdup
+(
+ݏrg
+);
+
+3387 
+	`­p_´št_u§ge
+(
+¬gv
+[0]);
+
+3391 
+	`­p_´št_u§ge
+(
+¬gv
+[0]);
+
+3394 
+Ýtšd
+ = 0;
+
+3397 ià(
+´•roc_·¿ms_´e£Á
+ && (
+´•roc_´e£Á
+ == 0))
+
+3398 
+	`¹e_·nic
+("Error: Preprocessor‡rgs specified while "
+
+3401 
+­p
+->
+·r£r_fže
+ = 
+´•roc_´e£Á
+ ?
+
+3402 
+	`fž’amedup
+(
+­p
+->
+cÚfig_fže
+, ".preproc") :
+
+3403 
+	`¡rdup
+(
+­p
+->
+cÚfig_fže
+);
+
+3404 
+­p
+->
+ouut_fže
+ = 
+	`fž’amedup
+×µ->
+cÚfig_fže
+, ".out");
+
+3407 
+	}
+}
+
+3410 
+	$­p_cÚfig_´•roc
+(
+­p_·¿ms
+ *
+­p
+)
+
+3412 
+bufãr
+[256];
+
+3413 
+¡©us
+;
+
+3415 ià(
+­p
+->
+´•roc
+ =ð
+NULL
+)
+
+3418 
+¡©us
+ = 
+	`acûss
+(
+­p
+->
+cÚfig_fže
+, 
+F_OK
+ | 
+R_OK
+);
+
+3419 
+	`APP_CHECK
+((
+¡©us
+ == 0), "Error: Unableo open file %s",
+
+3420 
+­p
+->
+cÚfig_fže
+);
+
+3422 
+	`¢´štf
+(
+bufãr
+, (buffer), "%s %s %s > %s",
+
+3423 
+­p
+->
+´•roc
+,
+
+3424 
+­p
+->
+´•roc_¬gs
+ ?‡pp->preproc_args : "",
+
+3425 
+­p
+->
+cÚfig_fže
+,
+
+3426 
+­p
+->
+·r£r_fže
+);
+
+3428 
+¡©us
+ = 
+	`sy¡em
+(
+bufãr
+);
+
+3429 
+	`APP_CHECK
+((
+	`WIFEXITED
+(
+¡©us
+è&& (
+	`WEXITSTATUS
+(status) == 0)),
+
+3431 
+­p
+->
+cÚfig_fže
+);
+
+3433  
+¡©us
+;
+
+3434 
+	}
+}
+
+	@vnf_common/config_parse_tm.c
+
+16 
+	~<¡dšt.h
+>
+
+17 
+	~<¡dlib.h
+>
+
+18 
+	~<¡dio.h
+>
+
+19 
+	~<ùy³.h
+>
+
+20 
+	~<g‘Ýt.h
+>
+
+21 
+	~<Ӽo.h
+>
+
+22 
+	~<¡d¬g.h
+>
+
+23 
+	~<¡ršg.h
+>
+
+24 
+	~<libg’.h
+>
+
+25 
+	~<uni¡d.h
+>
+
+27 
+	~<¹e_”ºo.h
+>
+
+28 
+	~<¹e_cfgfže.h
+>
+
+29 
+	~<¹e_¡ršg_âs.h
+>
+
+31 
+	~"­p.h
+"
+
+34 
+	$tm_cfgfže_lßd_sched_pÜt
+(
+
+35 
+¹e_cfgfže
+ *
+fže
+,
+
+36 
+¹e_sched_pÜt_·¿ms
+ *
+pÜt_·¿ms
+)
+
+38 cÚ¡ *
+’Œy
+;
+
+39 
+j
+;
+
+41 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, "port", "frame overhead");
+
+42 ià(
+’Œy
+)
+
+43 
+pÜt_·¿ms
+->
+äame_ov”h—d
+ = (
+ušt32_t
+)
+	`©oi
+(
+’Œy
+);
+
+45 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, "port", "mtu");
+
+46 ià(
+’Œy
+)
+
+47 
+pÜt_·¿ms
+->
+mtu
+ = (
+ušt32_t
+)
+	`©oi
+(
+’Œy
+);
+
+49 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+,
+
+52 ià(
+’Œy
+)
+
+53 
+pÜt_·¿ms
+->
+n_subpÜts_³r_pÜt
+ = (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+55 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+,
+
+58 ià(
+’Œy
+)
+
+59 
+pÜt_·¿ms
+->
+n_pes_³r_subpÜt
+ = (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+61 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, "port", "queue sizes");
+
+62 ià(
+’Œy
+) {
+
+63 *
+Ãxt
+;
+
+65 
+j
+ = 0; j < 
+RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE
+; j++) {
+
+66 
+pÜt_·¿ms
+->
+qsize
+[
+j
+] = (
+ušt16_t
+)
+
+67 
+	`¡¹Þ
+(
+’Œy
+, &
+Ãxt
+, 10);
+
+68 ià(
+Ãxt
+ =ð
+NULL
+)
+
+70 
+’Œy
+ = 
+Ãxt
+;
+
+74 #ifdeà
+RTE_SCHED_RED
+
+
+75 
+j
+ = 0; j < 
+RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE
+; j++) {
+
+76 
+¡r
+[32];
+
+79 
+	`¢´štf
+(
+¡r
+, (¡r), "tø%" 
+PRId32
+ " w»d mš", 
+j
+);
+
+80 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, "»d", 
+¡r
+);
+
+81 ià(
+’Œy
+) {
+
+82 *
+Ãxt
+;
+
+83 
+k
+;
+
+86 
+k
+ = 0; k < 
+e_RTE_METER_COLORS
+; k++) {
+
+87 
+pÜt_·¿ms
+->
+»d_·¿ms
+[
+j
+][
+k
+].
+mš_th
+
+
+88 ð(
+ušt16_t
+)
+	`¡¹Þ
+(
+’Œy
+, &
+Ãxt
+, 10);
+
+89 ià(
+Ãxt
+ =ð
+NULL
+)
+
+91 
+’Œy
+ = 
+Ãxt
+;
+
+96 
+	`¢´štf
+(
+¡r
+, (¡r), "tø%" 
+PRId32
+ " w»d max", 
+j
+);
+
+97 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, "»d", 
+¡r
+);
+
+98 ià(
+’Œy
+) {
+
+99 *
+Ãxt
+;
+
+100 
+k
+;
+
+103 
+k
+ = 0; k < 
+e_RTE_METER_COLORS
+; k++) {
+
+104 
+pÜt_·¿ms
+->
+»d_·¿ms
+[
+j
+][
+k
+].
+max_th
+
+
+105 ð(
+ušt16_t
+)
+	`¡¹Þ
+(
+’Œy
+, &
+Ãxt
+, 10);
+
+106 ià(
+Ãxt
+ =ð
+NULL
+)
+
+108 
+’Œy
+ = 
+Ãxt
+;
+
+113 
+	`¢´štf
+(
+¡r
+, (¡r), "tø%" 
+PRId32
+ " w»d inv…rob", 
+j
+);
+
+114 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, "»d", 
+¡r
+);
+
+115 ià(
+’Œy
+) {
+
+116 *
+Ãxt
+;
+
+117 
+k
+;
+
+120 
+k
+ = 0; k < 
+e_RTE_METER_COLORS
+; k++) {
+
+121 
+pÜt_·¿ms
+->
+»d_·¿ms
+[
+j
+][
+k
+].
+maxp_šv
+
+
+122 ð(
+ušt8_t
+)
+	`¡¹Þ
+(
+’Œy
+, &
+Ãxt
+, 10);
+
+124 ià(
+Ãxt
+ =ð
+NULL
+)
+
+126 
+’Œy
+ = 
+Ãxt
+;
+
+131 
+	`¢´štf
+(
+¡r
+, (¡r), "tø%" 
+PRId32
+ " w»d weight", 
+j
+);
+
+132 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, "»d", 
+¡r
+);
+
+133 ià(
+’Œy
+) {
+
+134 *
+Ãxt
+;
+
+135 
+k
+;
+
+138 
+k
+ = 0; k < 
+e_RTE_METER_COLORS
+; k++) {
+
+139 
+pÜt_·¿ms
+->
+»d_·¿ms
+[
+j
+][
+k
+].
+wq_log2
+
+
+140 ð(
+ušt8_t
+)
+	`¡¹Þ
+(
+’Œy
+, &
+Ãxt
+, 10);
+
+141 ià(
+Ãxt
+ =ð
+NULL
+)
+
+143 
+’Œy
+ = 
+Ãxt
+;
+
+150 
+	}
+}
+
+153 
+	$tm_cfgfže_lßd_sched_pe
+(
+
+154 
+¹e_cfgfže
+ *
+fže
+,
+
+155 
+¹e_sched_pÜt_·¿ms
+ *
+pÜt_·¿ms
+,
+
+156 
+¹e_sched_pe_·¿ms
+ *
+pe_·¿ms
+)
+
+158 
+i
+, 
+j
+;
+
+159 *
+Ãxt
+;
+
+160 cÚ¡ *
+’Œy
+;
+
+161 
+´ofžes
+;
+
+163 
+´ofžes
+ = 
+	`¹e_cfgfže_num_£ùiÚs
+(
+fže
+,
+
+165 
+pÜt_·¿ms
+->
+n_pe_´ofžes
+ = 
+´ofžes
+;
+
+167 
+j
+ = 0; j < 
+´ofžes
+; j++) {
+
+168 
+pe_Çme
+[32];
+
+170 
+	`¢´štf
+(
+pe_Çme
+, (pipe_name),
+
+171 "p´ofž%" 
+PRId32
+, 
+j
+);
+
+173 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, 
+pe_Çme
+, "tb„ate");
+
+174 ià(
+’Œy
+)
+
+175 
+pe_·¿ms
+[
+j
+].
+tb_¿‹
+ = (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+177 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, 
+pe_Çme
+, "tb size");
+
+178 ià(
+’Œy
+)
+
+179 
+pe_·¿ms
+[
+j
+].
+tb_size
+ = (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+181 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, 
+pe_Çme
+, "tc…eriod");
+
+182 ià(
+’Œy
+)
+
+183 
+pe_·¿ms
+[
+j
+].
+tc_³riod
+ = (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+185 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, 
+pe_Çme
+, "tc 0„ate");
+
+186 ià(
+’Œy
+)
+
+187 
+pe_·¿ms
+[
+j
+].
+tc_¿‹
+[0] = (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+189 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, 
+pe_Çme
+, "tc 1„ate");
+
+190 ià(
+’Œy
+)
+
+191 
+pe_·¿ms
+[
+j
+].
+tc_¿‹
+[1] = (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+193 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, 
+pe_Çme
+, "tc 2„ate");
+
+194 ià(
+’Œy
+)
+
+195 
+pe_·¿ms
+[
+j
+].
+tc_¿‹
+[2] = (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+197 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, 
+pe_Çme
+, "tc 3„ate");
+
+198 ià(
+’Œy
+)
+
+199 
+pe_·¿ms
+[
+j
+].
+tc_¿‹
+[3] = (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+201 #ifdeà
+RTE_SCHED_SUBPORT_TC_OV
+
+
+202 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, 
+pe_Çme
+,
+
+204 ià(
+’Œy
+)
+
+205 
+pe_·¿ms
+[
+j
+].
+tc_ov_weight
+ = (
+ušt8_t
+)
+	`©oi
+(
+’Œy
+);
+
+208 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+,
+
+209 
+pe_Çme
+,
+
+211 ià(
+’Œy
+)
+
+212 
+i
+ = 0; i < 
+RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS
+; i++) {
+
+213 
+pe_·¿ms
+[
+j
+].
+w¼_weights
+[
+RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE
+*0 + 
+i
+] =
+
+214 (
+ušt8_t
+è
+	`¡¹Þ
+(
+’Œy
+, &
+Ãxt
+, 10);
+
+215 ià(
+Ãxt
+ =ð
+NULL
+)
+
+217 
+’Œy
+ = 
+Ãxt
+;
+
+220 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, 
+pe_Çme
+, "tc 1 wrr weights");
+
+221 ià(
+’Œy
+)
+
+222 
+i
+ = 0; i < 
+RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS
+; i++) {
+
+223 
+pe_·¿ms
+[
+j
+].
+w¼_weights
+[
+RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE
+*1 + 
+i
+] =
+
+224 (
+ušt8_t
+è
+	`¡¹Þ
+(
+’Œy
+, &
+Ãxt
+, 10);
+
+225 ià(
+Ãxt
+ =ð
+NULL
+)
+
+227 
+’Œy
+ = 
+Ãxt
+;
+
+230 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, 
+pe_Çme
+, "tc 2 wrr weights");
+
+231 ià(
+’Œy
+)
+
+232 
+i
+ = 0; i < 
+RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS
+; i++) {
+
+233 
+pe_·¿ms
+[
+j
+].
+w¼_weights
+[
+RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE
+*2 + 
+i
+] =
+
+234 (
+ušt8_t
+è
+	`¡¹Þ
+(
+’Œy
+, &
+Ãxt
+, 10);
+
+235 ià(
+Ãxt
+ =ð
+NULL
+)
+
+237 
+’Œy
+ = 
+Ãxt
+;
+
+240 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+, 
+pe_Çme
+, "tc 3 wrr weights");
+
+241 ià(
+’Œy
+)
+
+242 
+i
+ = 0; i < 
+RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS
+; i++) {
+
+243 
+pe_·¿ms
+[
+j
+].
+w¼_weights
+[
+RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE
+*3 + 
+i
+] =
+
+244 (
+ušt8_t
+è
+	`¡¹Þ
+(
+’Œy
+, &
+Ãxt
+, 10);
+
+245 ià(
+Ãxt
+ =ð
+NULL
+)
+
+247 
+’Œy
+ = 
+Ãxt
+;
+
+251 
+	}
+}
+
+254 
+	$tm_cfgfže_lßd_sched_subpÜt
+(
+
+255 
+¹e_cfgfže
+ *
+fže
+,
+
+256 
+¹e_sched_subpÜt_·¿ms
+ *
+subpÜt_·¿ms
+,
+
+257 *
+pe_to_´ofže
+)
+
+259 cÚ¡ *
+’Œy
+;
+
+260 
+i
+, 
+j
+, 
+k
+;
+
+262 
+i
+ = 0; i < 
+APP_MAX_SCHED_SUBPORTS
+; i++) {
+
+263 
+£c_Çme
+[
+CFG_NAME_LEN
+];
+
+265 
+	`¢´štf
+(
+£c_Çme
+, (sec_name),
+
+266 "subp܈%" 
+PRId32
+, 
+i
+);
+
+268 ià(
+	`¹e_cfgfže_has_£ùiÚ
+(
+fže
+, 
+£c_Çme
+)) {
+
+269 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+,
+
+270 
+£c_Çme
+,
+
+272 ià(
+’Œy
+)
+
+273 
+subpÜt_·¿ms
+[
+i
+].
+tb_¿‹
+ =
+
+274 (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+276 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+,
+
+277 
+£c_Çme
+,
+
+279 ià(
+’Œy
+)
+
+280 
+subpÜt_·¿ms
+[
+i
+].
+tb_size
+ =
+
+281 (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+283 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+,
+
+284 
+£c_Çme
+,
+
+286 ià(
+’Œy
+)
+
+287 
+subpÜt_·¿ms
+[
+i
+].
+tc_³riod
+ =
+
+288 (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+290 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+,
+
+291 
+£c_Çme
+,
+
+293 ià(
+’Œy
+)
+
+294 
+subpÜt_·¿ms
+[
+i
+].
+tc_¿‹
+[0] =
+
+295 (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+297 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+,
+
+298 
+£c_Çme
+,
+
+300 ià(
+’Œy
+)
+
+301 
+subpÜt_·¿ms
+[
+i
+].
+tc_¿‹
+[1] =
+
+302 (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+304 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+,
+
+305 
+£c_Çme
+,
+
+307 ià(
+’Œy
+)
+
+308 
+subpÜt_·¿ms
+[
+i
+].
+tc_¿‹
+[2] =
+
+309 (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+311 
+’Œy
+ = 
+	`¹e_cfgfže_g‘_’Œy
+(
+fže
+,
+
+312 
+£c_Çme
+,
+
+314 ià(
+’Œy
+)
+
+315 
+subpÜt_·¿ms
+[
+i
+].
+tc_¿‹
+[3] =
+
+316 (
+ušt32_t
+è
+	`©oi
+(
+’Œy
+);
+
+318 
+n_’Œ›s
+ = 
+	`¹e_cfgfže_£ùiÚ_num_’Œ›s
+(
+fže
+,
+
+319 
+£c_Çme
+);
+
+320 
+¹e_cfgfže_’Œy
+ 
+’Œ›s
+[
+n_’Œ›s
+];
+
+322 
+	`¹e_cfgfže_£ùiÚ_’Œ›s
+(
+fže
+,
+
+323 
+£c_Çme
+,
+
+324 
+’Œ›s
+,
+
+325 
+n_’Œ›s
+);
+
+327 
+j
+ = 0; j < 
+n_’Œ›s
+; j++)
+
+328 ià(
+	`¡ºcmp
+("pipe",
+
+329 
+’Œ›s
+[
+j
+].
+Çme
+,
+
+331 
+´ofže
+;
+
+332 *
+tok’s
+[2] = {
+NULL
+, NULL};
+
+333 
+n_tok’s
+;
+
+334 
+begš
+, 
+’d
+;
+
+335 
+Çme
+[
+CFG_NAME_LEN
+ + 1];
+
+337 
+´ofže
+ = 
+	`©oi
+(
+’Œ›s
+[
+j
+].
+v®ue
+);
+
+338 
+	`¡ºýy
+(
+Çme
+,
+
+339 
+’Œ›s
+[
+j
+].
+Çme
+,
+
+340 (
+Çme
+));
+
+341 
+n_tok’s
+ = 
+	`¹e_¡r¥l™
+(
+
+342 &
+Çme
+[("pipe")],
+
+343 
+	`¡ºËn
+(
+Çme
+, 
+CFG_NAME_LEN
+),
+
+344 
+tok’s
+, 2, '-');
+
+346 
+begš
+ = 
+	`©oi
+(
+tok’s
+[0]);
+
+347 ià(
+n_tok’s
+ == 2)
+
+348 
+’d
+ = 
+	`©oi
+(
+tok’s
+[1]);
+
+350 
+’d
+ = 
+begš
+;
+
+352 ià((
+’d
+ >ð
+APP_MAX_SCHED_PIPES
+) ||
+
+353 (
+begš
+ > 
+’d
+))
+
+356 
+k
+ = 
+begš
+; k <ð
+’d
+; k++) {
+
+357 
+´ofže_Çme
+[
+CFG_NAME_LEN
+];
+
+359 
+	`¢´štf
+(
+´ofže_Çme
+,
+
+360 (
+´ofže_Çme
+),
+
+361 "p´ofž%" 
+PRId32
+,
+
+362 
+´ofže
+);
+
+363 ià(
+	`¹e_cfgfže_has_£ùiÚ
+(
+fže
+, 
+´ofže_Çme
+))
+
+364 
+pe_to_´ofže
+[
+i
+ * 
+APP_MAX_SCHED_PIPES
+ + 
+k
+] = 
+´ofže
+;
+
+366 
+	`¹e_ex™
+(
+EXIT_FAILURE
+,
+
+368 
+’Œ›s
+[
+j
+].
+v®ue
+);
+
+375 
+	}
+}
+
+378 
+	$tm_cfgfže_lßd
+(
+­p_pktq_tm_·¿ms
+ *
+tm
+)
+
+380 
+¹e_cfgfže
+ *
+fže
+;
+
+381 
+ušt32_t
+ 
+i
+;
+
+383 
+	`mem£t
+(
+tm
+->
+sched_subpÜt_·¿ms
+, 0, (tm->sched_subport_params));
+
+384 
+	`mem£t
+(
+tm
+->
+sched_pe_´ofžes
+, 0, (tm->sched_pipe_profiles));
+
+385 
+	`mem£t
+(&
+tm
+->
+sched_pÜt_·¿ms
+, 0, (tm->sched_port_params));
+
+386 
+i
+ = 0; i < 
+APP_MAX_SCHED_SUBPORTS
+ * 
+APP_MAX_SCHED_PIPES
+; i++)
+
+387 
+tm
+->
+sched_pe_to_´ofže
+[
+i
+] = -1;
+
+389 
+tm
+->
+sched_pÜt_·¿ms
+.
+pe_´ofžes
+ = &tm->
+sched_pe_´ofžes
+[0];
+
+391 ià(
+tm
+->
+fže_Çme
+[0] == '\0')
+
+394 
+fže
+ = 
+	`¹e_cfgfže_lßd
+(
+tm
+->
+fže_Çme
+, 0);
+
+395 ià(
+fže
+ =ð
+NULL
+)
+
+398 
+	`tm_cfgfže_lßd_sched_pÜt
+(
+fže
+,
+
+399 &
+tm
+->
+sched_pÜt_·¿ms
+);
+
+400 
+	`tm_cfgfže_lßd_sched_subpÜt
+(
+fže
+,
+
+401 
+tm
+->
+sched_subpÜt_·¿ms
+,
+
+402 
+tm
+->
+sched_pe_to_´ofže
+);
+
+403 
+	`tm_cfgfže_lßd_sched_pe
+(
+fže
+,
+
+404 &
+tm
+->
+sched_pÜt_·¿ms
+,
+
+405 
+tm
+->
+sched_pe_´ofžes
+);
+
+407 
+	`¹e_cfgfže_þo£
+(
+fže
+);
+
+409 
+	}
+}
+
+412 
+	$­p_cÚfig_·r£_tm
+(
+­p_·¿ms
+ *
+­p
+)
+
+414 
+ušt32_t
+ 
+i
+;
+
+416 
+i
+ = 0; i < 
+	`RTE_DIM
+(
+­p
+->
+tm_·¿ms
+); i++) {
+
+417 
+­p_pktq_tm_·¿ms
+ *
+p
+ = &
+­p
+->
+tm_·¿ms
+[
+i
+];
+
+418 
+¡©us
+;
+
+420 ià(!
+	`APP_PARAM_VALID
+(
+p
+))
+
+423 
+¡©us
+ = 
+	`tm_cfgfže_lßd
+(
+p
+);
+
+424 
+	`APP_CHECK
+(
+¡©us
+ == 0,
+
+426 
+p
+->
+Çme
+,
+
+427 
+p
+->
+fže_Çme
+);
+
+431 
+	}
+}
+
+	@vnf_common/cpu_core_map.c
+
+17 
+	~<š‰y³s.h
+>
+
+18 
+	~<¡dlib.h
+>
+
+19 
+	~<¡dio.h
+>
+
+20 
+	~<¡ršg.h
+>
+
+22 
+	~<¹e_lcÜe.h
+>
+
+24 
+	~"ýu_cÜe_m­.h
+"
+
+26 
+	sýu_cÜe_m­
+ {
+
+27 
+ušt32_t
+ 
+	mn_max_sock‘s
+;
+
+28 
+ušt32_t
+ 
+	mn_max_cÜes_³r_sock‘
+;
+
+29 
+ušt32_t
+ 
+	mn_max_ht_³r_cÜe
+;
+
+30 
+ušt32_t
+ 
+	mn_sock‘s
+;
+
+31 
+ušt32_t
+ 
+	mn_cÜes_³r_sock‘
+;
+
+32 
+ušt32_t
+ 
+	mn_ht_³r_cÜe
+;
+
+33 
+	mm­
+[0];
+
+36 
+šlše
+ 
+ušt32_t
+
+
+37 
+	$ýu_cÜe_m­_pos
+(
+ýu_cÜe_m­
+ *
+m­
+,
+
+38 
+ušt32_t
+ 
+sock‘_id
+,
+
+39 
+ušt32_t
+ 
+cÜe_id
+,
+
+40 
+ušt32_t
+ 
+ht_id
+)
+
+42  (
+sock‘_id
+ * 
+m­
+->
+n_max_cÜes_³r_sock‘
+ + 
+cÜe_id
+) *
+
+43 
+m­
+->
+n_max_ht_³r_cÜe
+ + 
+ht_id
+;
+
+44 
+	}
+}
+
+47 
+ýu_cÜe_m­_compu‹_—l
+(
+ýu_cÜe_m­
+ *
+m­
+);
+
+50 
+ýu_cÜe_m­_compu‹_lšux
+(
+ýu_cÜe_m­
+ *
+m­
+);
+
+53 
+ýu_cÜe_m­_compu‹_ªd_check
+(
+ýu_cÜe_m­
+ *
+m­
+);
+
+55 
+ýu_cÜe_m­
+ *
+
+56 
+	$ýu_cÜe_m­_š™
+(
+ušt32_t
+ 
+n_max_sock‘s
+,
+
+57 
+ušt32_t
+ 
+n_max_cÜes_³r_sock‘
+,
+
+58 
+ušt32_t
+ 
+n_max_ht_³r_cÜe
+,
+
+59 
+ušt32_t
+ 
+—l_š™Ÿlized
+)
+
+61 
+ušt32_t
+ 
+m­_size
+, 
+m­_mem_size
+, 
+i
+;
+
+62 
+ýu_cÜe_m­
+ *
+m­
+;
+
+63 
+¡©us
+;
+
+66 ià((
+n_max_sock‘s
+ == 0) ||
+
+67 (
+n_max_cÜes_³r_sock‘
+ == 0) ||
+
+68 (
+n_max_ht_³r_cÜe
+ == 0))
+
+69  
+NULL
+;
+
+72 
+m­_size
+ = 
+n_max_sock‘s
+ * 
+n_max_cÜes_³r_sock‘
+ * 
+n_max_ht_³r_cÜe
+;
+
+73 
+m­_mem_size
+ = (
+ýu_cÜe_m­
+è+ 
+m­_size
+ * ();
+
+74 
+m­
+ = (
+ýu_cÜe_m­
+ *è
+	`m®loc
+(
+m­_mem_size
+);
+
+75 ià(
+m­
+ =ð
+NULL
+)
+
+76  
+NULL
+;
+
+79 
+m­
+->
+n_max_sock‘s
+ =‚_max_sockets;
+
+80 
+m­
+->
+n_max_cÜes_³r_sock‘
+ =‚_max_cores_per_socket;
+
+81 
+m­
+->
+n_max_ht_³r_cÜe
+ =‚_max_ht_per_core;
+
+82 
+m­
+->
+n_sock‘s
+ = 0;
+
+83 
+m­
+->
+n_cÜes_³r_sock‘
+ = 0;
+
+84 
+m­
+->
+n_ht_³r_cÜe
+ = 0;
+
+86 
+i
+ = 0; i < 
+m­_size
+; i++)
+
+87 
+m­
+->m­[
+i
+] = -1;
+
+89 
+¡©us
+ = (
+—l_š™Ÿlized
+) ?
+
+90 
+	`ýu_cÜe_m­_compu‹_—l
+(
+m­
+) :
+
+91 
+	`ýu_cÜe_m­_compu‹_lšux
+(
+m­
+);
+
+93 ià(
+¡©us
+) {
+
+94 
+	`ä“
+(
+m­
+);
+
+95  
+NULL
+;
+
+98 
+¡©us
+ = 
+	`ýu_cÜe_m­_compu‹_ªd_check
+(
+m­
+);
+
+99 ià(
+¡©us
+) {
+
+100 
+	`ä“
+(
+m­
+);
+
+101  
+NULL
+;
+
+104  
+m­
+;
+
+105 
+	}
+}
+
+108 
+	$ýu_cÜe_m­_compu‹_—l
+(
+ýu_cÜe_m­
+ *
+m­
+)
+
+110 
+ušt32_t
+ 
+sock‘_id
+, 
+cÜe_id
+, 
+ht_id
+;
+
+113 
+sock‘_id
+ = 0; sock‘_id < 
+m­
+->
+n_max_sock‘s
+; socket_id++) {
+
+114 
+ušt32_t
+ 
+n_d‘eùed
+, 
+cÜe_id_cÚtig
+;
+
+115 
+lcÜe_id
+;
+
+117 
+n_d‘eùed
+ = 0;
+
+118 
+lcÜe_id
+ = 0;†cÜe_id < 
+RTE_MAX_LCORE
+;†core_id++) {
+
+119 
+lcÜe_cÚfig
+ *
+p
+ = &lcÜe_cÚfig[
+lcÜe_id
+];
+
+121 ià((
+p
+->
+d‘eùed
+è&& (p->
+sock‘_id
+ == socket_id))
+
+122 
+n_d‘eùed
+++;
+
+125 
+cÜe_id_cÚtig
+ = 0;
+
+127 
+cÜe_id
+ = 0; 
+n_d‘eùed
+ ; core_id++) {
+
+128 
+ht_id
+ = 0;
+
+130 
+lcÜe_id
+ = 0;
+
+131 
+lcÜe_id
+ < 
+RTE_MAX_LCORE
+;
+
+132 
+lcÜe_id
+++) {
+
+133 
+lcÜe_cÚfig
+ *
+p
+ =
+
+134 &
+lcÜe_cÚfig
+[
+lcÜe_id
+];
+
+136 ià((
+p
+->
+d‘eùed
+) &&
+
+137 (
+p
+->
+sock‘_id
+ == socket_id) &&
+
+138 (
+p
+->
+cÜe_id
+ == core_id)) {
+
+139 
+ušt32_t
+ 
+pos
+ = 
+	`ýu_cÜe_m­_pos
+(
+m­
+,
+
+140 
+sock‘_id
+,
+
+141 
+cÜe_id_cÚtig
+,
+
+142 
+ht_id
+);
+
+144 
+m­
+->m­[
+pos
+] = 
+lcÜe_id
+;
+
+145 
+ht_id
+++;
+
+146 
+n_d‘eù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‘
+)
+
+160 
+	}
+}
+
+163 
+	$ýu_cÜe_m­_compu‹_ªd_check
+(
+ýu_cÜe_m­
+ *
+m­
+)
+
+165 
+ušt32_t
+ 
+sock‘_id
+, 
+cÜe_id
+, 
+ht_id
+;
+
+168 
+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 
+cÜe_id
+ = 0; cÜe_id < 
+m­
+->
+n_max_cÜes_³r_sock‘
+; core_id++) {
+
+179 
+ušt32_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‘
+++;
+
+187 ià(
+m­
+->
+n_cÜes_³r_sock‘
+ == 0)
+
+190 
+sock‘_id
+ = 0; sock‘_id < 
+m­
+->
+n_max_sock‘s
+; socket_id++) {
+
+191 
+ušt32_t
+ 
+pos
+ = 
+sock‘_id
+ * 
+m­
+->
+n_max_cÜes_³r_sock‘
+ *
+
+192 
+m­
+->
+n_max_ht_³r_cÜe
+;
+
+194 ià(
+m­
+->m­[
+pos
+] == -1)
+
+197 
+m­
+->
+n_sock‘s
+++;
+
+200 ià(
+m­
+->
+n_sock‘s
+ == 0)
+
+205 
+sock‘_id
+ = 0; sock‘_id < 
+m­
+->
+n_sock‘s
+; socket_id++) {
+
+206 
+cÜe_id
+ = 0; cÜe_id < 
+m­
+->
+n_cÜes_³r_sock‘
+; core_id++)
+
+207 
+ht_id
+ = 0;
+
+208 
+ht_id
+ < 
+m­
+->
+n_max_ht_³r_cÜe
+;
+
+209 
+ht_id
+++) {
+
+210 
+ušt32_t
+ 
+pos
+ = (
+sock‘_id
+ *
+
+211 
+m­
+->
+n_max_cÜes_³r_sock‘
+ + 
+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  ; 
+cÜe_id
+ < 
+m­
+->
+n_max_cÜes_³r_sock‘
+; core_id++)
+
+222 
+ht_id
+ = 0;
+
+223 
+ht_id
+ < 
+m­
+->
+n_max_ht_³r_cÜe
+;
+
+224 
+ht_id
+++) {
+
+225 
+ušt32_t
+ 
+pos
+ = 
+	`ýu_cÜe_m­_pos
+(
+m­
+,
+
+226 
+sock‘_id
+,
+
+227 
+cÜe_id
+,
+
+228 
+ht_id
+);
+
+230 ià(
+m­
+->m­[
+pos
+] != -1)
+
+236 
+	}
+}
+
+238 
+	#FILE_LINUX_CPU_N_LCORES
+ \
+
+239 "/sys/deviûs/sy¡em/ýu/´e£Á"
+
+	)
+
+242 
+	$ýu_cÜe_m­_g‘_n_lcÜes_lšux
+()
+
+244 
+bufãr
+[64], *
+¡ršg
+;
+
+245 
+FILE
+ *
+fd
+;
+
+247 
+fd
+ = 
+	`fݒ
+(
+FILE_LINUX_CPU_N_LCORES
+, "r");
+
+248 ià(
+fd
+ =ð
+NULL
+)
+
+251 ià(
+	`fg‘s
+(
+bufãr
+, (bufãr), 
+fd
+è=ð
+NULL
+) {
+
+252 
+	`fþo£
+(
+fd
+);
+
+256 
+	`fþo£
+(
+fd
+);
+
+258 
+¡ršg
+ = 
+	`šdex
+(
+bufãr
+, '-');
+
+259 ià(
+¡ršg
+ =ð
+NULL
+)
+
+262  
+	`©oi
+(++
+¡ršg
+) + 1;
+
+263 
+	}
+}
+
+265 
+	#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‘_cÜe_id_lšux
+(
+lcÜe_id
+)
+
+271 
+bufãr
+[64];
+
+272 
+FILE
+ *
+fd
+;
+
+273 
+cÜe_id
+;
+
+275 
+	`¢´štf
+(
+bufãr
+, (bufãr), 
+FILE_LINUX_CPU_CORE_ID
+, 
+lcÜe_id
+);
+
+276 
+fd
+ = 
+	`fݒ
+(
+bufãr
+, "r");
+
+277 ià(
+fd
+ =ð
+NULL
+)
+
+280 ià(
+	`fg‘s
+(
+bufãr
+, (bufãr), 
+fd
+è=ð
+NULL
+) {
+
+281 
+	`fþo£
+(
+fd
+);
+
+285 
+	`fþo£
+(
+fd
+);
+
+287 
+cÜe_id
+ = 
+	`©oi
+(
+bufãr
+);
+
+288  
+cÜe_id
+;
+
+289 
+	}
+}
+
+291 
+	#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‘_sock‘_id_lšux
+(
+lcÜe_id
+)
+
+297 
+bufãr
+[64];
+
+298 
+FILE
+ *
+fd
+;
+
+299 
+sock‘_id
+;
+
+301 
+	`¢´štf
+(
+bufãr
+, (bufãr), 
+FILE_LINUX_CPU_SOCKET_ID
+, 
+lcÜe_id
+);
+
+302 
+fd
+ = 
+	`fݒ
+(
+bufãr
+, "r");
+
+303 ià(
+fd
+ =ð
+NULL
+)
+
+306 ià(
+	`fg‘s
+(
+bufãr
+, (bufãr), 
+fd
+è=ð
+NULL
+) {
+
+307 
+	`fþo£
+(
+fd
+);
+
+311 
+	`fþo£
+(
+fd
+);
+
+313 
+sock‘_id
+ = 
+	`©oi
+(
+bufãr
+);
+
+314  
+sock‘_id
+;
+
+315 
+	}
+}
+
+318 
+	$ýu_cÜe_m­_compu‹_lšux
+(
+ýu_cÜe_m­
+ *
+m­
+)
+
+320 
+ušt32_t
+ 
+sock‘_id
+, 
+cÜe_id
+, 
+ht_id
+;
+
+321 
+n_lcÜes
+;
+
+323 
+n_lcÜes
+ = 
+	`ýu_cÜe_m­_g‘_n_lcÜes_lšux
+();
+
+324 ià(
+n_lcÜes
+ <= 0)
+
+328 
+sock‘_id
+ = 0; sock‘_id < 
+m­
+->
+n_max_sock‘s
+; socket_id++) {
+
+329 
+ušt32_t
+ 
+n_d‘eùed
+, 
+cÜe_id_cÚtig
+;
+
+330 
+lcÜe_id
+;
+
+332 
+n_d‘eùed
+ = 0;
+
+333 
+lcÜe_id
+ = 0;†cÜe_id < 
+n_lcÜes
+;†core_id++) {
+
+334 
+lcÜe_sock‘_id
+ =
+
+335 
+	`ýu_cÜe_m­_g‘_sock‘_id_lšux
+(
+lcÜe_id
+);
+
+337 ià(
+lcÜe_sock‘_id
+ < 0)
+
+340 ià(((
+ušt32_t
+è
+lcÜe_sock‘_id
+è=ð
+sock‘_id
+)
+
+341 
+n_d‘eùed
+++;
+
+344 
+cÜe_id_cÚtig
+ = 0;
+
+346 
+cÜe_id
+ = 0; 
+n_d‘eùed
+ ; core_id++) {
+
+347 
+ht_id
+ = 0;
+
+349 
+lcÜe_id
+ = 0;†cÜe_id < 
+n_lcÜes
+;†core_id++) {
+
+350 
+lcÜe_sock‘_id
+ =
+
+351 
+	`ýu_cÜe_m­_g‘_sock‘_id_lšux
+(
+
+352 
+lcÜe_id
+);
+
+354 ià(
+lcÜe_sock‘_id
+ < 0)
+
+357 
+lcÜe_cÜe_id
+ =
+
+358 
+	`ýu_cÜe_m­_g‘_cÜe_id_lšux
+(
+
+359 
+lcÜe_id
+);
+
+361 ià(
+lcÜe_cÜe_id
+ < 0)
+
+364 ià(((
+ušt32_t
+è
+lcÜe_sock‘_id
+ =ð
+sock‘_id
+) &&
+
+365 ((
+ušt32_t
+è
+lcÜe_cÜe_id
+ =ð
+cÜe_id
+)) {
+
+366 
+ušt32_t
+ 
+pos
+ = 
+	`ýu_cÜe_m­_pos
+(
+m­
+,
+
+367 
+sock‘_id
+,
+
+368 
+cÜe_id_cÚtig
+,
+
+369 
+ht_id
+);
+
+371 
+m­
+->m­[
+pos
+] = 
+lcÜe_id
+;
+
+372 
+ht_id
+++;
+
+373 
+n_d‘eù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‘
+)
+
+387 
+	}
+}
+
+390 
+	$ýu_cÜe_m­_´št
+(
+ýu_cÜe_m­
+ *
+m­
+)
+
+392 
+ušt32_t
+ 
+sock‘_id
+, 
+cÜe_id
+, 
+ht_id
+;
+
+394 ià(
+m­
+ =ð
+NULL
+)
+
+397 
+sock‘_id
+ = 0; sock‘_id < 
+m­
+->
+n_sock‘s
+; socket_id++) {
+
+398 
+	`´štf
+("Sock‘ %" 
+PRIu32
+ ":\n", 
+sock‘_id
+);
+
+400 
+cÜe_id
+ = 0;
+
+401 
+cÜe_id
+ < 
+m­
+->
+n_cÜes_³r_sock‘
+;
+
+402 
+cÜe_id
+++) {
+
+403 
+	`´štf
+("[%" 
+PRIu32
+ "] = [", 
+cÜe_id
+);
+
+405 
+ht_id
+ = 0; ht_id < 
+m­
+->
+n_ht_³r_cÜe
+; ht_id++) {
+
+406 
+lcÜe_id
+ = 
+	`ýu_cÜe_m­_g‘_lcÜe_id
+(
+m­
+,
+
+407 
+sock‘_id
+,
+
+408 
+cÜe_id
+,
+
+409 
+ht_id
+);
+
+411 
+ušt32_t
+ 
+cÜe_id_nÚcÚtig
+ =
+
+412 
+	`ýu_cÜe_m­_g‘_cÜe_id_lšux
+(
+
+413 
+lcÜe_id
+);
+
+415 
+	`´štf
+(" %" 
+PRId32
+ " (%" 
+PRIu32
+ ") ",
+
+416 
+lcÜe_id
+,
+
+417 
+cÜe_id_nÚcÚtig
+);
+
+420 
+	`´štf
+("]\n");
+
+423 
+	}
+}
+
+425 
+ušt32_t
+
+
+426 
+	$ýu_cÜe_m­_g‘_n_sock‘s
+(
+ýu_cÜe_m­
+ *
+m­
+)
+
+428 ià(
+m­
+ =ð
+NULL
+)
+
+431  
+m­
+->
+n_sock‘s
+;
+
+432 
+	}
+}
+
+434 
+ušt32_t
+
+
+435 
+	$ýu_cÜe_m­_g‘_n_cÜes_³r_sock‘
+(
+ýu_cÜe_m­
+ *
+m­
+)
+
+437 ià(
+m­
+ =ð
+NULL
+)
+
+440  
+m­
+->
+n_cÜes_³r_sock‘
+;
+
+441 
+	}
+}
+
+443 
+ušt32_t
+
+
+444 
+	$ýu_cÜe_m­_g‘_n_ht_³r_cÜe
+(
+ýu_cÜe_m­
+ *
+m­
+)
+
+446 ià(
+m­
+ =ð
+NULL
+)
+
+449  
+m­
+->
+n_ht_³r_cÜe
+;
+
+450 
+	}
+}
+
+453 
+	$ýu_cÜe_m­_g‘_lcÜe_id
+(
+ýu_cÜe_m­
+ *
+m­
+,
+
+454 
+ušt32_t
+ 
+sock‘_id
+,
+
+455 
+ušt32_t
+ 
+cÜe_id
+,
+
+456 
+ušt32_t
+ 
+ht_id
+)
+
+458 
+ušt32_t
+ 
+pos
+;
+
+460 ià((
+m­
+ =ð
+NULL
+) ||
+
+461 (
+sock‘_id
+ >ð
+m­
+->
+n_sock‘s
+) ||
+
+462 (
+cÜe_id
+ >ð
+m­
+->
+n_cÜes_³r_sock‘
+) ||
+
+463 (
+ht_id
+ >ð
+m­
+->
+n_ht_³r_cÜe
+))
+
+466 
+pos
+ = 
+	`ýu_cÜe_m­_pos
+(
+m­
+, 
+sock‘_id
+, 
+cÜe_id
+, 
+ht_id
+);
+
+468  
+m­
+->m­[
+pos
+];
+
+469 
+	}
+}
+
+472 
+	$ýu_cÜe_m­_ä“
+(
+ýu_cÜe_m­
+ *
+m­
+)
+
+474 
+	`ä“
+(
+m­
+);
+
+475 
+	}
+}
+
+	@vnf_common/cpu_core_map.h
+
+17 #iâdeà
+__INCLUDE_CPU_CORE_MAP_H__
+
+
+18 
+	#__INCLUDE_CPU_CORE_MAP_H__
+
+
+	)
+
+20 
+	~<¡dio.h
+>
+
+22 
+	~<¹e_lcÜe.h
+>
+
+24 
+	gýu_cÜe_m­
+;
+
+26 
+ýu_cÜe_m­
+ *
+
+27 
+ýu_cÜe_m­_š™
+(
+ušt32_t
+ 
+n_max_sock‘s
+,
+
+28 
+ušt32_t
+ 
+n_max_cÜes_³r_sock‘
+,
+
+29 
+ušt32_t
+ 
+n_max_ht_³r_cÜe
+,
+
+30 
+ušt32_t
+ 
+—l_š™Ÿlized
+);
+
+32 
+ušt32_t
+
+
+33 
+ýu_cÜe_m­_g‘_n_sock‘s
+(
+ýu_cÜe_m­
+ *
+m­
+);
+
+35 
+ušt32_t
+
+
+36 
+ýu_cÜe_m­_g‘_n_cÜes_³r_sock‘
+(
+ýu_cÜe_m­
+ *
+m­
+);
+
+38 
+ušt32_t
+
+
+39 
+ýu_cÜe_m­_g‘_n_ht_³r_cÜe
+(
+ýu_cÜe_m­
+ *
+m­
+);
+
+42 
+ýu_cÜe_m­_g‘_lcÜe_id
+(
+ýu_cÜe_m­
+ *
+m­
+,
+
+43 
+ušt32_t
+ 
+sock‘_id
+,
+
+44 
+ušt32_t
+ 
+cÜe_id
+,
+
+45 
+ušt32_t
+ 
+ht_id
+);
+
+47 
+ýu_cÜe_m­_´št
+(
+ýu_cÜe_m­
+ *
+m­
+);
+
+50 
+ýu_cÜe_m­_ä“
+(
+ýu_cÜe_m­
+ *
+m­
+);
+
+	@vnf_common/hash_func.h
+
+16 #iâdeà
+__INCLUDE_HASH_FUNC_H__
+
+
+17 
+	#__INCLUDE_HASH_FUNC_H__
+
+
+	)
+
+19 
+šlše
+ 
+ušt64_t
+
+
+20 
+	$hash_xÜ_key8
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+22 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+23 
+ušt64_t
+ 
+xÜ0
+;
+
+25 
+xÜ0
+ = 
+£ed
+ ^ 
+k
+[0];
+
+27  (
+xÜ0
+ >> 32) ^ xor0;
+
+28 
+	}
+}
+
+30 
+šlše
+ 
+ušt64_t
+
+
+31 
+	$hash_xÜ_key16
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+33 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+34 
+ušt64_t
+ 
+xÜ0
+;
+
+36 
+xÜ0
+ = (
+k
+[0] ^ 
+£ed
+) ^ k[1];
+
+38  (
+xÜ0
+ >> 32) ^ xor0;
+
+39 
+	}
+}
+
+41 
+šlše
+ 
+ušt64_t
+
+
+42 
+	$hash_xÜ_key24
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+44 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+45 
+ušt64_t
+ 
+xÜ0
+;
+
+47 
+xÜ0
+ = (
+k
+[0] ^ 
+£ed
+) ^ k[1];
+
+49 
+xÜ0
+ ^ð
+k
+[2];
+
+51  (
+xÜ0
+ >> 32) ^ xor0;
+
+52 
+	}
+}
+
+54 
+šlše
+ 
+ušt64_t
+
+
+55 
+	$hash_xÜ_key32
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+57 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+58 
+ušt64_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  (
+xÜ0
+ >> 32) ^ xor0;
+
+66 
+	}
+}
+
+68 
+šlše
+ 
+ušt64_t
+
+
+69 
+	$hash_xÜ_key40
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+71 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+72 
+ušt64_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  (
+xÜ0
+ >> 32) ^ xor0;
+
+82 
+	}
+}
+
+84 
+šlše
+ 
+ušt64_t
+
+
+85 
+	$hash_xÜ_key48
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+87 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+88 
+ušt64_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  (
+xÜ0
+ >> 32) ^ xor0;
+
+99 
+	}
+}
+
+101 
+šlše
+ 
+ušt64_t
+
+
+102 
+	$hash_xÜ_key56
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+104 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+105 
+ušt64_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  (
+xÜ0
+ >> 32) ^ xor0;
+
+117 
+	}
+}
+
+119 
+šlše
+ 
+ušt64_t
+
+
+120 
+	$hash_xÜ_key64
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+122 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+123 
+ušt64_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  (
+xÜ0
+ >> 32) ^ xor0;
+
+136 
+	}
+}
+
+138 #ià
+defšed
+(
+RTE_ARCH_X86_64
+è&& defšed(
+RTE_MACHINE_CPUFLAG_SSE4_2
+)
+
+140 
+	~<x86šŒš.h
+>
+
+142 
+šlše
+ 
+ušt64_t
+
+
+143 
+	$hash_üc_key8
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+145 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+146 
+ušt64_t
+ 
+üc0
+;
+
+148 
+üc0
+ = 
+	`_mm_üc32_u64
+(
+£ed
+, 
+k
+[0]);
+
+150  
+üc0
+;
+
+151 
+	}
+}
+
+153 
+šlše
+ 
+ušt64_t
+
+
+154 
+	$hash_üc_key16
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+156 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+157 
+ušt64_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  
+üc0
+;
+
+167 
+	}
+}
+
+169 
+šlše
+ 
+ušt64_t
+
+
+170 
+	$hash_üc_key24
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+172 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+173 
+ušt64_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  
+üc0
+;
+
+186 
+	}
+}
+
+188 
+šlše
+ 
+ušt64_t
+
+
+189 
+	$hash_üc_key32
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+191 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+192 
+ušt64_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  
+üc0
+;
+
+209 
+	}
+}
+
+211 
+šlše
+ 
+ušt64_t
+
+
+212 
+	$hash_üc_key40
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+214 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+215 
+ušt64_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  
+üc0
+;
+
+232 
+	}
+}
+
+234 
+šlše
+ 
+ušt64_t
+
+
+235 
+	$hash_üc_key48
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+237 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+238 
+ušt64_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  
+üc0
+;
+
+256 
+	}
+}
+
+258 
+šlše
+ 
+ušt64_t
+
+
+259 
+	$hash_üc_key56
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+261 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+262 
+ušt64_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  
+üc0
+;
+
+283 
+	}
+}
+
+285 
+šlše
+ 
+ušt64_t
+
+
+286 
+	$hash_üc_key64
+(*
+key
+, 
+__¹e_unu£d
+ 
+ušt32_t
+ 
+key_size
+, 
+ušt64_t
+ 
+£ed
+)
+
+288 
+ušt64_t
+ *
+k
+ = 
+key
+;
+
+289 
+ušt64_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  
+üc0
+;
+
+310 
+	}
+}
+
+312 
+	#hash_deçuÉ_key8
+ 
+hash_üc_key8
+
+
+	)
+
+313 
+	#hash_deçuÉ_key16
+ 
+hash_üc_key16
+
+
+	)
+
+314 
+	#hash_deçuÉ_key24
+ 
+hash_üc_key24
+
+
+	)
+
+315 
+	#hash_deçuÉ_key32
+ 
+hash_üc_key32
+
+
+	)
+
+316 
+	#hash_deçuÉ_key40
+ 
+hash_üc_key40
+
+
+	)
+
+317 
+	#hash_deçuÉ_key48
+ 
+hash_üc_key48
+
+
+	)
+
+318 
+	#hash_deçuÉ_key56
+ 
+hash_üc_key56
+
+
+	)
+
+319 
+	#hash_deçuÉ_key64
+ 
+hash_üc_key64
+
+
+	)
+
+323 
+	#hash_deçuÉ_key8
+ 
+hash_xÜ_key8
+
+
+	)
+
+324 
+	#hash_deçuÉ_key16
+ 
+hash_xÜ_key16
+
+
+	)
+
+325 
+	#hash_deçuÉ_key24
+ 
+hash_xÜ_key24
+
+
+	)
+
+326 
+	#hash_deçuÉ_key32
+ 
+hash_xÜ_key32
+
+
+	)
+
+327 
+	#hash_deçuÉ_key40
+ 
+hash_xÜ_key40
+
+
+	)
+
+328 
+	#hash_deçuÉ_key48
+ 
+hash_xÜ_key48
+
+
+	)
+
+329 
+	#hash_deçuÉ_key56
+ 
+hash_xÜ_key56
+
+
+	)
+
+330 
+	#hash_deçuÉ_key64
+ 
+hash_xÜ_key64
+
+
+	)
+
+	@vnf_common/parser.h
+
+17 #iâdeà
+__INCLUDE_PARSER_H__
+
+
+18 
+	#__INCLUDE_PARSER_H__
+
+
+	)
+
+21 
+·r£r_»ad_¬g_boÞ
+(cÚ¡ *
+p
+);
+
+24 
+·r£r_»ad_ušt64
+(
+ušt64_t
+ *
+v®ue
+, cÚ¡ *
+p
+);
+
+27 
+·r£r_»ad_ušt32
+(
+ušt32_t
+ *
+v®ue
+, cÚ¡ *
+p
+);
+
+30 
+·r£_hex_¡ršg
+(*
+¤c
+, 
+ušt8_t
+ *
+d¡
+, 
+ušt32_t
+ *
+size
+);
+
+	@vnf_common/pipeline.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_H__
+
+
+18 
+	#__INCLUDE_PIPELINE_H__
+
+
+	)
+
+20 
+	~<cmdlše_·r£.h
+>
+
+22 
+	~"p–še_be.h
+"
+
+28 * (*
+	tp–še_ã_Ý_š™
+)(
+	tp–še_·¿ms
+ *
+	t·¿ms
+, *
+	t¬g
+);
+
+30 (*
+	tp–še_ã_Ý_ä“
+)(*
+	tp–še
+);
+
+32 
+	sp–še_ã_Ýs
+ {
+
+33 
+p–še_ã_Ý_š™
+ 
+f_š™
+;
+
+34 
+p–še_ã_Ý_ä“
+ 
+f_ä“
+;
+
+35 
+cmdlše_·r£_ùx_t
+ *
+cmds
+;
+
+42 
+	sp–še_ty³
+ {
+
+43 cÚ¡ *
+Çme
+;
+
+46 
+p–še_be_Ýs
+ *
+be_Ýs
+;
+
+49 
+p–še_ã_Ýs
+ *
+ã_Ýs
+;
+
+52 
+šlše
+ 
+ušt32_t
+
+
+53 
+	$p–še_ty³_cmds_couÁ
+(
+p–še_ty³
+ *
+±y³
+)
+
+55 
+cmdlše_·r£_ùx_t
+ *
+cmds
+;
+
+56 
+ušt32_t
+ 
+n_cmds
+;
+
+58 ià(
+±y³
+->
+ã_Ýs
+ =ð
+NULL
+)
+
+61 
+cmds
+ = 
+±y³
+->
+ã_Ýs
+->cmds;
+
+62 ià(
+cmds
+ =ð
+NULL
+)
+
+65 
+n_cmds
+ = 0; 
+cmds
+[n_cmds];‚_cmds++);
+
+67  
+n_cmds
+;
+
+68 
+	}
+}
+
+71 
+·r£_p–še_cÜe
+(
+ušt32_t
+ *
+sock‘
+,
+
+72 
+ušt32_t
+ *
+cÜe
+,
+
+73 
+ušt32_t
+ *
+ht
+,
+
+74 cÚ¡ *
+’Œy
+);
+
+	@vnf_common/pipeline_actions_common.h
+
+16 #iâdeà
+__INCLUDE_PIPELINE_ACTIONS_COMMON_H__
+
+
+17 
+	#__INCLUDE_PIPELINE_ACTIONS_COMMON_H__
+
+
+	)
+
+19 
+	~<¡dšt.h
+>
+
+21 
+	~<¹e_commÚ.h
+>
+
+22 
+	~<¹e_cyþes.h
+>
+
+23 
+	~<¹e_mbuf.h
+>
+
+24 
+	~<¹e_p–še.h
+>
+
+26 
+	#PIPELINE_PORT_IN_AH
+(
+f_ah
+, 
+f_pkt_wÜk
+, 
+f_pkt4_wÜk
+) \
+
+28 
+	`f_ah
+( \
+
+29 
+__¹e_unu£d
+ 
+¹e_p–še
+ *
+p
+, \
+
+30 
+¹e_mbuf
+ **
+pkts
+, \
+
+31 
+ušt32_t
+ 
+n_pkts
+, \
+
+32 *
+¬g
+) \
+
+34 
+ušt32_t
+ 
+i
+; \
+
+36 
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) \
+
+37 
+	`f_pkt4_wÜk
+(&
+pkts
+[
+i
+], 
+¬g
+); \
+
+39  ; 
+i
+ < 
+n_pkts
+; i++) \
+
+40 
+	`f_pkt_wÜk
+(
+pkts
+[
+i
+], 
+¬g
+); \
+
+43 }
+
+	)
+
+45 
+	#PIPELINE_PORT_IN_AH_HIJACK_ALL
+(
+f_ah
+, 
+f_pkt_wÜk
+, 
+f_pkt4_wÜk
+) \
+
+47 
+	`f_ah
+( \
+
+48 
+¹e_p–še
+ *
+p
+, \
+
+49 
+¹e_mbuf
+ **
+pkts
+, \
+
+50 
+ušt32_t
+ 
+n_pkts
+, \
+
+51 *
+¬g
+) \
+
+53 
+ušt64_t
+ 
+pkt_mask
+ = 
+	`RTE_LEN2MASK
+(
+n_pkts
+, uint64_t); \
+
+54 
+ušt32_t
+ 
+i
+; \
+
+56 
+	`¹e_p–še_ah_·ck‘_hijack
+(
+p
+, 
+pkt_mask
+); \
+
+58 
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) \
+
+59 
+	`f_pkt4_wÜk
+(&
+pkts
+[
+i
+], 
+¬g
+); \
+
+61  ; 
+i
+ < 
+n_pkts
+; i++) \
+
+62 
+	`f_pkt_wÜk
+(
+pkts
+[
+i
+], 
+¬g
+); \
+
+65 }
+
+	)
+
+67 
+	#PIPELINE_TABLE_AH_HIT
+(
+f_ah
+, 
+f_pkt_wÜk
+, 
+f_pkt4_wÜk
+) \
+
+69 
+	`f_ah
+( \
+
+70 
+__¹e_unu£d
+ 
+¹e_p–še
+ *
+p
+, \
+
+71 
+¹e_mbuf
+ **
+pkts
+, \
+
+72 
+ušt64_t
+ 
+pkts_š_mask
+, \
+
+73 
+¹e_p–še_bË_’Œy
+ **
+’Œ›s
+, \
+
+74 *
+¬g
+) \
+
+76 ià((
+pkts_š_mask
+ & (pkts_in_mask + 1)) == 0) { \
+
+77 
+ušt64_t
+ 
+n_pkts
+ = 
+	`__bužtš_pÝcouÁÎ
+(
+pkts_š_mask
+); \
+
+78 
+ušt32_t
+ 
+i
+; \
+
+80 
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) \
+
+81 
+	`f_pkt4_wÜk
+(&
+pkts
+[
+i
+], &
+’Œ›s
+[i], 
+¬g
+); \
+
+83  ; 
+i
+ < 
+n_pkts
+; i++) \
+
+84 
+	`f_pkt_wÜk
+(
+pkts
+[
+i
+], 
+’Œ›s
+[i], 
+¬g
+); \
+
+86  ; 
+pkts_š_mask
+; ) { \
+
+87 
+ušt32_t
+ 
+pos
+ = 
+	`__bužtš_ùzÎ
+(
+pkts_š_mask
+); \
+
+88 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+; \
+
+90 
+pkts_š_mask
+ &ð~
+pkt_mask
+; \
+
+91 
+	`f_pkt_wÜk
+(
+pkts
+[
+pos
+], 
+’Œ›s
+[pos], 
+¬g
+); \
+
+95 }
+
+	)
+
+97 
+	#PIPELINE_TABLE_AH_MISS
+(
+f_ah
+, 
+f_pkt_wÜk
+, 
+f_pkt4_wÜk
+) \
+
+99 
+	`f_ah
+( \
+
+100 
+__¹e_unu£d
+ 
+¹e_p–še
+ *
+p
+, \
+
+101 
+¹e_mbuf
+ **
+pkts
+, \
+
+102 
+ušt64_t
+ 
+pkts_š_mask
+, \
+
+103 
+¹e_p–še_bË_’Œy
+ *
+’Œy
+, \
+
+104 *
+¬g
+) \
+
+106 ià((
+pkts_š_mask
+ & (pkts_in_mask + 1)) == 0) { \
+
+107 
+ušt64_t
+ 
+n_pkts
+ = 
+	`__bužtš_pÝcouÁÎ
+(
+pkts_š_mask
+); \
+
+108 
+ušt32_t
+ 
+i
+; \
+
+110 
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) \
+
+111 
+	`f_pkt4_wÜk
+(&
+pkts
+[
+i
+], 
+’Œy
+, 
+¬g
+); \
+
+113  ; 
+i
+ < 
+n_pkts
+; i++) \
+
+114 
+	`f_pkt_wÜk
+(
+pkts
+[
+i
+], 
+’Œy
+, 
+¬g
+); \
+
+116  ; 
+pkts_š_mask
+; ) { \
+
+117 
+ušt32_t
+ 
+pos
+ = 
+	`__bužtš_ùzÎ
+(
+pkts_š_mask
+); \
+
+118 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+; \
+
+120 
+pkts_š_mask
+ &ð~
+pkt_mask
+; \
+
+121 
+	`f_pkt_wÜk
+(
+pkts
+[
+pos
+], 
+’Œy
+, 
+¬g
+); \
+
+125 }
+
+	)
+
+127 
+	#PIPELINE_TABLE_AH_HIT_DROP_TIME
+(
+f_ah
+, 
+f_pkt_wÜk
+, 
+f_pkt4_wÜk
+) \
+
+129 
+	`f_ah
+( \
+
+130 
+¹e_p–še
+ *
+p
+, \
+
+131 
+¹e_mbuf
+ **
+pkts
+, \
+
+132 
+ušt64_t
+ 
+pkts_mask
+, \
+
+133 
+¹e_p–še_bË_’Œy
+ **
+’Œ›s
+, \
+
+134 *
+¬g
+) \
+
+136 
+ušt64_t
+ 
+pkts_š_mask
+ = 
+pkts_mask
+; \
+
+137 
+ušt64_t
+ 
+pkts_out_mask
+ = 
+pkts_mask
+; \
+
+138 
+ušt64_t
+ 
+time
+ = 
+	`¹e_rdtsc
+(); \
+
+140 ià((
+pkts_š_mask
+ & (pkts_in_mask + 1)) == 0) { \
+
+141 
+ušt64_t
+ 
+n_pkts
+ = 
+	`__bužtš_pÝcouÁÎ
+(
+pkts_š_mask
+); \
+
+142 
+ušt32_t
+ 
+i
+; \
+
+144 
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) { \
+
+145 
+ušt64_t
+ 
+mask
+ = 
+	`f_pkt4_wÜk
+(&
+pkts
+[
+i
+], \
+
+146 &
+’Œ›s
+[
+i
+], 
+¬g
+, 
+time
+); \
+
+147 
+pkts_out_mask
+ ^ð
+mask
+ << 
+i
+; \
+
+150  ; 
+i
+ < 
+n_pkts
+; i++) { \
+
+151 
+ušt64_t
+ 
+mask
+ = 
+	`f_pkt_wÜk
+(
+pkts
+[
+i
+], \
+
+152 
+’Œ›s
+[
+i
+], 
+¬g
+, 
+time
+); \
+
+153 
+pkts_out_mask
+ ^ð
+mask
+ << 
+i
+; \
+
+156  ; 
+pkts_š_mask
+; ) { \
+
+157 
+ušt32_t
+ 
+pos
+ = 
+	`__bužtš_ùzÎ
+(
+pkts_š_mask
+); \
+
+158 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+; \
+
+159 
+ušt64_t
+ 
+mask
+ = 
+	`f_pkt_wÜk
+(
+pkts
+[
+pos
+], \
+
+160 
+’Œ›s
+[
+pos
+], 
+¬g
+, 
+time
+); \
+
+162 
+pkts_š_mask
+ &ð~
+pkt_mask
+; \
+
+163 
+pkts_out_mask
+ ^ð
+mask
+ << 
+pos
+; \
+
+166 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p
+, 
+pkts_out_mask
+ ^ 
+pkts_mask
+); \
+
+169 }
+
+	)
+
+171 
+	#PIPELINE_TABLE_AH_MISS_DROP_TIME
+(
+f_ah
+, 
+f_pkt_wÜk
+, 
+f_pkt4_wÜk
+) \
+
+173 
+	`f_ah
+( \
+
+174 
+¹e_p–še
+ *
+p
+, \
+
+175 
+¹e_mbuf
+ **
+pkts
+, \
+
+176 
+ušt64_t
+ 
+pkts_mask
+, \
+
+177 
+¹e_p–še_bË_’Œy
+ *
+’Œy
+, \
+
+178 *
+¬g
+) \
+
+180 
+ušt64_t
+ 
+pkts_š_mask
+ = 
+pkts_mask
+; \
+
+181 
+ušt64_t
+ 
+pkts_out_mask
+ = 
+pkts_mask
+; \
+
+182 
+ušt64_t
+ 
+time
+ = 
+	`¹e_rdtsc
+(); \
+
+184 ià((
+pkts_š_mask
+ & (pkts_in_mask + 1)) == 0) { \
+
+185 
+ušt64_t
+ 
+n_pkts
+ = 
+	`__bužtš_pÝcouÁÎ
+(
+pkts_š_mask
+); \
+
+186 
+ušt32_t
+ 
+i
+; \
+
+188 
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) { \
+
+189 
+ušt64_t
+ 
+mask
+ = 
+	`f_pkt4_wÜk
+(&
+pkts
+[
+i
+], \
+
+190 
+’Œy
+, 
+¬g
+, 
+time
+); \
+
+191 
+pkts_out_mask
+ ^ð
+mask
+ << 
+i
+; \
+
+194  ; 
+i
+ < 
+n_pkts
+; i++) { \
+
+195 
+ušt64_t
+ 
+mask
+ = 
+	`f_pkt_wÜk
+(
+pkts
+[
+i
+], 
+’Œy
+, 
+¬g
+, 
+time
+);\
+
+196 
+pkts_out_mask
+ ^ð
+mask
+ << 
+i
+; \
+
+199  ; 
+pkts_š_mask
+; ) { \
+
+200 
+ušt32_t
+ 
+pos
+ = 
+	`__bužtš_ùzÎ
+(
+pkts_š_mask
+); \
+
+201 
+ušt64_t
+ 
+pkt_mask
+ = 1LLU << 
+pos
+; \
+
+202 
+ušt64_t
+ 
+mask
+ = 
+	`f_pkt_wÜk
+(
+pkts
+[
+pos
+], \
+
+203 
+’Œy
+, 
+¬g
+, 
+time
+); \
+
+205 
+pkts_š_mask
+ &ð~
+pkt_mask
+; \
+
+206 
+pkts_out_mask
+ ^ð
+mask
+ << 
+pos
+; \
+
+209 
+	`¹e_p–še_ah_·ck‘_drÝ
+(
+p
+, 
+pkts_out_mask
+ ^ 
+pkts_mask
+); \
+
+212 }
+
+	)
+
+	@vnf_common/pipeline_be.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_BE_H__
+
+
+18 
+	#__INCLUDE_PIPELINE_BE_H__
+
+
+	)
+
+20 
+	~<¹e_pÜt_‘hdev.h
+>
+
+21 
+	~<¹e_pÜt_ršg.h
+>
+
+22 
+	~<¹e_pÜt_äag.h
+>
+
+23 
+	~<¹e_pÜt_¿s.h
+>
+
+24 
+	~<¹e_pÜt_sched.h
+>
+
+25 
+	~<¹e_pÜt_sourû_sšk.h
+>
+
+26 
+	~<¹e_p–še.h
+>
+
+28 
+	ep–še_pÜt_š_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 
+	sp–še_pÜt_š_·¿ms
+ {
+
+39 
+p–še_pÜt_š_ty³
+ 
+	mty³
+;
+
+41 
+¹e_pÜt_‘hdev_»ad”_·¿ms
+ 
+	m‘hdev
+;
+
+42 
+¹e_pÜt_ršg_»ad”_·¿ms
+ 
+	mršg
+;
+
+43 
+¹e_pÜt_ršg_muÉi_»ad”_·¿ms
+ 
+	mršg_muÉi
+;
+
+44 
+¹e_pÜt_ršg_»ad”_v4_äag_·¿ms
+ 
+	mršg_v4_äag
+;
+
+45 
+¹e_pÜt_ršg_»ad”_v6_äag_·¿ms
+ 
+	mršg_v6_äag
+;
+
+46 
+¹e_pÜt_sched_»ad”_·¿ms
+ 
+	msched
+;
+
+47 
+¹e_pÜt_sourû_·¿ms
+ 
+	msourû
+;
+
+48 } 
+	m·¿ms
+;
+
+49 
+ušt32_t
+ 
+	mbur¡_size
+;
+
+52 
+šlše
+ *
+
+53 
+	$p–še_pÜt_š_·¿ms_cÚv”t
+(
+p–še_pÜt_š_·¿ms
+ *
+p
+)
+
+55 
+p
+->
+ty³
+) {
+
+56 
+PIPELINE_PORT_IN_ETHDEV_READER
+:
+
+57  (*è&
+p
+->
+·¿ms
+.
+‘hdev
+;
+
+58 
+PIPELINE_PORT_IN_RING_READER
+:
+
+59  (*è&
+p
+->
+·¿ms
+.
+ršg
+;
+
+60 
+PIPELINE_PORT_IN_RING_MULTI_READER
+:
+
+61  (*è&
+p
+->
+·¿ms
+.
+ršg_muÉi
+;
+
+62 
+PIPELINE_PORT_IN_RING_READER_IPV4_FRAG
+:
+
+63  (*è&
+p
+->
+·¿ms
+.
+ršg_v4_äag
+;
+
+64 
+PIPELINE_PORT_IN_RING_READER_IPV6_FRAG
+:
+
+65  (*è&
+p
+->
+·¿ms
+.
+ršg_v6_äag
+;
+
+66 
+PIPELINE_PORT_IN_SCHED_READER
+:
+
+67  (*è&
+p
+->
+·¿ms
+.
+sched
+;
+
+68 
+PIPELINE_PORT_IN_SOURCE
+:
+
+69  (*è&
+p
+->
+·¿ms
+.
+sourû
+;
+
+71  
+NULL
+;
+
+73 
+	}
+}
+
+75 
+šlše
+ 
+¹e_pÜt_š_Ýs
+ *
+
+76 
+	$p–še_pÜt_š_·¿ms_g‘_Ýs
+(
+p–še_pÜt_š_·¿ms
+ *
+p
+)
+
+78 
+p
+->
+ty³
+) {
+
+79 
+PIPELINE_PORT_IN_ETHDEV_READER
+:
+
+80  &
+¹e_pÜt_‘hdev_»ad”_Ýs
+;
+
+81 
+PIPELINE_PORT_IN_RING_READER
+:
+
+82  &
+¹e_pÜt_ršg_»ad”_Ýs
+;
+
+83 
+PIPELINE_PORT_IN_RING_MULTI_READER
+:
+
+84  &
+¹e_pÜt_ršg_muÉi_»ad”_Ýs
+;
+
+85 
+PIPELINE_PORT_IN_RING_READER_IPV4_FRAG
+:
+
+86  &
+¹e_pÜt_ršg_»ad”_v4_äag_Ýs
+;
+
+87 
+PIPELINE_PORT_IN_RING_READER_IPV6_FRAG
+:
+
+88  &
+¹e_pÜt_ršg_»ad”_v6_äag_Ýs
+;
+
+89 
+PIPELINE_PORT_IN_SCHED_READER
+:
+
+90  &
+¹e_pÜt_sched_»ad”_Ýs
+;
+
+91 
+PIPELINE_PORT_IN_SOURCE
+:
+
+92  &
+¹e_pÜt_sourû_Ýs
+;
+
+94  
+NULL
+;
+
+96 
+	}
+}
+
+98 
+	ep–še_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 
+	sp–še_pÜt_out_·¿ms
+ {
+
+112 
+p–še_pÜt_out_ty³
+ 
+	mty³
+;
+
+114 
+¹e_pÜt_‘hdev_wr™”_·¿ms
+ 
+	m‘hdev
+;
+
+115 
+¹e_pÜt_‘hdev_wr™”_nodrÝ_·¿ms
+ 
+	m‘hdev_nodrÝ
+;
+
+116 
+¹e_pÜt_ršg_wr™”_·¿ms
+ 
+	mršg
+;
+
+117 
+¹e_pÜt_ršg_muÉi_wr™”_·¿ms
+ 
+	mršg_muÉi
+;
+
+118 
+¹e_pÜt_ršg_wr™”_nodrÝ_·¿ms
+ 
+	mršg_nodrÝ
+;
+
+119 
+¹e_pÜt_ršg_muÉi_wr™”_nodrÝ_·¿ms
+ 
+	mršg_muÉi_nodrÝ
+;
+
+120 
+¹e_pÜt_ršg_wr™”_v4_¿s_·¿ms
+ 
+	mršg_v4_¿s
+;
+
+121 
+¹e_pÜt_ršg_wr™”_v6_¿s_·¿ms
+ 
+	mršg_v6_¿s
+;
+
+122 
+¹e_pÜt_sched_wr™”_·¿ms
+ 
+	msched
+;
+
+123 
+¹e_pÜt_sšk_·¿ms
+ 
+	msšk
+;
+
+124 } 
+	m·¿ms
+;
+
+127 
+šlše
+ *
+
+128 
+	$p–še_pÜt_out_·¿ms_cÚv”t
+(
+p–še_pÜt_out_·¿ms
+ *
+p
+)
+
+130 
+p
+->
+ty³
+) {
+
+131 
+PIPELINE_PORT_OUT_ETHDEV_WRITER
+:
+
+132  (*è&
+p
+->
+·¿ms
+.
+‘hdev
+;
+
+133 
+PIPELINE_PORT_OUT_ETHDEV_WRITER_NODROP
+:
+
+134  (*è&
+p
+->
+·¿ms
+.
+‘hdev_nodrÝ
+;
+
+135 
+PIPELINE_PORT_OUT_RING_WRITER
+:
+
+136  (*è&
+p
+->
+·¿ms
+.
+ršg
+;
+
+137 
+PIPELINE_PORT_OUT_RING_MULTI_WRITER
+:
+
+138  (*è&
+p
+->
+·¿ms
+.
+ršg_muÉi
+;
+
+139 
+PIPELINE_PORT_OUT_RING_WRITER_NODROP
+:
+
+140  (*è&
+p
+->
+·¿ms
+.
+ršg_nodrÝ
+;
+
+141 
+PIPELINE_PORT_OUT_RING_MULTI_WRITER_NODROP
+:
+
+142  (*è&
+p
+->
+·¿ms
+.
+ršg_muÉi_nodrÝ
+;
+
+143 
+PIPELINE_PORT_OUT_RING_WRITER_IPV4_RAS
+:
+
+144  (*è&
+p
+->
+·¿ms
+.
+ršg_v4_¿s
+;
+
+145 
+PIPELINE_PORT_OUT_RING_WRITER_IPV6_RAS
+:
+
+146  (*è&
+p
+->
+·¿ms
+.
+ršg_v6_¿s
+;
+
+147 
+PIPELINE_PORT_OUT_SCHED_WRITER
+:
+
+148  (*è&
+p
+->
+·¿ms
+.
+sched
+;
+
+149 
+PIPELINE_PORT_OUT_SINK
+:
+
+150  (*è&
+p
+->
+·¿ms
+.
+sšk
+;
+
+152  
+NULL
+;
+
+154 
+	}
+}
+
+156 
+šlše
+ *
+
+157 
+	$p–še_pÜt_out_·¿ms_g‘_Ýs
+(
+p–še_pÜt_out_·¿ms
+ *
+p
+)
+
+159 
+p
+->
+ty³
+) {
+
+160 
+PIPELINE_PORT_OUT_ETHDEV_WRITER
+:
+
+161  &
+¹e_pÜt_‘hdev_wr™”_Ýs
+;
+
+162 
+PIPELINE_PORT_OUT_ETHDEV_WRITER_NODROP
+:
+
+163  &
+¹e_pÜt_‘hdev_wr™”_nodrÝ_Ýs
+;
+
+164 
+PIPELINE_PORT_OUT_RING_WRITER
+:
+
+165  &
+¹e_pÜt_ršg_wr™”_Ýs
+;
+
+166 
+PIPELINE_PORT_OUT_RING_MULTI_WRITER
+:
+
+167  &
+¹e_pÜt_ršg_muÉi_wr™”_Ýs
+;
+
+168 
+PIPELINE_PORT_OUT_RING_WRITER_NODROP
+:
+
+169  &
+¹e_pÜt_ršg_wr™”_nodrÝ_Ýs
+;
+
+170 
+PIPELINE_PORT_OUT_RING_MULTI_WRITER_NODROP
+:
+
+171  &
+¹e_pÜt_ršg_muÉi_wr™”_nodrÝ_Ýs
+;
+
+172 
+PIPELINE_PORT_OUT_RING_WRITER_IPV4_RAS
+:
+
+173  &
+¹e_pÜt_ršg_wr™”_v4_¿s_Ýs
+;
+
+174 
+PIPELINE_PORT_OUT_RING_WRITER_IPV6_RAS
+:
+
+175  &
+¹e_pÜt_ršg_wr™”_v6_¿s_Ýs
+;
+
+176 
+PIPELINE_PORT_OUT_SCHED_WRITER
+:
+
+177  &
+¹e_pÜt_sched_wr™”_Ýs
+;
+
+178 
+PIPELINE_PORT_OUT_SINK
+:
+
+179  &
+¹e_pÜt_sšk_Ýs
+;
+
+181  
+NULL
+;
+
+183 
+	}
+}
+
+185 #iâdeà
+PIPELINE_NAME_SIZE
+
+
+186 
+	#PIPELINE_NAME_SIZE
+ 64
+
+	)
+
+189 #iâdeà
+PIPELINE_MAX_PORT_IN
+
+
+190 
+	#PIPELINE_MAX_PORT_IN
+ 64
+
+	)
+
+193 #iâdeà
+PIPELINE_MAX_PORT_OUT
+
+
+194 
+	#PIPELINE_MAX_PORT_OUT
+ 64
+
+	)
+
+197 #iâdeà
+PIPELINE_MAX_TABLES
+
+
+198 
+	#PIPELINE_MAX_TABLES
+ 64
+
+	)
+
+201 #iâdeà
+PIPELINE_MAX_MSGQ_IN
+
+
+202 
+	#PIPELINE_MAX_MSGQ_IN
+ 64
+
+	)
+
+205 #iâdeà
+PIPELINE_MAX_MSGQ_OUT
+
+
+206 
+	#PIPELINE_MAX_MSGQ_OUT
+ 64
+
+	)
+
+209 #iâdeà
+PIPELINE_MAX_ARGS
+
+
+210 
+	#PIPELINE_MAX_ARGS
+ 64
+
+	)
+
+213 
+	sp–še_·¿ms
+ {
+
+214 
+	mÇme
+[
+PIPELINE_NAME_SIZE
+];
+
+216 
+p–še_pÜt_š_·¿ms
+ 
+	mpÜt_š
+[
+PIPELINE_MAX_PORT_IN
+];
+
+217 
+p–še_pÜt_out_·¿ms
+ 
+	mpÜt_out
+[
+PIPELINE_MAX_PORT_OUT
+];
+
+218 
+¹e_ršg
+ *
+	mmsgq_š
+[
+PIPELINE_MAX_MSGQ_IN
+];
+
+219 
+¹e_ršg
+ *
+	mmsgq_out
+[
+PIPELINE_MAX_MSGQ_OUT
+];
+
+221 
+ušt32_t
+ 
+	mn_pÜts_š
+;
+
+222 
+ušt32_t
+ 
+	mn_pÜts_out
+;
+
+223 
+ušt32_t
+ 
+	mn_msgq
+;
+
+225 
+	msock‘_id
+;
+
+227 *
+	m¬gs_Çme
+[
+PIPELINE_MAX_ARGS
+];
+
+228 *
+	m¬gs_v®ue
+[
+PIPELINE_MAX_ARGS
+];
+
+229 
+ušt32_t
+ 
+	mn_¬gs
+;
+
+231 
+ušt32_t
+ 
+	mlog_Ëv–
+;
+
+238 * (*
+	tp–še_be_Ý_š™
+)(
+	tp–še_·¿ms
+ *
+	t·¿ms
+,
+
+239 *
+	t¬g
+);
+
+241 (*
+	tp–še_be_Ý_ä“
+)(*
+	tp–še
+);
+
+243 (*
+	tp–še_be_Ý_run
+)(*
+	tp–še
+);
+
+245 (*
+	tp–še_be_Ý_tim”
+)(*
+	tp–še
+);
+
+247 (*
+	tp–še_be_Ý_Œack
+)(*
+	tp–še
+,
+
+248 
+	tušt32_t
+ 
+	tpÜt_š
+,
+
+249 
+	tušt32_t
+ *
+	tpÜt_out
+);
+
+251 
+	sp–še_be_Ýs
+ {
+
+252 
+p–še_be_Ý_š™
+ 
+f_š™
+;
+
+253 
+p–še_be_Ý_ä“
+ 
+f_ä“
+;
+
+254 
+p–še_be_Ý_run
+ 
+f_run
+;
+
+255 
+p–še_be_Ý_tim”
+ 
+f_tim”
+;
+
+256 
+p–še_be_Ý_Œack
+ 
+f_Œack
+;
+
+260 
+	#PIPELINE_ARG_CHECK
+(
+exp
+, 
+fmt
+, ...) \
+
+262 ià(!(
+exp
+)) { \
+
+263 
+	`årštf
+(
+¡d”r
+, 
+fmt
+ "\n", ## 
+__VA_ARGS__
+); \
+
+266 
+	}
+} 0)
+
+	)
+
+268 
+	#PIPELINE_PARSE_ERR_INV_VAL
+(
+exp
+, 
+£ùiÚ
+, 
+’Œy
+, 
+v®
+) \
+
+269 
+	`PIPELINE_ARG_CHECK
+(
+exp
+, "Parseƒrror in section \"%s\":ƒntry \"%s\" " \
+
+270 "ha šv®id v®u(\"%s\")", 
+£ùiÚ
+, 
+’Œy
+, 
+v®
+)
+
+	)
+
+272 
+	#PIPELINE_PARSE_ERR_OUT_RNG
+(
+exp
+, 
+£ùiÚ
+, 
+’Œy
+, 
+v®
+) \
+
+273 
+	`PIPELINE_ARG_CHECK
+(
+exp
+, "Parseƒrror in section \"%s\":ƒntry \"%s\" " \
+
+274 "v®ui ouˆoà¿ng(\"%s\")", 
+£ùiÚ
+, 
+’Œy
+, 
+v®
+)
+
+	)
+
+276 
+	#PIPELINE_PARSE_ERR_DUPLICATE
+(
+exp
+, 
+£ùiÚ
+, 
+’Œy
+) \
+
+277 
+	`PIPELINE_ARG_CHECK
+(
+exp
+, "Parseƒrror in section \"%s\": duplicated " \
+
+278 "’Œy \"%s\"", 
+£ùiÚ
+, 
+’Œy
+)
+
+	)
+
+280 
+	#PIPELINE_PARSE_ERR_INV_ENT
+(
+exp
+, 
+£ùiÚ
+, 
+’Œy
+) \
+
+281 
+	`PIPELINE_ARG_CHECK
+(
+exp
+, "Parseƒrror in section \"%s\": invalidƒntry " \
+
+282 "\"%s\"", 
+£ùiÚ
+, 
+’Œy
+)
+
+	)
+
+284 
+	#PIPELINE_PARSE_ERR_MANDATORY
+(
+exp
+, 
+£ùiÚ
+, 
+’Œy
+) \
+
+285 
+	`PIPELINE_ARG_CHECK
+(
+exp
+, "Parseƒrror in section \"%s\": mandatory " \
+
+286 "’Œy \"%s\" i missšg", 
+£ùiÚ
+, 
+’Œy
+)
+
+	)
+
+	@vnf_common/thread.c
+
+17 
+	~<¹e_commÚ.h
+>
+
+18 
+	~<¹e_cyþes.h
+>
+
+19 
+	~<¹e_p–še.h
+>
+
+21 
+	~"p–še_commÚ_be.h
+"
+
+22 
+	~"­p.h
+"
+
+23 
+	~"th»ad.h
+"
+
+25 #ià
+APP_THREAD_HEADROOM_STATS_COLLECT
+
+
+27 
+	#PIPELINE_RUN_REGULAR
+(
+th»ad
+, 
+p–še
+) \
+
+29 
+ušt64_t
+ 
+t0
+ = 
+	`¹e_rdtsc_´eci£
+(); \
+
+30 
+n_pkts
+ = 
+	`¹e_p–še_run
+(
+p–še
+->
+p
+); \
+
+32 ià(
+n_pkts
+ == 0) { \
+
+33 
+ušt64_t
+ 
+t1
+ = 
+	`¹e_rdtsc_´eci£
+(); \
+
+35 
+th»ad
+->
+h—droom_cyþes
+ +ð
+t1
+ - 
+t0
+; \
+
+37 } 0)
+
+	)
+
+40 
+	#PIPELINE_RUN_CUSTOM
+(
+th»ad
+, 
+d©a
+) \
+
+42 
+ušt64_t
+ 
+t0
+ = 
+	`¹e_rdtsc_´eci£
+(); \
+
+43 
+n_pkts
+ = 
+d©a
+->
+	`f_run
+(d©a->
+be
+); \
+
+45 ià(
+n_pkts
+ == 0) { \
+
+46 
+ušt64_t
+ 
+t1
+ = 
+	`¹e_rdtsc_´eci£
+(); \
+
+48 
+th»ad
+->
+h—droom_cyþes
+ +ð
+t1
+ - 
+t0
+; \
+
+50 } 0)
+
+	)
+
+54 
+	#PIPELINE_RUN_REGULAR
+(
+th»ad
+, 
+p–še
+) \
+
+55 
+	`¹e_p–še_run
+(
+p–še
+->
+p
+)
+
+	)
+
+57 
+	#PIPELINE_RUN_CUSTOM
+(
+th»ad
+, 
+d©a
+) \
+
+58 
+d©a
+->
+	`f_run
+(d©a->
+be
+)
+
+	)
+
+62 
+šlše
+ *
+
+63 
+	$th»ad_msg_»cv
+(
+¹e_ršg
+ *
+r
+)
+
+65 *
+msg
+;
+
+66 
+¡©us
+ = 
+	`¹e_ršg_sc_dequeue
+(
+r
+, &
+msg
+);
+
+68 ià(
+¡©us
+ != 0)
+
+69  
+NULL
+;
+
+71  
+msg
+;
+
+72 
+	}
+}
+
+74 
+šlše
+ 
+
+75 
+	$th»ad_msg_£nd
+(
+¹e_ršg
+ *
+r
+,
+
+76 *
+msg
+)
+
+78 
+¡©us
+;
+
+81 
+¡©us
+ = 
+	`¹e_ršg_¥_’queue
+(
+r
+, 
+msg
+);
+
+82 } 
+¡©us
+ =ð-
+ENOBUFS
+);
+
+83 
+	}
+}
+
+86 
+	$th»ad_p–še_’abË
+(
+­p_th»ad_d©a
+ *
+t
+,
+
+87 
+th»ad_p–še_’abË_msg_»q
+ *
+»q
+)
+
+89 
+­p_th»ad_p–še_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–še_id
+ = 
+»q
+->pipeline_id;
+
+104 
+p
+->
+be
+ = 
+»q
+->be;
+
+105 
+p
+->
+f_run
+ = 
+»q
+->f_run;
+
+106 
+p
+->
+f_tim”
+ = 
+»q
+->f_timer;
+
+107 
+p
+->
+tim”_³riod
+ = 
+»q
+->timer_period;
+
+108 
+p
+->
+d—dlše
+ = 0;
+
+110 ià(
+»q
+->
+f_run
+ =ð
+NULL
+)
+
+111 
+t
+->
+n_»guÏr
+++;
+
+113 
+t
+->
+n_cu¡om
+++;
+
+116 
+	}
+}
+
+119 
+	$th»ad_p–še_di§bË
+(
+­p_th»ad_d©a
+ *
+t
+,
+
+120 
+th»ad_p–še_di§bË_msg_»q
+ *
+»q
+)
+
+122 
+ušt32_t
+ 
+n_»guÏr
+ = 
+	`RTE_MIN
+(
+t
+->n_»guÏr, 
+	`RTE_DIM
+Ñ->
+»guÏr
+));
+
+123 
+ušt32_t
+ 
+n_cu¡om
+ = 
+	`RTE_MIN
+(
+t
+->n_cu¡om, 
+	`RTE_DIM
+Ñ->
+cu¡om
+));
+
+124 
+ušt32_t
+ 
+i
+;
+
+127 
+i
+ = 0; i < 
+n_»guÏr
+; i++) {
+
+128 ià(
+t
+->
+»guÏr
+[
+i
+].
+p–še_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
+è* (
+­p_th»ad_p–še_d©a
+));
+
+136 
+n_»guÏr
+--;
+
+137 
+t
+->
+n_»guÏr
+ =‚_regular;
+
+143 
+i
+ = 0; i < 
+n_cu¡om
+; i++) {
+
+144 ià(
+t
+->
+cu¡om
+[
+i
+].
+p–še_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
+è* (
+­p_th»ad_p–še_d©a
+));
+
+152 
+n_cu¡om
+--;
+
+153 
+t
+->
+n_cu¡om
+ =‚_custom;
+
+160 
+	}
+}
+
+163 
+	$th»ad_msg_»q_hªdË
+(
+­p_th»ad_d©a
+ *
+t
+)
+
+165 *
+msg_±r
+;
+
+166 
+th»ad_msg_»q
+ *
+»q
+;
+
+167 
+th»ad_msg_r¥
+ *
+r¥
+;
+
+169 
+msg_±r
+ = 
+	`th»ad_msg_»cv
+(
+t
+->
+msgq_š
+);
+
+170 
+»q
+ = 
+msg_±r
+;
+
+171 
+r¥
+ = 
+msg_±r
+;
+
+173 ià(
+»q
+ !ð
+NULL
+)
+
+174 
+»q
+->
+ty³
+) {
+
+175 
+THREAD_MSG_REQ_PIPELINE_ENABLE
+: {
+
+176 
+r¥
+->
+¡©us
+ = 
+	`th»ad_p–še_’abË
+(
+t
+,
+
+177 (
+th»ad_p–še_’abË_msg_»q
+ *è
+»q
+);
+
+178 
+	`th»ad_msg_£nd
+(
+t
+->
+msgq_out
+, 
+r¥
+);
+
+182 
+THREAD_MSG_REQ_PIPELINE_DISABLE
+: {
+
+183 
+r¥
+->
+¡©us
+ = 
+	`th»ad_p–še_di§bË
+(
+t
+,
+
+184 (
+th»ad_p–še_di§bË_msg_»q
+ *è
+»q
+);
+
+185 
+	`th»ad_msg_£nd
+(
+t
+->
+msgq_out
+, 
+r¥
+);
+
+189 
+THREAD_MSG_REQ_HEADROOM_READ
+: {
+
+190 
+th»ad_h—droom_»ad_msg_r¥
+ *
+r¥
+ =
+
+191 (
+th»ad_h—droom_»ad_msg_r¥
+ *)
+
+192 
+»q
+;
+
+194 
+r¥
+->
+h—droom_¿tio
+ = 
+t
+->headroom_ratio;
+
+195 
+r¥
+->
+¡©us
+ = 0;
+
+196 
+	`th»ad_msg_£nd
+(
+t
+->
+msgq_out
+, 
+r¥
+);
+
+204 
+	}
+}
+
+207 
+	$th»ad_h—droom_upd©e
+(
+­p_th»ad_d©a
+ *
+t
+, 
+ušt64_t
+ 
+time
+)
+
+209 
+ušt64_t
+ 
+time_diff
+ = 
+time
+ - 
+t
+->
+h—droom_time
+;
+
+211 
+t
+->
+h—droom_¿tio
+ =
+
+212 ((è
+t
+->
+h—droom_cyþes
+è/ ((è
+time_diff
+);
+
+214 
+t
+->
+h—droom_cyþes
+ = 0;
+
+215 
+t
+->
+h—droom_time
+ = 
+	`¹e_rdtsc_´eci£
+();
+
+216 
+	}
+}
+
+219 
+	$­p_th»ad
+(*
+¬g
+)
+
+221 
+­p_·¿ms
+ *
+­p
+ = (­p_·¿m *è
+¬g
+;
+
+222 
+ušt32_t
+ 
+cÜe_id
+ = 
+	`¹e_lcÜe_id
+(), 
+i
+, 
+j
+;
+
+223 
+­p_th»ad_d©a
+ *
+t
+ = &
+­p
+->
+th»ad_d©a
+[
+cÜe_id
+];
+
+225 
+i
+ = 0; ; i++) {
+
+226 
+ušt32_t
+ 
+n_»guÏr
+ = 
+	`RTE_MIN
+(
+t
+->n_»guÏr, 
+	`RTE_DIM
+Ñ->
+»guÏr
+));
+
+227 
+ušt32_t
+ 
+n_cu¡om
+ = 
+	`RTE_MIN
+(
+t
+->n_cu¡om, 
+	`RTE_DIM
+Ñ->
+cu¡om
+));
+
+230 
+j
+ = 0; j < 
+n_»guÏr
+; j++) {
+
+231 
+­p_th»ad_p–še_d©a
+ *
+d©a
+ = &
+t
+->
+»guÏr
+[
+j
+];
+
+232 
+p–še
+ *
+p
+ = 
+d©a
+->
+be
+;
+
+234 
+	`PIPELINE_RUN_REGULAR
+(
+t
+, 
+p
+);
+
+238 
+j
+ = 0; j < 
+n_cu¡om
+; j++) {
+
+239 
+­p_th»ad_p–še_d©a
+ *
+d©a
+ = &
+t
+->
+cu¡om
+[
+j
+];
+
+241 
+	`PIPELINE_RUN_CUSTOM
+(
+t
+, 
+d©a
+);
+
+245 ià((
+i
+ & 0xF) == 0) {
+
+246 
+ušt64_t
+ 
+time
+ = 
+	`¹e_g‘_tsc_cyþes
+();
+
+247 
+ušt64_t
+ 
+t_d—dlše
+ = 
+UINT64_MAX
+;
+
+249 ià(
+time
+ < 
+t
+->
+d—dlše
+)
+
+253 
+j
+ = 0; j < 
+n_»guÏr
+; j++) {
+
+254 
+­p_th»ad_p–še_d©a
+ *
+d©a
+ =
+
+255 &
+t
+->
+»guÏr
+[
+j
+];
+
+256 
+ušt64_t
+ 
+p_d—dlše
+ = 
+d©a
+->
+d—dlše
+;
+
+258 ià(
+p_d—dlše
+ <ð
+time
+) {
+
+259 
+d©a
+->
+	`f_tim”
+(d©a->
+be
+);
+
+260 
+p_d—dlše
+ = 
+time
+ + 
+d©a
+->
+tim”_³riod
+;
+
+261 
+d©a
+->
+d—dlše
+ = 
+p_d—dlše
+;
+
+264 ià(
+p_d—dlše
+ < 
+t_d—dlše
+)
+
+265 
+t_d—dlše
+ = 
+p_d—dlše
+;
+
+269 
+j
+ = 0; j < 
+n_cu¡om
+; j++) {
+
+270 
+­p_th»ad_p–še_d©a
+ *
+d©a
+ =
+
+271 &
+t
+->
+cu¡om
+[
+j
+];
+
+272 
+ušt64_t
+ 
+p_d—dlše
+ = 
+d©a
+->
+d—dlše
+;
+
+274 ià(
+p_d—dlše
+ <ð
+time
+) {
+
+275 
+d©a
+->
+	`f_tim”
+(d©a->
+be
+);
+
+276 
+p_d—dlše
+ = 
+time
+ + 
+d©a
+->
+tim”_³riod
+;
+
+277 
+d©a
+->
+d—dlše
+ = 
+p_d—dlše
+;
+
+280 ià(
+p_d—dlše
+ < 
+t_d—dlše
+)
+
+281 
+t_d—dlše
+ = 
+p_d—dlše
+;
+
+286 
+ušt64_t
+ 
+d—dlše
+ = 
+t
+->
+th»ad_»q_d—dlše
+;
+
+288 ià(
+d—dlše
+ <ð
+time
+) {
+
+289 
+	`th»ad_msg_»q_hªdË
+(
+t
+);
+
+290 
+	`th»ad_h—droom_upd©e
+(
+t
+, 
+time
+);
+
+291 
+d—dlše
+ = 
+time
+ + 
+t
+->
+tim”_³riod
+;
+
+292 
+t
+->
+th»ad_»q_d—dlše
+ = 
+d—dlše
+;
+
+295 ià(
+d—dlše
+ < 
+t_d—dlše
+)
+
+296 
+t_d—dlše
+ = 
+d—dlše
+;
+
+300 
+t
+->
+d—dlše
+ = 
+t_d—dlše
+;
+
+305 
+	}
+}
+
+	@vnf_common/thread.h
+
+17 #iâdeà
+THREAD_H_
+
+
+18 
+	#THREAD_H_
+
+
+	)
+
+20 
+	~"­p.h
+"
+
+21 
+	~"p–še_be.h
+"
+
+23 
+	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 
+	sth»ad_msg_»q
+ {
+
+31 
+th»ad_msg_»q_ty³
+ 
+	mty³
+;
+
+34 
+	sth»ad_msg_r¥
+ {
+
+35 
+	m¡©us
+;
+
+41 
+	sth»ad_p–še_’abË_msg_»q
+ {
+
+42 
+th»ad_msg_»q_ty³
+ 
+	mty³
+;
+
+44 
+ušt32_t
+ 
+	mp–še_id
+;
+
+45 *
+	mbe
+;
+
+46 
+p–še_be_Ý_run
+ 
+	mf_run
+;
+
+47 
+p–še_be_Ý_tim”
+ 
+	mf_tim”
+;
+
+48 
+ušt64_t
+ 
+	mtim”_³riod
+;
+
+51 
+	sth»ad_p–še_’abË_msg_r¥
+ {
+
+52 
+	m¡©us
+;
+
+58 
+	sth»ad_p–še_di§bË_msg_»q
+ {
+
+59 
+th»ad_msg_»q_ty³
+ 
+	mty³
+;
+
+61 
+ušt32_t
+ 
+	mp–še_id
+;
+
+64 
+	sth»ad_p–še_di§bË_msg_r¥
+ {
+
+65 
+	m¡©us
+;
+
+71 
+	sth»ad_h—droom_»ad_msg_»q
+ {
+
+72 
+th»ad_msg_»q_ty³
+ 
+	mty³
+;
+
+75 
+	sth»ad_h—droom_»ad_msg_r¥
+ {
+
+76 
+	m¡©us
+;
+
+78 
+	mh—droom_¿tio
+;
+
+	@vnf_common/thread_fe.c
+
+17 
+	~<¹e_commÚ.h
+>
+
+18 
+	~<¹e_ršg.h
+>
+
+19 
+	~<¹e_m®loc.h
+>
+
+20 
+	~<cmdlše_rdlše.h
+>
+
+21 
+	~<cmdlše_·r£.h
+>
+
+22 
+	~<cmdlše_·r£_num.h
+>
+
+23 
+	~<cmdlše_·r£_¡ršg.h
+>
+
+24 
+	~<cmdlše_·r£_addr.h
+>
+
+25 
+	~<cmdlše_·r£_‘h”addr.h
+>
+
+26 
+	~<cmdlše_sock‘.h
+>
+
+27 
+	~<cmdlše.h
+>
+
+29 
+	~"th»ad.h
+"
+
+30 
+	~"th»ad_ã.h
+"
+
+31 
+	~"p–še.h
+"
+
+32 
+	~"p–še_commÚ_ã.h
+"
+
+33 
+	~"­p.h
+"
+
+35 
+šlše
+ *
+
+36 
+	$th»ad_msg_£nd_»cv
+(
+­p_·¿ms
+ *
+­p
+,
+
+37 
+ušt32_t
+ 
+sock‘_id
+, ušt32_ˆ
+cÜe_id
+, ušt32_ˆ
+ht_id
+,
+
+38 *
+msg
+,
+
+39 
+ušt32_t
+ 
+timeout_ms
+)
+
+41 
+¹e_ršg
+ *
+r_»q
+ = 
+	`­p_th»ad_msgq_š_g‘
+(
+­p
+,
+
+42 
+sock‘_id
+, 
+cÜe_id
+, 
+ht_id
+);
+
+43 if(
+r_»q
+ =ð
+NULL
+)
+
+44  
+NULL
+;
+
+45 
+¹e_ršg
+ *
+r_r¥
+ = 
+	`­p_th»ad_msgq_out_g‘
+(
+­p
+,
+
+46 
+sock‘_id
+, 
+cÜe_id
+, 
+ht_id
+);
+
+47 if(
+r_r¥
+ =ð
+NULL
+)
+
+48  
+NULL
+;
+
+49 
+ušt64_t
+ 
+hz
+ = 
+	`¹e_g‘_tsc_hz
+();
+
+50 *
+msg_»cv
+;
+
+51 
+ušt64_t
+ 
+d—dlše
+;
+
+52 
+¡©us
+;
+
+56 
+¡©us
+ = 
+	`¹e_ršg_¥_’queue
+(
+r_»q
+, (*è
+msg
+);
+
+57 } 
+¡©us
+ =ð-
+ENOBUFS
+);
+
+60 
+d—dlše
+ = (
+timeout_ms
+) ?
+
+61 (
+	`¹e_rdtsc
+(è+ ((
+hz
+ * 
+timeout_ms
+) / 1000)) :
+
+62 
+UINT64_MAX
+;
+
+65 ià(
+	`¹e_rdtsc
+(è> 
+d—dlše
+)
+
+66  
+NULL
+;
+
+68 
+¡©us
+ = 
+	`¹e_ršg_sc_dequeue
+(
+r_r¥
+, &
+msg_»cv
+);
+
+69 } 
+¡©us
+ != 0);
+
+71  
+msg_»cv
+;
+
+72 
+	}
+}
+
+75 
+	$­p_p–še_’abË
+(
+­p_·¿ms
+ *
+­p
+,
+
+76 
+ušt32_t
+ 
+sock‘_id
+,
+
+77 
+ušt32_t
+ 
+cÜe_id
+,
+
+78 
+ušt32_t
+ 
+hy³r_th_id
+,
+
+79 
+ušt32_t
+ 
+p–še_id
+)
+
+81 
+th»ad_p–še_’abË_msg_»q
+ *
+»q
+;
+
+82 
+th»ad_p–še_’abË_msg_r¥
+ *
+r¥
+;
+
+83 
+th»ad_id
+;
+
+84 
+­p_p–še_d©a
+ *
+p
+;
+
+85 
+­p_p–še_·¿ms
+ *
+p_·¿ms
+;
+
+86 
+p–še_ty³
+ *
+p_ty³
+;
+
+87 
+¡©us
+;
+
+89 ià(
+­p
+ =ð
+NULL
+)
+
+92 
+th»ad_id
+ = 
+	`ýu_cÜe_m­_g‘_lcÜe_id
+(
+­p
+->
+cÜe_m­
+,
+
+93 
+sock‘_id
+,
+
+94 
+cÜe_id
+,
+
+95 
+hy³r_th_id
+);
+
+97 ià((
+th»ad_id
+ < 0è|| !
+	`­p_cÜe_is_’abËd
+(
+­p
+,hread_id))
+
+100 ià(
+	`­p_p–še_d©a
+(
+­p
+, 
+p–še_id
+è=ð
+NULL
+)
+
+103 
+p
+ = &
+­p
+->
+p–še_d©a
+[
+p–še_id
+];
+
+104 
+p_·¿ms
+ = &
+­p
+->
+p–še_·¿ms
+[
+p–še_id
+];
+
+105 
+p_ty³
+ = 
+	`­p_p–še_ty³_fšd
+(
+­p
+, 
+p_·¿ms
+->
+ty³
+);
+
+106 ià(
+p_ty³
+ =ð
+NULL
+)
+
+109 ià(
+p
+->
+’abËd
+ == 1)
+
+112 
+»q
+ = 
+	`­p_msg_®loc
+(
+­p
+);
+
+113 ià(
+»q
+ =ð
+NULL
+)
+
+116 
+»q
+->
+ty³
+ = 
+THREAD_MSG_REQ_PIPELINE_ENABLE
+;
+
+117 
+»q
+->
+p–še_id
+ =…ipeline_id;
+
+118 
+»q
+->
+be
+ = 
+p
+->be;
+
+119 
+»q
+->
+f_run
+ = 
+p_ty³
+->
+be_Ýs
+->f_run;
+
+120 
+»q
+->
+f_tim”
+ = 
+p_ty³
+->
+be_Ýs
+->f_timer;
+
+121 
+»q
+->
+tim”_³riod
+ = 
+p
+->timer_period;
+
+123 
+r¥
+ = 
+	`th»ad_msg_£nd_»cv
+(
+­p
+,
+
+124 
+sock‘_id
+, 
+cÜe_id
+, 
+hy³r_th_id
+, 
+»q
+, 
+MSG_TIMEOUT_DEFAULT
+);
+
+125 ià(
+r¥
+ =ð
+NULL
+)
+
+128 
+¡©us
+ = 
+r¥
+->status;
+
+129 
+	`­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+131 ià(
+¡©us
+ != 0)
+
+134 
+p
+->
+’abËd
+ = 1;
+
+136 
+	}
+}
+
+139 
+	$­p_p–še_di§bË
+(
+­p_·¿ms
+ *
+­p
+,
+
+140 
+ušt32_t
+ 
+sock‘_id
+,
+
+141 
+ušt32_t
+ 
+cÜe_id
+,
+
+142 
+ušt32_t
+ 
+hy³r_th_id
+,
+
+143 
+ušt32_t
+ 
+p–še_id
+)
+
+145 
+th»ad_p–še_di§bË_msg_»q
+ *
+»q
+;
+
+146 
+th»ad_p–še_di§bË_msg_r¥
+ *
+r¥
+;
+
+147 
+th»ad_id
+;
+
+148 
+­p_p–še_d©a
+ *
+p
+;
+
+149 
+¡©us
+;
+
+151 ià(
+­p
+ =ð
+NULL
+)
+
+154 
+th»ad_id
+ = 
+	`ýu_cÜe_m­_g‘_lcÜe_id
+(
+­p
+->
+cÜe_m­
+,
+
+155 
+sock‘_id
+,
+
+156 
+cÜe_id
+,
+
+157 
+hy³r_th_id
+);
+
+159 ià((
+th»ad_id
+ < 0è|| !
+	`­p_cÜe_is_’abËd
+(
+­p
+,hread_id))
+
+162 ià(
+	`­p_p–še_d©a
+(
+­p
+, 
+p–še_id
+è=ð
+NULL
+)
+
+165 
+p
+ = &
+­p
+->
+p–še_d©a
+[
+p–še_id
+];
+
+167 ià(
+p
+->
+’abËd
+ == 0)
+
+170 
+»q
+ = 
+	`­p_msg_®loc
+(
+­p
+);
+
+171 ià(
+»q
+ =ð
+NULL
+)
+
+174 
+»q
+->
+ty³
+ = 
+THREAD_MSG_REQ_PIPELINE_DISABLE
+;
+
+175 
+»q
+->
+p–še_id
+ =…ipeline_id;
+
+177 
+r¥
+ = 
+	`th»ad_msg_£nd_»cv
+(
+­p
+,
+
+178 
+sock‘_id
+, 
+cÜe_id
+, 
+hy³r_th_id
+, 
+»q
+, 
+MSG_TIMEOUT_DEFAULT
+);
+
+180 ià(
+r¥
+ =ð
+NULL
+)
+
+183 
+¡©us
+ = 
+r¥
+->status;
+
+184 
+	`­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+186 ià(
+¡©us
+ != 0)
+
+189 
+p
+->
+’abËd
+ = 0;
+
+191 
+	}
+}
+
+194 
+	$­p_th»ad_h—droom
+(
+­p_·¿ms
+ *
+­p
+,
+
+195 
+ušt32_t
+ 
+sock‘_id
+,
+
+196 
+ušt32_t
+ 
+cÜe_id
+,
+
+197 
+ušt32_t
+ 
+hy³r_th_id
+)
+
+199 
+th»ad_h—droom_»ad_msg_»q
+ *
+»q
+;
+
+200 
+th»ad_h—droom_»ad_msg_r¥
+ *
+r¥
+;
+
+201 
+th»ad_id
+;
+
+202 
+¡©us
+;
+
+204 ià(
+­p
+ =ð
+NULL
+)
+
+207 
+th»ad_id
+ = 
+	`ýu_cÜe_m­_g‘_lcÜe_id
+(
+­p
+->
+cÜe_m­
+,
+
+208 
+sock‘_id
+,
+
+209 
+cÜe_id
+,
+
+210 
+hy³r_th_id
+);
+
+212 ià((
+th»ad_id
+ < 0è|| !
+	`­p_cÜe_is_’abËd
+(
+­p
+,hread_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‘_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 
+	`´štf
+("%.3f%%\n", 
+r¥
+->
+h—droom_¿tio
+ * 100);
+
+235 
+	`­p_msg_ä“
+(
+­p
+, 
+r¥
+);
+
+238 
+	}
+}
+
+244 
+	scmd_p–še_’abË_»suÉ
+ {
+
+245 
+cmdlše_fixed_¡ršg_t
+ 
+	mt_¡ršg
+;
+
+246 
+cmdlše_fixed_¡ršg_t
+ 
+	mt_id_¡ršg
+;
+
+247 
+cmdlše_fixed_¡ršg_t
+ 
+	mp–še_¡ršg
+;
+
+248 
+ušt32_t
+ 
+	mp–še_id
+;
+
+249 
+cmdlše_fixed_¡ršg_t
+ 
+	m’abË_¡ršg
+;
+
+253 
+	$cmd_p–še_’abË_·r£d
+(
+
+254 *
+·r£d_»suÉ
+,
+
+255 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+256 *
+d©a
+)
+
+258 
+cmd_p–še_’abË_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+259 
+­p_·¿ms
+ *
+­p
+ = 
+d©a
+;
+
+260 
+¡©us
+;
+
+261 
+ušt32_t
+ 
+cÜe_id
+, 
+sock‘_id
+, 
+hy³r_th_id
+;
+
+263 ià(
+	`·r£_p–še_cÜe
+(&
+sock‘_id
+,
+
+264 &
+cÜe_id
+,
+
+265 &
+hy³r_th_id
+,
+
+266 
+·¿ms
+->
+t_id_¡ršg
+) != 0) {
+
+267 
+	`´štf
+("Command failed\n");
+
+271 
+¡©us
+ = 
+	`­p_p–še_’abË
+(
+­p
+,
+
+272 
+sock‘_id
+,
+
+273 
+cÜe_id
+,
+
+274 
+hy³r_th_id
+,
+
+275 
+·¿ms
+->
+p–še_id
+);
+
+277 ià(
+¡©us
+ != 0)
+
+278 
+	`´štf
+("Command failed\n");
+
+279 
+	}
+}
+
+281 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_p–še_’abË_t_¡ršg
+ =
+
+282 
+TOKEN_STRING_INITIALIZER
+(
+cmd_p–še_’abË_»suÉ
+, 
+t_¡ršg
+, "t");
+
+284 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_p–še_’abË_t_id_¡ršg
+ =
+
+285 
+TOKEN_STRING_INITIALIZER
+(
+cmd_p–še_’abË_»suÉ
+, 
+t_id_¡ršg
+,
+
+286 
+NULL
+);
+
+288 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_p–še_’abË_p–še_¡ršg
+ =
+
+289 
+TOKEN_STRING_INITIALIZER
+(
+cmd_p–še_’abË_»suÉ
+, 
+p–še_¡ršg
+,
+
+292 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_p–še_’abË_p–še_id
+ =
+
+293 
+TOKEN_NUM_INITIALIZER
+(
+cmd_p–še_’abË_»suÉ
+, 
+p–še_id
+,
+
+294 
+UINT32
+);
+
+296 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_p–še_’abË_’abË_¡ršg
+ =
+
+297 
+TOKEN_STRING_INITIALIZER
+(
+cmd_p–še_’abË_»suÉ
+, 
+’abË_¡ršg
+,
+
+300 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_p–še_’abË
+ = {
+
+301 .
+f
+ = 
+cmd_p–še_’abË_·r£d
+,
+
+302 .
+	gd©a
+ = 
+NULL
+,
+
+303 .
+	gh–p_¡r
+ = "Enable…ipeline on specified core",
+
+304 .
+	gtok’s
+ = {
+
+305 (*)&
+cmd_p–še_’abË_t_¡ršg
+,
+
+306 (*)&
+cmd_p–še_’abË_t_id_¡ršg
+,
+
+307 (*)&
+cmd_p–še_’abË_p–še_¡ršg
+,
+
+308 (*)&
+cmd_p–še_’abË_p–še_id
+,
+
+309 (*)&
+cmd_p–še_’abË_’abË_¡ršg
+,
+
+310 
+NULL
+,
+
+318 
+	scmd_p–še_di§bË_»suÉ
+ {
+
+319 
+cmdlše_fixed_¡ršg_t
+ 
+	mt_¡ršg
+;
+
+320 
+cmdlše_fixed_¡ršg_t
+ 
+	mt_id_¡ršg
+;
+
+321 
+cmdlše_fixed_¡ršg_t
+ 
+	mp–še_¡ršg
+;
+
+322 
+ušt32_t
+ 
+	mp–še_id
+;
+
+323 
+cmdlše_fixed_¡ršg_t
+ 
+	mdi§bË_¡ršg
+;
+
+327 
+	$cmd_p–še_di§bË_·r£d
+(
+
+328 *
+·r£d_»suÉ
+,
+
+329 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+330 *
+d©a
+)
+
+332 
+cmd_p–še_di§bË_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+333 
+­p_·¿ms
+ *
+­p
+ = 
+d©a
+;
+
+334 
+¡©us
+;
+
+335 
+ušt32_t
+ 
+cÜe_id
+, 
+sock‘_id
+, 
+hy³r_th_id
+;
+
+337 ià(
+	`·r£_p–še_cÜe
+(&
+sock‘_id
+,
+
+338 &
+cÜe_id
+,
+
+339 &
+hy³r_th_id
+,
+
+340 
+·¿ms
+->
+t_id_¡ršg
+) != 0) {
+
+341 
+	`´štf
+("Command failed\n");
+
+345 
+¡©us
+ = 
+	`­p_p–še_di§bË
+(
+­p
+,
+
+346 
+sock‘_id
+,
+
+347 
+cÜe_id
+,
+
+348 
+hy³r_th_id
+,
+
+349 
+·¿ms
+->
+p–še_id
+);
+
+351 ià(
+¡©us
+ != 0)
+
+352 
+	`´štf
+("Command failed\n");
+
+353 
+	}
+}
+
+355 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_p–še_di§bË_t_¡ršg
+ =
+
+356 
+TOKEN_STRING_INITIALIZER
+(
+cmd_p–še_di§bË_»suÉ
+, 
+t_¡ršg
+, "t");
+
+358 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_p–še_di§bË_t_id_¡ršg
+ =
+
+359 
+TOKEN_STRING_INITIALIZER
+(
+cmd_p–še_di§bË_»suÉ
+, 
+t_id_¡ršg
+,
+
+360 
+NULL
+);
+
+362 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_p–še_di§bË_p–še_¡ršg
+ =
+
+363 
+TOKEN_STRING_INITIALIZER
+(
+cmd_p–še_di§bË_»suÉ
+,
+
+364 
+p–še_¡ršg
+, "pipeline");
+
+366 
+cmdlše_·r£_tok’_num_t
+ 
+	gcmd_p–še_di§bË_p–še_id
+ =
+
+367 
+TOKEN_NUM_INITIALIZER
+(
+cmd_p–še_di§bË_»suÉ
+, 
+p–še_id
+,
+
+368 
+UINT32
+);
+
+370 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_p–še_di§bË_di§bË_¡ršg
+ =
+
+371 
+TOKEN_STRING_INITIALIZER
+(
+cmd_p–še_di§bË_»suÉ
+, 
+di§bË_¡ršg
+,
+
+374 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_p–še_di§bË
+ = {
+
+375 .
+f
+ = 
+cmd_p–še_di§bË_·r£d
+,
+
+376 .
+	gd©a
+ = 
+NULL
+,
+
+377 .
+	gh–p_¡r
+ = "Disable…ipeline on specified core",
+
+378 .
+	gtok’s
+ = {
+
+379 (*)&
+cmd_p–še_di§bË_t_¡ršg
+,
+
+380 (*)&
+cmd_p–še_di§bË_t_id_¡ršg
+,
+
+381 (*)&
+cmd_p–še_di§bË_p–še_¡ršg
+,
+
+382 (*)&
+cmd_p–še_di§bË_p–še_id
+,
+
+383 (*)&
+cmd_p–še_di§bË_di§bË_¡ršg
+,
+
+384 
+NULL
+,
+
+393 
+	scmd_th»ad_h—droom_»suÉ
+ {
+
+394 
+cmdlše_fixed_¡ršg_t
+ 
+	mt_¡ršg
+;
+
+395 
+cmdlše_fixed_¡ršg_t
+ 
+	mt_id_¡ršg
+;
+
+396 
+cmdlše_fixed_¡ršg_t
+ 
+	mh—droom_¡ršg
+;
+
+400 
+	$cmd_th»ad_h—droom_·r£d
+(
+
+401 *
+·r£d_»suÉ
+,
+
+402 
+__¹e_unu£d
+ 
+cmdlše
+ *
+þ
+,
+
+403 *
+d©a
+)
+
+405 
+cmd_th»ad_h—droom_»suÉ
+ *
+·¿ms
+ = 
+·r£d_»suÉ
+;
+
+406 
+­p_·¿ms
+ *
+­p
+ = 
+d©a
+;
+
+407 
+¡©us
+;
+
+408 
+ušt32_t
+ 
+cÜe_id
+, 
+sock‘_id
+, 
+hy³r_th_id
+;
+
+410 ià(
+	`·r£_p–še_cÜe
+(&
+sock‘_id
+,
+
+411 &
+cÜe_id
+,
+
+412 &
+hy³r_th_id
+,
+
+413 
+·¿ms
+->
+t_id_¡ršg
+) != 0) {
+
+414 
+	`´štf
+("Command failed\n");
+
+418 
+¡©us
+ = 
+	`­p_th»ad_h—droom
+(
+­p
+,
+
+419 
+sock‘_id
+,
+
+420 
+cÜe_id
+,
+
+421 
+hy³r_th_id
+);
+
+423 ià(
+¡©us
+ != 0)
+
+424 
+	`´štf
+("Command failed\n");
+
+425 
+	}
+}
+
+427 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_th»ad_h—droom_t_¡ršg
+ =
+
+428 
+TOKEN_STRING_INITIALIZER
+(
+cmd_th»ad_h—droom_»suÉ
+,
+
+429 
+t_¡ršg
+, "t");
+
+431 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_th»ad_h—droom_t_id_¡ršg
+ =
+
+432 
+TOKEN_STRING_INITIALIZER
+(
+cmd_th»ad_h—droom_»suÉ
+,
+
+433 
+t_id_¡ršg
+, 
+NULL
+);
+
+435 
+cmdlše_·r£_tok’_¡ršg_t
+ 
+	gcmd_th»ad_h—droom_h—droom_¡ršg
+ =
+
+436 
+TOKEN_STRING_INITIALIZER
+(
+cmd_th»ad_h—droom_»suÉ
+,
+
+437 
+h—droom_¡ršg
+, "headroom");
+
+439 
+cmdlše_·r£_š¡_t
+ 
+	gcmd_th»ad_h—droom
+ = {
+
+440 .
+f
+ = 
+cmd_th»ad_h—droom_·r£d
+,
+
+441 .
+	gd©a
+ = 
+NULL
+,
+
+442 .
+	gh–p_¡r
+ = "Displayhread headroom",
+
+443 .
+	gtok’s
+ = {
+
+444 (*)&
+cmd_th»ad_h—droom_t_¡ršg
+,
+
+445 (*)&
+cmd_th»ad_h—droom_t_id_¡ršg
+,
+
+446 (*)&
+cmd_th»ad_h—droom_h—droom_¡ršg
+,
+
+447 
+NULL
+,
+
+452 
+cmdlše_·r£_ùx_t
+ 
+	gth»ad_cmds
+[] = {
+
+453 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_p–še_’abË
+,
+
+454 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_p–še_di§bË
+,
+
+455 (
+cmdlše_·r£_š¡_t
+ *è&
+cmd_th»ad_h—droom
+,
+
+456 
+NULL
+,
+
+460 
+	$­p_p–še_th»ad_cmd_push
+(
+­p_·¿ms
+ *
+­p
+)
+
+462 
+ušt32_t
+ 
+n_cmds
+, 
+i
+;
+
+465 
+n_cmds
+ = 
+	`RTE_DIM
+(
+th»ad_cmds
+) - 1;
+
+466 ià(
+n_cmds
+ > 
+APP_MAX_CMDS
+ - 
+­p
+->n_cmds)
+
+467  -
+ENOMEM
+;
+
+470 
+	`memýy
+(&
+­p
+->
+cmds
+[­p->
+n_cmds
+], 
+th»ad_cmds
+,
+
+471 
+n_cmds
+ * (
+cmdlše_·r£_ùx_t
+));
+
+473 
+i
+ = 0; i < 
+n_cmds
+; i++)
+
+474 
+­p
+->
+cmds
+[­p->
+n_cmds
+ + 
+i
+]->
+d©a
+ =‡pp;
+
+476 
+­p
+->
+n_cmds
+ +=‚_cmds;
+
+477 
+­p
+->
+cmds
+[­p->
+n_cmds
+] = 
+NULL
+;
+
+480 
+	}
+}
+
+	@vnf_common/thread_fe.h
+
+17 #iâdeà
+THREAD_FE_H_
+
+
+18 
+	#THREAD_FE_H_
+
+
+	)
+
+20 
+šlše
+ 
+¹e_ršg
+ *
+
+21 
+	$­p_th»ad_msgq_š_g‘
+(
+­p_·¿ms
+ *
+­p
+,
+
+22 
+ušt32_t
+ 
+sock‘_id
+, ušt32_ˆ
+cÜe_id
+, ušt32_ˆ
+ht_id
+)
+
+24 
+msgq_Çme
+[32];
+
+25 
+ssize_t
+ 
+·¿m_idx
+;
+
+27 
+	`¢´štf
+(
+msgq_Çme
+, (msgq_name),
+
+28 "MSGQ-REQ-CORE-s%" 
+PRIu32
+ "c%" PRIu32 "%s",
+
+29 
+sock‘_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  
+NULL
+;
+
+37  
+­p
+->
+msgq
+[
+·¿m_idx
+];
+
+38 
+	}
+}
+
+40 
+šlše
+ 
+¹e_ršg
+ *
+
+41 
+	$­p_th»ad_msgq_out_g‘
+(
+­p_·¿ms
+ *
+­p
+,
+
+42 
+ušt32_t
+ 
+sock‘_id
+, ušt32_ˆ
+cÜe_id
+, ušt32_ˆ
+ht_id
+)
+
+44 
+msgq_Çme
+[32];
+
+45 
+ssize_t
+ 
+·¿m_idx
+;
+
+47 
+	`¢´štf
+(
+msgq_Çme
+, (msgq_name),
+
+48 "MSGQ-RSP-CORE-s%" 
+PRIu32
+ "c%" PRIu32 "%s",
+
+49 
+sock‘_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  
+NULL
+;
+
+57  
+­p
+->
+msgq
+[
+·¿m_idx
+];
+
+59 
+	}
+}
+
+62 
+­p_p–še_th»ad_cmd_push
+(
+­p_·¿ms
+ *
+­p
+);
+
+65 
+­p_p–še_’abË
+(
+­p_·¿ms
+ *
+­p
+,
+
+66 
+ušt32_t
+ 
+cÜe_id
+,
+
+67 
+ušt32_t
+ 
+sock‘_id
+,
+
+68 
+ušt32_t
+ 
+hy³r_th_id
+,
+
+69 
+ušt32_t
+ 
+p–še_id
+);
+
+72 
+­p_p–še_di§bË
+(
+­p_·¿ms
+ *
+­p
+,
+
+73 
+ušt32_t
+ 
+cÜe_id
+,
+
+74 
+ušt32_t
+ 
+sock‘_id
+,
+
+75 
+ušt32_t
+ 
+hy³r_th_id
+,
+
+76 
+ušt32_t
+ 
+p–še_id
+);
+
+79 
+­p_th»ad_h—droom
+(
+­p_·¿ms
+ *
+­p
+,
+
+80 
+ušt32_t
+ 
+cÜe_id
+,
+
+81 
+ušt32_t
+ 
+sock‘_id
+,
+
+82 
+ušt32_t
+ 
+hy³r_th_id
+);
+
+	@vnf_common/vnf_common.c
+
+17 
+	~<¡dšt.h
+>
+
+18 
+	~<¡dio.h
+>
+
+19 
+	~"vnf_commÚ.h
+"
+
+20 
+	~"p–še_¬picmp_be.h
+"
+
+21 #iâdeà
+VNF_ACL
+
+
+22 
+	~"lib_¬p.h
+"
+
+25 
+ušt8_t
+ 
+	gš_pÜt_dœ_a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+26 
+ušt8_t
+ 
+	g´v_to_pub_m­
+[
+PIPELINE_MAX_PORT_IN
+];
+
+27 
+ušt8_t
+ 
+	gpub_to_´v_m­
+[
+PIPELINE_MAX_PORT_IN
+];
+
+28 
+ušt8_t
+ 
+	g´v_š_pÜt_a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+29 
+ušt8_t
+ 
+	g´v_que_pÜt_šdex
+[
+PIPELINE_MAX_PORT_IN
+];
+
+30 
+ušt8_t
+ 
+	gš_pÜt_eg»ss_´v
+[
+PIPELINE_MAX_PORT_IN
+];
+
+32 
+ušt8_t
+ 
+	$g‘_š_pÜt_dœ
+(
+ušt8_t
+ 
+š_pÜt_id
+)
+
+34  
+š_pÜt_dœ_a
+[
+š_pÜt_id
+];
+
+35 
+	}
+}
+
+37 
+ušt8_t
+ 
+	$is_phy_pÜt_´iv‹
+(
+ušt16_t
+ 
+phy_pÜt
+)
+
+39  
+š_pÜt_dœ_a
+[
+phy_pÜt
+];
+
+40 
+	}
+}
+
+42 
+ušt8_t
+ 
+	$is_pÜt_šdex_´iv‹
+(
+ušt16_t
+ 
+phy_pÜt
+)
+
+44  
+š_pÜt_eg»ss_´v
+[
+phy_pÜt
+];
+
+45 
+	}
+}
+
+47 
+ušt32_t
+ 
+	$g‘_´v_to_pub_pÜt
+(
+ušt32_t
+ *
+_addr
+, 
+ušt8_t
+ 
+ty³
+)
+
+49 
+ušt32_t
+ 
+de¡_if
+ = 0xff;
+
+51 
+ty³
+) {
+
+54 
+ušt32_t
+ 
+nh
+;
+
+55 
+nh
+ = 
+	`g‘_nh
+(
+_addr
+[0], &
+de¡_if
+);
+
+57 ià(
+nh
+)
+
+58  
+de¡_if
+;
+
+64 
+ušt8_t
+ 
+nhv6
+[16];
+
+65 
+	`g‘_nh_v6
+((
+ušt8_t
+ *)
+_addr
+, &
+de¡_if
+, &
+nhv6
+[0]);
+
+66 ià(
+de¡_if
+ != 0xff)
+
+67  
+de¡_if
+;
+
+73 
+	}
+}
+
+75 
+ušt32_t
+ 
+	$g‘_pub_to_´v_pÜt
+(
+ušt32_t
+ *
+_addr
+, 
+ušt8_t
+ 
+ty³
+)
+
+77 
+ušt32_t
+ 
+de¡_if
+ = 0xff;
+
+79 
+ty³
+) {
+
+82 
+ušt32_t
+ 
+nh
+;
+
+83 
+nh
+ = 
+	`g‘_nh
+(
+_addr
+[0], &
+de¡_if
+);
+
+85 ià(
+nh
+)
+
+86  
+de¡_if
+;
+
+92 
+ušt8_t
+ 
+nhv6
+[16];
+
+93 
+	`g‘_nh_v6
+((
+ušt8_t
+ *)
+_addr
+, &
+de¡_if
+, &
+nhv6
+[0]);
+
+94 ià(
+de¡_if
+ != 0xff)
+
+95  
+de¡_if
+;
+
+101 
+	}
+}
+
+103 
+	$show_pÜts_šfo
+()
+
+105 
+	`´štf
+("\nš_pÜt_dœ_a: %d %d %d %d %d", 
+š_pÜt_dœ_a
+[0],
+
+106 
+š_pÜt_dœ_a
+[1], in_port_dir_a[2], in_port_dir_a[3],
+
+107 
+š_pÜt_dœ_a
+[4]);
+
+109 
+ušt8_t
+ 
+i
+ = 0, 
+j
+ = 0;
+
+111 
+	`´štf
+("\nprv_to_pub_map: ");
+
+112 
+i
+ = 0; i < 
+PIPELINE_MAX_PORT_IN
+; i++) {
+
+113 ià(
+´v_to_pub_m­
+[
+i
+] != 0xff)
+
+114 
+	`´štf
+("(%d,%dè ", 
+i
+, 
+´v_to_pub_m­
+[i]);
+
+117 
+	`´štf
+("\npub_to_prv_map: ");
+
+118 
+i
+ = 0; i < 
+PIPELINE_MAX_PORT_IN
+; i++) {
+
+119 ià(
+pub_to_´v_m­
+[
+i
+] != 0xff)
+
+120 
+	`´štf
+("(%d,%dè ", 
+i
+, 
+pub_to_´v_m­
+[i]);
+
+123 
+	`´štf
+("\n%dƒÁr› š PÜt MAC Li¡\n", 
+lšk_hw_addr_¬¿y_idx
+);
+
+124 
+j
+ = 0; j < 
+lšk_hw_addr_¬¿y_idx
+; j++) {
+
+125 
+‘h”_addr
+ *
+lšk_hw_addr
+ = 
+	`g‘_lšk_hw_addr
+(
+j
+);
+
+127 
+i
+ = 0; i < 6; i++)
+
+128 
+	`´štf
+(" %02x ", ((
+‘h”_addr
+ *)
+lšk_hw_addr
+)->
+addr_by‹s
+[
+i
+]);
+
+129 
+	`´štf
+("\n");
+
+131 
+	}
+}
+
+133 
+	$Œim
+(*
+šput
+)
+
+135 
+i
+, 
+j
+ = 0;
+
+136 
+Ën
+ = 
+	`¡¾’
+(
+šput
+);
+
+137 
+»suÉ
+[
+Ën
+ + 1];
+
+139 
+	`mem£t
+(
+»suÉ
+, 0, (result));
+
+140 
+i
+ = 0; 
+šput
+[i] != '\0'; i++) {
+
+141 ià(!
+	`is¥aû
+(
+šput
+[
+i
+]))
+
+142 
+»suÉ
+[
+j
+++] = 
+šput
+[
+i
+];
+
+145 
+	`¡ºýy
+(
+šput
+, 
+»suÉ
+, 
+Ën
+);
+
+146 
+	}
+}
+
+	@vnf_common/vnf_common.h
+
+17 #iâdeà
+__INCLUDE_VNF_COMMON_H__
+
+
+18 
+	#__INCLUDE_VNF_COMMON_H__
+
+
+	)
+
+20 
+	~<¹e_p–še.h
+>
+
+21 
+	~<¹e_‘h”.h
+>
+
+23 
+	#MBUF_HDR_ROOM
+ 256
+
+	)
+
+24 
+	#ETH_HDR_SIZE
+ 14
+
+	)
+
+25 
+	#IP_HDR_SRC_ADR_OFST
+ 12
+
+	)
+
+26 
+	#IP_HDR_DST_ADR_OFST
+ 16
+
+	)
+
+27 
+	#IP_HDR_PROTOCOL_OFST
+ 9
+
+	)
+
+28 
+	#IP_HDR_SIZE
+ 20
+
+	)
+
+29 
+	#IPV6_HDR_SRC_ADR_OFST
+ 8
+
+	)
+
+30 
+	#IPV6_HDR_DST_ADR_OFST
+ 24
+
+	)
+
+31 
+	#IPV6_HDR_PROTOCOL_OFST
+ 6
+
+	)
+
+32 
+	#IPV6_HDR_SIZE
+ 40
+
+	)
+
+34 
+	#ETH_TYPE_ARP
+ 0x0806
+
+	)
+
+35 
+	#ETH_TYPE_IPV4
+ 0x0800
+
+	)
+
+37 
+	#IP_PROTOCOL_ICMP
+ 1
+
+	)
+
+38 
+	#IP_PROTOCOL_TCP
+ 6
+
+	)
+
+39 
+	#IP_PROTOCOL_UDP
+ 17
+
+	)
+
+41 
+	#ETH_TYPE_IPV6
+ 0x86DD
+
+	)
+
+42 
+	#IP_PROTOCOL_ICMPV6
+ 58
+
+	)
+
+44 
+	#PKT_ING_DIR
+ 0
+
+	)
+
+45 
+	#PKT_EGR_DIR
+ 1
+
+	)
+
+47 #iâdeà
+PIPELINE_MAX_PORT_IN
+
+
+48 
+	#PIPELINE_MAX_PORT_IN
+ 16
+
+	)
+
+51 
+	#RTE_PIPELINE_MAX_NAME_SZ
+ 124
+
+	)
+
+53 
+	#INVALID_DESTIF
+ 255
+
+	)
+
+56 
+	mVNF_PRV_PORT_ID
+,
+
+57 
+	mVNF_PUB_PORT_ID
+,
+
+59 
+show_pÜts_šfo
+();
+
+60 
+Œim
+(*
+šput
+);
+
+61 
+ušt8_t
+ 
+g‘_š_pÜt_dœ
+(ušt8_ˆ
+š_pÜt_id
+);
+
+62 
+ušt8_t
+ 
+is_phy_pÜt_´iv‹
+(
+ušt16_t
+ 
+phy_pÜt
+);
+
+63 
+ušt32_t
+ 
+g‘_´v_to_pub_pÜt
+(ušt32_ˆ*
+_addr
+, 
+ušt8_t
+ 
+ty³
+);
+
+64 
+ušt32_t
+ 
+g‘_pub_to_´v_pÜt
+(ušt32_ˆ*
+_addr
+, 
+ušt8_t
+ 
+ty³
+);
+
+66 
+šlše
+ 
+	$drÝ_pkt
+(
+ušt32_t
+ 
+pkt_num
+, 
+ušt64_t
+ *
+mask
+)
+
+68 *
+mask
+ ^ð1LLU << 
+pkt_num
+;
+
+69 
+	}
+}
+
+71 
+ušt8_t
+ 
+š_pÜt_dœ_a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+72 
+ušt8_t
+ 
+´v_to_pub_m­
+[
+PIPELINE_MAX_PORT_IN
+];
+
+73 
+ušt8_t
+ 
+pub_to_´v_m­
+[
+PIPELINE_MAX_PORT_IN
+];
+
+74 
+ušt8_t
+ 
+´v_š_pÜt_a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+76 
+ušt32_t
+ 
+lšk_hw_addr_¬¿y_idx
+;
+
+78 
+	s¹e_pÜt_š
+ {
+
+80 
+¹e_pÜt_š_Ýs
+ 
+	mÝs
+;
+
+81 
+¹e_p–še_pÜt_š_aùiÚ_hªdËr
+ 
+	mf_aùiÚ
+;
+
+82 *
+	m¬g_ah
+;
+
+83 
+ušt32_t
+ 
+	mbur¡_size
+;
+
+86 
+ušt32_t
+ 
+	mbË_id
+;
+
+89 *
+	mh_pÜt
+;
+
+92 
+¹e_pÜt_š
+ *
+	mÃxt
+;
+
+95 
+ušt64_t
+ 
+	mn_pkts_drݳd_by_ah
+;
+
+98 
+	s¹e_pÜt_out
+ {
+
+100 
+¹e_pÜt_out_Ýs
+ 
+	mÝs
+;
+
+101 
+¹e_p–še_pÜt_out_aùiÚ_hªdËr
+ 
+	mf_aùiÚ
+;
+
+102 *
+	m¬g_ah
+;
+
+105 *
+	mh_pÜt
+;
+
+108 
+ušt64_t
+ 
+	mn_pkts_drݳd_by_ah
+;
+
+111 
+	s¹e_bË
+ {
+
+113 
+¹e_bË_Ýs
+ 
+	mÝs
+;
+
+114 
+¹e_p–še_bË_aùiÚ_hªdËr_h™
+ 
+	mf_aùiÚ_h™
+;
+
+115 
+¹e_p–še_bË_aùiÚ_hªdËr_miss
+ 
+	mf_aùiÚ_miss
+;
+
+116 *
+	m¬g_ah
+;
+
+117 
+¹e_p–še_bË_’Œy
+ *
+	mdeçuÉ_’Œy
+;
+
+118 
+ušt32_t
+ 
+	m’Œy_size
+;
+
+120 
+ušt32_t
+ 
+	mbË_Ãxt_id
+;
+
+121 
+ušt32_t
+ 
+	mbË_Ãxt_id_v®id
+;
+
+124 *
+	mh_bË
+;
+
+127 
+ušt64_t
+ 
+	mn_pkts_drݳd_by_lkp_h™_ah
+;
+
+128 
+ušt64_t
+ 
+	mn_pkts_drݳd_by_lkp_miss_ah
+;
+
+129 
+ušt64_t
+ 
+	mn_pkts_drݳd_lkp_h™
+;
+
+130 
+ušt64_t
+ 
+	mn_pkts_drݳd_lkp_miss
+;
+
+134 
+	s¹e_p–še
+ {
+
+136 
+	mÇme
+[
+RTE_PIPELINE_MAX_NAME_SZ
+];
+
+137 
+	msock‘_id
+;
+
+138 
+ušt32_t
+ 
+	moff£t_pÜt_id
+;
+
+141 
+¹e_pÜt_š
+ 
+	mpÜts_š
+[
+RTE_PIPELINE_PORT_IN_MAX
+];
+
+142 
+¹e_pÜt_out
+ 
+	mpÜts_out
+[
+RTE_PIPELINE_PORT_OUT_MAX
+];
+
+143 
+¹e_bË
+ 
+	mbËs
+[
+RTE_PIPELINE_TABLE_MAX
+];
+
+146 
+ušt32_t
+ 
+	mnum_pÜts_š
+;
+
+147 
+ušt32_t
+ 
+	mnum_pÜts_out
+;
+
+148 
+ušt32_t
+ 
+	mnum_bËs
+;
+
+151 
+ušt64_t
+ 
+	m’abËd_pÜt_š_mask
+;
+
+152 
+¹e_pÜt_š
+ *
+	mpÜt_š_Ãxt
+;
+
+155 
+¹e_mbuf
+ *
+	mpkts
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+156 
+¹e_p–še_bË_’Œy
+ *
+	m’Œ›s
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+157 
+ušt64_t
+ 
+	maùiÚ_mask0
+[
+RTE_PIPELINE_ACTIONS
+];
+
+158 
+ušt64_t
+ 
+	maùiÚ_mask1
+[
+RTE_PIPELINE_ACTIONS
+];
+
+159 
+ušt64_t
+ 
+	mpkts_mask
+;
+
+160 
+ušt64_t
+ 
+	mn_pkts_ah_drÝ
+;
+
+161 
+ušt64_t
+ 
+	mpkts_drÝ_mask
+;
+
+162 } 
+	g__¹e_ÿche_®igÃd
+;
+
+165 
+	s¹e_pÜt_‘hdev_wr™”
+ {
+
+166 
+¹e_pÜt_out_¡©s
+ 
+	m¡©s
+;
+
+168 
+¹e_mbuf
+ *
+	mtx_buf
+[2 * 
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+169 
+ušt32_t
+ 
+	mtx_bur¡_sz
+;
+
+170 
+ušt16_t
+ 
+	mtx_buf_couÁ
+;
+
+171 
+ušt64_t
+ 
+	mbsz_mask
+;
+
+172 
+ušt16_t
+ 
+	mqueue_id
+;
+
+173 
+ušt8_t
+ 
+	mpÜt_id
+;
+
+175 
+	s¹e_pÜt_‘hdev_»ad”
+ {
+
+176 
+¹e_pÜt_š_¡©s
+ 
+	m¡©s
+;
+
+178 
+ušt16_t
+ 
+	mqueue_id
+;
+
+179 
+ušt8_t
+ 
+	mpÜt_id
+;
+
+181 
+	s¹e_pÜt_ršg_wr™”
+ {
+
+182 
+¹e_pÜt_out_¡©s
+ 
+	m¡©s
+;
+
+184 
+¹e_mbuf
+ *
+	mtx_buf
+[2 * 
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+185 
+¹e_ršg
+ *
+	mršg
+;
+
+186 
+ušt32_t
+ 
+	mtx_bur¡_sz
+;
+
+187 
+ušt32_t
+ 
+	mtx_buf_couÁ
+;
+
+188 
+ušt64_t
+ 
+	mbsz_mask
+;
+
+189 
+ušt32_t
+ 
+	mis_muÉi
+;
+
+191 
+	s¹e_pÜt_ršg_»ad”
+ {
+
+192 
+¹e_pÜt_š_¡©s
+ 
+	m¡©s
+;
+
+194 
+¹e_ršg
+ *
+	mršg
+;
+
+197 
+ušt8_t
+ 
+g‘_š_pÜt_dœ
+(ušt8_ˆ
+š_pÜt_id
+);
+
+198 
+ušt8_t
+ 
+is_phy_pÜt_´iv‹
+(
+ušt16_t
+ 
+phy_pÜt
+);
+
+199 
+ušt8_t
+ 
+is_pÜt_šdex_´iv‹
+(
+ušt16_t
+ 
+phy_pÜt
+);
+
+	@vnf_common/vnf_define.h
+
+17 #iâdeà
+__INCLUDE_VNF_DEFINE_H__
+
+
+18 
+	#__INCLUDE_VNF_DEFINE_H__
+
+
+	)
+
+19 
+	#DEBUG_LEVEL_4
+ 4
+
+	)
+
+20 
+	#PKT_BUFFER_SIZE
+ 64
+
+	)
+
+21 
+	#PVT_PUB_MAP
+ 2
+
+	)
+
+22 
+	#IPV6_ADD_SIZE
+ 16
+
+	)
+
+23 
+	#TWO_BYTE_PRINT
+ 3
+
+	)
+
+24 
+	#VERSION_NO_BYTE
+ 4
+
+	)
+
+25 
+	#BIT_CARRY
+ 16
+
+	)
+
+26 
+	#HW_ADDR_SIZE
+ 20
+
+	)
+
+27 
+	#IPV6_ADD_CMP_MULTI
+ 13
+
+	)
+
+28 
+	#DIV_CONV_HZ_SEC
+ 1000
+
+	)
+
+	@/usr/include/arpa/inet.h
+
+18 #iâdeà
+_ARPA_INET_H
+
+
+19 
+	#_ARPA_INET_H
+ 1
+
+	)
+
+21 
+	~<ã©u»s.h
+>
+
+22 
+	~<Ãtš‘/š.h
+>
+
+25 #iâdeà
+__sockËn_t_defšed
+
+
+26 
+__sockËn_t
+ 
+	tsockËn_t
+;
+
+27 
+	#__sockËn_t_defšed
+
+
+	)
+
+30 
+__BEGIN_DECLS
+
+
+34 
+š_addr_t
+ 
+	$š‘_addr
+ (cÚ¡ *
+__ý
+è
+__THROW
+;
+
+37 
+š_addr_t
+ 
+	$š‘_Êaof
+ (
+š_addr
+ 
+__š
+è
+__THROW
+;
+
+41 

+š_addr
+ 
+	$š‘_mak—ddr
+ (
+š_addr_t
+ 
+__Ãt
+, in_addr_ˆ
+__ho¡
+)
+
+42 
+__THROW
+;
+
+45 
+š_addr_t
+ 
+	$š‘_Ãtof
+ (
+š_addr
+ 
+__š
+è
+__THROW
+;
+
+49 
+š_addr_t
+ 
+	$š‘_ÃtwÜk
+ (cÚ¡ *
+__ý
+è
+__THROW
+;
+
+53 
*
+	$š‘_Áß
+ (
+š_addr
+ 
+__š
+è
+__THROW
+;
+
+58 

+	$š‘_±Ú
+ (
+__af
+, cÚ¡ *
+__»¡riù
+ 
+__ý
+,
+
+59 *
+__»¡riù
+ 
+__buf
+è
+__THROW
+;
+
+64 
cÚ¡ *
+	$š‘_ÁÝ
+ (
+__af
+, cÚ¡ *
+__»¡riù
+ 
+__ý
+,
+
+65 *
+__»¡riù
+ 
+__buf
+, 
+sockËn_t
+ 
+__Ën
+)
+
+66 
+__THROW
+;
+
+70 #ifdeà
+__USE_MISC
+
+
+73 

+	$š‘_©Ú
+ (cÚ¡ *
+__ý
+, 
+š_addr
+ *
+__šp
+è
+__THROW
+;
+
+77 
*
+	$š‘_Ï
+ (
+š_addr_t
+ 
+__Ãt
+, *
+__buf
+, 
+size_t
+ 
+__Ën
+è
+__THROW
+;
+
+82 
*
+	$š‘_Ãt_ÁÝ
+ (
+__af
+, cÚ¡ *
+__ý
+, 
+__b™s
+,
+
+83 *
+__buf
+, 
+size_t
+ 
+__Ën
+è
+__THROW
+;
+
+88 

+	$š‘_Ãt_±Ú
+ (
+__af
+, cÚ¡ *
+__ý
+,
+
+89 *
+__buf
+, 
+size_t
+ 
+__Ën
+è
+__THROW
+;
+
+94 

+	$š‘_n§p_addr
+ (cÚ¡ *
+__ý
+,
+
+95 *
+__buf
+, 
+__Ën
+è
+__THROW
+;
+
+99 
*
+	$š‘_n§p_Áß
+ (
+__Ën
+, cÚ¡ *
+__ý
+,
+
+100 *
+__buf
+è
+__THROW
+;
+
+103 
+__END_DECLS
+
+
+	@/usr/include/ctype.h
+
+22 #iâdef 
+_CTYPE_H
+
+
+23 
+	#_CTYPE_H
+ 1
+
+	)
+
+25 
+	~<ã©u»s.h
+>
+
+26 
+	~<b™s/ty³s.h
+>
+
+28 
+	g__BEGIN_DECLS
+
+
+30 #iâdeà
+_ISb™
+
+
+39 
+	~<’dŸn.h
+>
+
+40 #ià
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+41 
+	#_ISb™
+(
+b™
+è(1 << (b™))
+
+	)
+
+43 
+	#_ISb™
+(
+b™
+è((b™è< 8 ? ((1 << (b™)è<< 8è: ((1 << (b™)è>> 8))
+
+	)
+
+48 
+	m_ISuµ”
+ = 
+_ISb™
+ (0),
+
+49 
+	m_ISlow”
+ = 
+_ISb™
+ (1),
+
+50 
+	m_IS®pha
+ = 
+_ISb™
+ (2),
+
+51 
+	m_ISdig™
+ = 
+_ISb™
+ (3),
+
+52 
+	m_ISxdig™
+ = 
+_ISb™
+ (4),
+
+53 
+	m_IS¥aû
+ = 
+_ISb™
+ (5),
+
+54 
+	m_IS´št
+ = 
+_ISb™
+ (6),
+
+55 
+	m_ISg¿ph
+ = 
+_ISb™
+ (7),
+
+56 
+	m_ISbÏnk
+ = 
+_ISb™
+ (8),
+
+57 
+	m_ISúŒl
+ = 
+_ISb™
+ (9),
+
+58 
+	m_ISpunù
+ = 
+_ISb™
+ (10),
+
+59 
+	m_IS®num
+ = 
+_ISb™
+ (11)
+
+79 
cÚ¡ **
+	$__ùy³_b_loc
+ ()
+
+80 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+81 
cÚ¡ 
+__št32_t
+ **
+	$__ùy³_tÞow”_loc
+ ()
+
+82 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+83 
cÚ¡ 
+__št32_t
+ **
+	$__ùy³_touµ”_loc
+ ()
+
+84 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+87 #iâdeà
+__ýlu¥lus
+
+
+88 
+	#__isùy³
+(
+c
+, 
+ty³
+) \
+
+89 ((*
+	`__ùy³_b_loc
+ ())[(è(
+c
+)] & (è
+ty³
+)
+
+	)
+
+90 #–ià
+defšed
+ 
+__USE_EXTERN_INLINES
+
+
+91 
+	#__isùy³_f
+(
+ty³
+) \
+
+92 
+__ex‹º_šlše
+ \
+
+93 
+is
+##
+	`ty³
+ (
+__c
+è
+__THROW
+ \
+
+95  (*
+	`__ùy³_b_loc
+ ())[(è(
+__c
+)] & (è
+_IS
+##
+ty³
+; \
+
+96 
+	}
+
+	)
+}
+
+99 
+	#__i§scii
+(
+c
+è(((cè& ~0x7fè=ð0è
+
+	)
+
+100 
+	#__tßscii
+(
+c
+è((cè& 0x7fè
+
+	)
+
+102 
+	#__exùy³
+(
+Çme
+è

+	`Çme
+ (è
+__THROW
+
+
+	)
+
+104 
+__BEGIN_NAMESPACE_STD
+
+
+110 
+__exùy³
+ (
+i§Êum
+);
+
+111 
+__exùy³
+ (
+i§Íha
+);
+
+112 
+__exùy³
+ (
+isúŒl
+);
+
+113 
+__exùy³
+ (
+isdig™
+);
+
+114 
+__exùy³
+ (
+i¦ow”
+);
+
+115 
+__exùy³
+ (
+isg¿ph
+);
+
+116 
+__exùy³
+ (
+i¥ršt
+);
+
+117 
+__exùy³
+ (
+i¥unù
+);
+
+118 
+__exùy³
+ (
+is¥aû
+);
+
+119 
+__exùy³
+ (
+isuµ”
+);
+
+120 
+__exùy³
+ (
+isxdig™
+);
+
+124 

+	$tÞow”
+ (
+__c
+è
+__THROW
+;
+
+127 

+	$touµ”
+ (
+__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 

+	$isùy³
+ (
+__c
+, 
+__mask
+è
+__THROW
+;
+
+146 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+150 

+	$i§scii
+ (
+__c
+è
+__THROW
+;
+
+154 

+	$tßscii
+ (
+__c
+è
+__THROW
+;
+
+158 
+	`__exùy³
+ (
+_touµ”
+);
+
+159 
+	`__exùy³
+ (
+_tÞow”
+);
+
+163 
+	#__tobody
+(
+c
+, 
+f
+, 
+a
+, 
+¬gs
+) \
+
+164 (
+__ex‹nsiÚ__
+ \
+
+165 ({ 
+__»s
+; \
+
+166 ià( (
+c
+) > 1) \
+
+168 ià(
+	`__bužtš_cÚ¡ªt_p
+ (
+c
+)) \
+
+170 
+__c
+ = (
+c
+); \
+
+171 
+__»s
+ = 
+__c
+ < -128 || __ø> 255 ? __ø: (
+a
+)[__c]; \
+
+174 
+__»s
+ = 
+f
+ 
+¬gs
+; \
+
+177 
+__»s
+ = (
+a
+)[(è(
+c
+)]; \
+
+178 
+__»s
+; 
+	}
+}))
+
+	)
+
+180 #ià!
+defšed
+ 
+__NO_CTYPE
+
+
+181 #ifdeà
+__isùy³_f
+
+
+182 
+	$__isùy³_f
+ (
+®num
+)
+
+183 
+	$__isùy³_f
+ (
+®pha
+)
+
+184 
+	$__isùy³_f
+ (
+úŒl
+)
+
+185 
+	$__isùy³_f
+ (
+dig™
+)
+
+186 
+	$__isùy³_f
+ (
+low”
+)
+
+187 
+	$__isùy³_f
+ (
+g¿ph
+)
+
+188 
+	$__isùy³_f
+ (
+´št
+)
+
+189 
+	$__isùy³_f
+ (
+punù
+)
+
+190 
+	$__isùy³_f
+ (
+¥aû
+)
+
+191 
+	$__isùy³_f
+ (
+uµ”
+)
+
+192 
+	$__isùy³_f
+ (
+xdig™
+)
+
+193 #ifdeà
+__USE_ISOC99
+
+
+194 
+	$__isùy³_f
+ (
+bÏnk
+)
+
+196 #–ià
+defšed
+ 
+__isùy³
+
+
+197 
+	#i§Êum
+(
+c
+è
+	`__isùy³
+((c), 
+_IS®num
+)
+
+	)
+
+198 
+	#i§Íha
+(
+c
+è
+	`__isùy³
+((c), 
+_IS®pha
+)
+
+	)
+
+199 
+	#isúŒl
+(
+c
+è
+	`__isùy³
+((c), 
+_ISúŒl
+)
+
+	)
+
+200 
+	#isdig™
+(
+c
+è
+	`__isùy³
+((c), 
+_ISdig™
+)
+
+	)
+
+201 
+	#i¦ow”
+(
+c
+è
+	`__isùy³
+((c), 
+_ISlow”
+)
+
+	)
+
+202 
+	#isg¿ph
+(
+c
+è
+	`__isùy³
+((c), 
+_ISg¿ph
+)
+
+	)
+
+203 
+	#i¥ršt
+(
+c
+è
+	`__isùy³
+((c), 
+_IS´št
+)
+
+	)
+
+204 
+	#i¥unù
+(
+c
+è
+	`__isùy³
+((c), 
+_ISpunù
+)
+
+	)
+
+205 
+	#is¥aû
+(
+c
+è
+	`__isùy³
+((c), 
+_IS¥aû
+)
+
+	)
+
+206 
+	#isuµ”
+(
+c
+è
+	`__isùy³
+((c), 
+_ISuµ”
+)
+
+	)
+
+207 
+	#isxdig™
+(
+c
+è
+	`__isùy³
+((c), 
+_ISxdig™
+)
+
+	)
+
+208 #ifdeà
+__USE_ISOC99
+
+
+209 
+	#isbÏnk
+(
+c
+è
+	`__isùy³
+((c), 
+_ISbÏnk
+)
+
+	)
+
+213 #ifdeà
+__USE_EXTERN_INLINES
+
+
+214 
+__ex‹º_šlše
+ 
+
+215 
+	`__NTH
+ (
+	$tÞow”
+ (
+__c
+))
+
+217  
+__c
+ >ð-128 && __ø< 256 ? (*
+	`__ùy³_tÞow”_loc
+ ())[__c] : __c;
+
+218 
+	}
+}
+
+220 
+__ex‹º_šlše
+ 
+
+221 
+__NTH
+ (
+	$touµ”
+ (
+__c
+))
+
+223  
+__c
+ >ð-128 && __ø< 256 ? (*
+	`__ùy³_touµ”_loc
+ ())[__c] : __c;
+
+224 
+	}
+}
+
+227 #ià
+__GNUC__
+ >ð2 && 
+defšed
+ 
+__OPTIMIZE__
+ && !defšed 
+__ýlu¥lus
+
+
+228 
+	#tÞow”
+(
+c
+è
+	`__tobody
+ (c, 
+tÞow”
+, *
+	`__ùy³_tÞow”_loc
+ (), (c))
+
+	)
+
+229 
+	#touµ”
+(
+c
+è
+	`__tobody
+ (c, 
+touµ”
+, *
+	`__ùy³_touµ”_loc
+ (), (c))
+
+	)
+
+232 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+233 
+	#i§scii
+(
+c
+è
+	`__i§scii
+ (c)
+
+	)
+
+234 
+	#tßscii
+(
+c
+è
+	`__tßscii
+ (c)
+
+	)
+
+236 
+	#_tÞow”
+(
+c
+è((è(*
+	`__ùy³_tÞow”_loc
+ ())[(è(c)])
+
+	)
+
+237 
+	#_touµ”
+(
+c
+è((è(*
+	`__ùy³_touµ”_loc
+ ())[(è(c)])
+
+	)
+
+243 #ifdeà
+__USE_XOPEN2K8
+
+
+257 
+	~<xloÿË.h
+>
+
+261 
+	#__isùy³_l
+(
+c
+, 
+ty³
+, 
+loÿË
+) \
+
+262 ((
+loÿË
+)->
+__ùy³_b
+[(è(
+c
+)] & (è
+ty³
+)
+
+	)
+
+264 
+	#__exùy³_l
+(
+Çme
+) \
+
+265 

+	`Çme
+ (, 
+__loÿË_t
+è
+__THROW
+
+
+	)
+
+271 
+__exùy³_l
+ (
+i§Êum_l
+);
+
+272 
+__exùy³_l
+ (
+i§Íha_l
+);
+
+273 
+__exùy³_l
+ (
+isúŒl_l
+);
+
+274 
+__exùy³_l
+ (
+isdig™_l
+);
+
+275 
+__exùy³_l
+ (
+i¦ow”_l
+);
+
+276 
+__exùy³_l
+ (
+isg¿ph_l
+);
+
+277 
+__exùy³_l
+ (
+i¥ršt_l
+);
+
+278 
+__exùy³_l
+ (
+i¥unù_l
+);
+
+279 
+__exùy³_l
+ (
+is¥aû_l
+);
+
+280 
+__exùy³_l
+ (
+isuµ”_l
+);
+
+281 
+__exùy³_l
+ (
+isxdig™_l
+);
+
+283 
+__exùy³_l
+ (
+isbÏnk_l
+);
+
+287 

+	$__tÞow”_l
+ (
+__c
+, 
+__loÿË_t
+ 
+__l
+è
+__THROW
+;
+
+288 

+	$tÞow”_l
+ (
+__c
+, 
+__loÿË_t
+ 
+__l
+è
+__THROW
+;
+
+291 

+	$__touµ”_l
+ (
+__c
+, 
+__loÿË_t
+ 
+__l
+è
+__THROW
+;
+
+292 

+	$touµ”_l
+ (
+__c
+, 
+__loÿË_t
+ 
+__l
+è
+__THROW
+;
+
+294 #ià
+__GNUC__
+ >ð2 && 
+defšed
+ 
+__OPTIMIZE__
+ && !defšed 
+__ýlu¥lus
+
+
+295 
+	#__tÞow”_l
+(
+c
+, 
+loÿË
+) \
+
+296 
+	`__tobody
+ (
+c
+, 
+__tÞow”_l
+, (
+loÿË
+)->
+__ùy³_tÞow”
+, (c,†oÿË))
+
+	)
+
+297 
+	#__touµ”_l
+(
+c
+, 
+loÿË
+) \
+
+298 
+	`__tobody
+ (
+c
+, 
+__touµ”_l
+, (
+loÿË
+)->
+__ùy³_touµ”
+, (c,†oÿË))
+
+	)
+
+299 
+	#tÞow”_l
+(
+c
+, 
+loÿË
+è
+	`__tÞow”_l
+ ((c), (loÿË))
+
+	)
+
+300 
+	#touµ”_l
+(
+c
+, 
+loÿË
+è
+	`__touµ”_l
+ ((c), (loÿË))
+
+	)
+
+304 #iâdeà
+__NO_CTYPE
+
+
+305 
+	#__i§Êum_l
+(
+c
+,
+l
+è
+	`__isùy³_l
+((c), 
+_IS®num
+, (l))
+
+	)
+
+306 
+	#__i§Íha_l
+(
+c
+,
+l
+è
+	`__isùy³_l
+((c), 
+_IS®pha
+, (l))
+
+	)
+
+307 
+	#__isúŒl_l
+(
+c
+,
+l
+è
+	`__isùy³_l
+((c), 
+_ISúŒl
+, (l))
+
+	)
+
+308 
+	#__isdig™_l
+(
+c
+,
+l
+è
+	`__isùy³_l
+((c), 
+_ISdig™
+, (l))
+
+	)
+
+309 
+	#__i¦ow”_l
+(
+c
+,
+l
+è
+	`__isùy³_l
+((c), 
+_ISlow”
+, (l))
+
+	)
+
+310 
+	#__isg¿ph_l
+(
+c
+,
+l
+è
+	`__isùy³_l
+((c), 
+_ISg¿ph
+, (l))
+
+	)
+
+311 
+	#__i¥ršt_l
+(
+c
+,
+l
+è
+	`__isùy³_l
+((c), 
+_IS´št
+, (l))
+
+	)
+
+312 
+	#__i¥unù_l
+(
+c
+,
+l
+è
+	`__isùy³_l
+((c), 
+_ISpunù
+, (l))
+
+	)
+
+313 
+	#__is¥aû_l
+(
+c
+,
+l
+è
+	`__isùy³_l
+((c), 
+_IS¥aû
+, (l))
+
+	)
+
+314 
+	#__isuµ”_l
+(
+c
+,
+l
+è
+	`__isùy³_l
+((c), 
+_ISuµ”
+, (l))
+
+	)
+
+315 
+	#__isxdig™_l
+(
+c
+,
+l
+è
+	`__isùy³_l
+((c), 
+_ISxdig™
+, (l))
+
+	)
+
+317 
+	#__isbÏnk_l
+(
+c
+,
+l
+è
+	`__isùy³_l
+((c), 
+_ISbÏnk
+, (l))
+
+	)
+
+319 #ifdeà
+__USE_MISC
+
+
+320 
+	#__i§scii_l
+(
+c
+,
+l
+è(Ö), 
+	`__i§scii
+ (c))
+
+	)
+
+321 
+	#__tßscii_l
+(
+c
+,
+l
+è(Ö), 
+	`__tßscii
+ (c))
+
+	)
+
+324 
+	#i§Êum_l
+(
+c
+,
+l
+è
+	`__i§Êum_l
+ ((c), (l))
+
+	)
+
+325 
+	#i§Íha_l
+(
+c
+,
+l
+è
+	`__i§Íha_l
+ ((c), (l))
+
+	)
+
+326 
+	#isúŒl_l
+(
+c
+,
+l
+è
+	`__isúŒl_l
+ ((c), (l))
+
+	)
+
+327 
+	#isdig™_l
+(
+c
+,
+l
+è
+	`__isdig™_l
+ ((c), (l))
+
+	)
+
+328 
+	#i¦ow”_l
+(
+c
+,
+l
+è
+	`__i¦ow”_l
+ ((c), (l))
+
+	)
+
+329 
+	#isg¿ph_l
+(
+c
+,
+l
+è
+	`__isg¿ph_l
+ ((c), (l))
+
+	)
+
+330 
+	#i¥ršt_l
+(
+c
+,
+l
+è
+	`__i¥ršt_l
+ ((c), (l))
+
+	)
+
+331 
+	#i¥unù_l
+(
+c
+,
+l
+è
+	`__i¥unù_l
+ ((c), (l))
+
+	)
+
+332 
+	#is¥aû_l
+(
+c
+,
+l
+è
+	`__is¥aû_l
+ ((c), (l))
+
+	)
+
+333 
+	#isuµ”_l
+(
+c
+,
+l
+è
+	`__isuµ”_l
+ ((c), (l))
+
+	)
+
+334 
+	#isxdig™_l
+(
+c
+,
+l
+è
+	`__isxdig™_l
+ ((c), (l))
+
+	)
+
+336 
+	#isbÏnk_l
+(
+c
+,
+l
+è
+	`__isbÏnk_l
+ ((c), (l))
+
+	)
+
+338 #ifdeà
+__USE_MISC
+
+
+339 
+	#i§scii_l
+(
+c
+,
+l
+è
+	`__i§scii_l
+ ((c), (l))
+
+	)
+
+340 
+	#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 
+	#_ERRNO_H
+ 1
+
+	)
+
+28 
+	~<ã©u»s.h
+>
+
+31 
+	g__BEGIN_DECLS
+
+
+35 
+	~<b™s/”ºo.h
+>
+
+36 #undeà
+__Ãed_Em©h
+
+
+38 #ifdef 
+_ERRNO_H
+
+
+45 #iâdef 
+Ӽo
+
+
+46 

+Ӽo
+;
+
+49 #ifdeà
+__USE_GNU
+
+
+54 
*
+´og¿m_švoÿtiÚ_Çme
+, *
+´og¿m_švoÿtiÚ_shÜt_Çme
+;
+
+58 
+	g__END_DECLS
+
+
+66 #ià
+defšed
+ 
+__USE_GNU
+ || defšed 
+__Ãed_”rÜ_t
+
+
+67 #iâdeà
+__”rÜ_t_defšed
+
+
+68 
+	t”rÜ_t
+;
+
+69 
+	#__”rÜ_t_defšed
+ 1
+
+	)
+
+71 #undeà
+__Ãed_”rÜ_t
+
+
+	@/usr/include/execinfo.h
+
+18 #iâdeà
+_EXECINFO_H
+
+
+19 
+	#_EXECINFO_H
+ 1
+
+	)
+
+21 
+	~<ã©u»s.h
+>
+
+23 
+__BEGIN_DECLS
+
+
+27 

+	$backŒaû
+ (**
+__¬¿y
+, 
+__size
+è
+	`__nÚnuÎ
+ ((1));
+
+32 
**
+	$backŒaû_symbÞs
+ (*cÚ¡ *
+__¬¿y
+, 
+__size
+)
+
+33 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+38 

+	$backŒaû_symbÞs_fd
+ (*cÚ¡ *
+__¬¿y
+, 
+__size
+, 
+__fd
+)
+
+39 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+41 
+__END_DECLS
+
+
+	@/usr/include/fcntl.h
+
+22 #iâdef 
+_FCNTL_H
+
+
+23 
+	#_FCNTL_H
+ 1
+
+	)
+
+25 
+	~<ã©u»s.h
+>
+
+28 
+	g__BEGIN_DECLS
+
+
+31 
+	~<b™s/ty³s.h
+>
+
+35 
+	~<b™s/fúŽ.h
+>
+
+39 #ifdeà
+__O_TMPFILE
+
+
+40 
+	#__OPEN_NEEDS_MODE
+(
+oæag
+) \
+
+41 (((
+oæag
+è& 
+O_CREAT
+è!ð0 || ((oæagè& 
+__O_TMPFILE
+è=ð__O_TMPFILE)
+
+	)
+
+43 
+	#__OPEN_NEEDS_MODE
+(
+oæag
+è(((oæagè& 
+O_CREAT
+è!ð0)
+
+	)
+
+49 #iâdeà
+__mode_t_defšed
+
+
+50 
+__mode_t
+ 
+	tmode_t
+;
+
+51 
+	#__mode_t_defšed
+
+
+	)
+
+54 #iâdeà
+__off_t_defšed
+
+
+55 #iâdeà
+__USE_FILE_OFFSET64
+
+
+56 
+__off_t
+ 
+	toff_t
+;
+
+58 
+__off64_t
+ 
+	toff_t
+;
+
+60 
+	#__off_t_defšed
+
+
+	)
+
+63 #ià
+defšed
+ 
+__USE_LARGEFILE64
+ && !defšed 
+__off64_t_defšed
+
+
+64 
+__off64_t
+ 
+	toff64_t
+;
+
+65 
+	#__off64_t_defšed
+
+
+	)
+
+68 #iâdeà
+__pid_t_defšed
+
+
+69 
+__pid_t
+ 
+	tpid_t
+;
+
+70 
+	#__pid_t_defšed
+
+
+	)
+
+74 #ià
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_XOPEN2K8
+
+
+75 
+	#__Ãed_time¥ec
+
+
+	)
+
+76 
+	~<time.h
+>
+
+77 
+	~<b™s/¡©.h
+>
+
+79 
+	#S_IFMT
+ 
+__S_IFMT
+
+
+	)
+
+80 
+	#S_IFDIR
+ 
+__S_IFDIR
+
+
+	)
+
+81 
+	#S_IFCHR
+ 
+__S_IFCHR
+
+
+	)
+
+82 
+	#S_IFBLK
+ 
+__S_IFBLK
+
+
+	)
+
+83 
+	#S_IFREG
+ 
+__S_IFREG
+
+
+	)
+
+84 #ifdeà
+__S_IFIFO
+
+
+85 
+	#S_IFIFO
+ 
+__S_IFIFO
+
+
+	)
+
+87 #ifdeà
+__S_IFLNK
+
+
+88 
+	#S_IFLNK
+ 
+__S_IFLNK
+
+
+	)
+
+90 #ià(
+defšed
+ 
+__USE_UNIX98
+ || defšed 
+__USE_XOPEN2K8
+è&& defšed 
+__S_IFSOCK
+
+
+91 
+	#S_IFSOCK
+ 
+__S_IFSOCK
+
+
+	)
+
+96 
+	#S_ISUID
+ 
+__S_ISUID
+
+
+	)
+
+97 
+	#S_ISGID
+ 
+__S_ISGID
+
+
+	)
+
+99 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+101 
+	#S_ISVTX
+ 
+__S_ISVTX
+
+
+	)
+
+104 
+	#S_IRUSR
+ 
+__S_IREAD
+
+
+	)
+
+105 
+	#S_IWUSR
+ 
+__S_IWRITE
+
+
+	)
+
+106 
+	#S_IXUSR
+ 
+__S_IEXEC
+
+
+	)
+
+108 
+	#S_IRWXU
+ (
+__S_IREAD
+|
+__S_IWRITE
+|
+__S_IEXEC
+)
+
+	)
+
+110 
+	#S_IRGRP
+ (
+S_IRUSR
+ >> 3è
+
+	)
+
+111 
+	#S_IWGRP
+ (
+S_IWUSR
+ >> 3è
+
+	)
+
+112 
+	#S_IXGRP
+ (
+S_IXUSR
+ >> 3è
+
+	)
+
+114 
+	#S_IRWXG
+ (
+S_IRWXU
+ >> 3)
+
+	)
+
+116 
+	#S_IROTH
+ (
+S_IRGRP
+ >> 3è
+
+	)
+
+117 
+	#S_IWOTH
+ (
+S_IWGRP
+ >> 3è
+
+	)
+
+118 
+	#S_IXOTH
+ (
+S_IXGRP
+ >> 3è
+
+	)
+
+120 
+	#S_IRWXO
+ (
+S_IRWXG
+ >> 3)
+
+	)
+
+123 #ifdef 
+__USE_MISC
+
+
+124 #iâdeà
+R_OK
+
+
+127 
+	#R_OK
+ 4
+
+	)
+
+128 
+	#W_OK
+ 2
+
+	)
+
+129 
+	#X_OK
+ 1
+
+	)
+
+130 
+	#F_OK
+ 0
+
+	)
+
+135 #ià
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_XOPEN2K8
+
+
+136 
+	#SEEK_SET
+ 0
+
+	)
+
+137 
+	#SEEK_CUR
+ 1
+
+	)
+
+138 
+	#SEEK_END
+ 2
+
+	)
+
+146 

+fúŽ
+ (
+__fd
+, 
+__cmd
+, ...);
+
+155 #iâdeà
+__USE_FILE_OFFSET64
+
+
+156 

+	$ݒ
+ (cÚ¡ *
+__fže
+, 
+__oæag
+, ...è
+	`__nÚnuÎ
+ ((1));
+
+158 #ifdeà
+__REDIRECT
+
+
+159 

+	`__REDIRECT
+ (
+ݒ
+, (cÚ¡ *
+__fže
+, 
+__oæag
+, ...), 
+ݒ64
+)
+
+160 
+	`__nÚnuÎ
+ ((1));
+
+162 
+	#ݒ
+ 
+ݒ64
+
+
+	)
+
+165 #ifdeà
+__USE_LARGEFILE64
+
+
+166 

+	$ݒ64
+ (cÚ¡ *
+__fže
+, 
+__oæag
+, ...è
+	`__nÚnuÎ
+ ((1));
+
+169 #ifdeà
+__USE_ATFILE
+
+
+179 #iâdeà
+__USE_FILE_OFFSET64
+
+
+180 

+	$ݒ©
+ (
+__fd
+, cÚ¡ *
+__fže
+, 
+__oæag
+, ...)
+
+181 
+	`__nÚnuÎ
+ ((2));
+
+183 #ifdeà
+__REDIRECT
+
+
+184 

+	`__REDIRECT
+ (
+ݒ©
+, (
+__fd
+, cÚ¡ *
+__fže
+, 
+__oæag
+,
+
+185 ...), 
+ݒ©64
+è
+	`__nÚnuÎ
+ ((2));
+
+187 
+	#ݒ©
+ 
+ݒ©64
+
+
+	)
+
+190 #ifdeà
+__USE_LARGEFILE64
+
+
+191 

+	$ݒ©64
+ (
+__fd
+, cÚ¡ *
+__fže
+, 
+__oæag
+, ...)
+
+192 
+	`__nÚnuÎ
+ ((2));
+
+201 #iâdeà
+__USE_FILE_OFFSET64
+
+
+202 

+	$ü—t
+ (cÚ¡ *
+__fže
+, 
+mode_t
+ 
+__mode
+è
+	`__nÚnuÎ
+ ((1));
+
+204 #ifdeà
+__REDIRECT
+
+
+205 

+	`__REDIRECT
+ (
+ü—t
+, (cÚ¡ *
+__fže
+, 
+mode_t
+ 
+__mode
+),
+
+206 
+ü—t64
+è
+	`__nÚnuÎ
+ ((1));
+
+208 
+	#ü—t
+ 
+ü—t64
+
+
+	)
+
+211 #ifdeà
+__USE_LARGEFILE64
+
+
+212 

+	$ü—t64
+ (cÚ¡ *
+__fže
+, 
+mode_t
+ 
+__mode
+è
+	`__nÚnuÎ
+ ((1));
+
+215 #ià!
+defšed
+ 
+F_LOCK
+ && (defšed 
+__USE_MISC
+ || (defšed 
+__USE_XOPEN_EXTENDED
+ \
+
+216 && !
+defšed
+ 
+__USE_POSIX
+))
+
+225 
+	#F_ULOCK
+ 0
+
+	)
+
+226 
+	#F_LOCK
+ 1
+
+	)
+
+227 
+	#F_TLOCK
+ 2
+
+	)
+
+228 
+	#F_TEST
+ 3
+
+	)
+
+230 #iâdeà
+__USE_FILE_OFFSET64
+
+
+231 

+	`lockf
+ (
+__fd
+, 
+__cmd
+, 
+off_t
+ 
+__Ën
+);
+
+233 #ifdeà
+__REDIRECT
+
+
+234 

+	`__REDIRECT
+ (
+lockf
+, (
+__fd
+, 
+__cmd
+, 
+__off64_t
+ 
+__Ën
+), 
+lockf64
+);
+
+236 
+	#lockf
+ 
+lockf64
+
+
+	)
+
+239 #ifdeà
+__USE_LARGEFILE64
+
+
+240 

+	`lockf64
+ (
+__fd
+, 
+__cmd
+, 
+off64_t
+ 
+__Ën
+);
+
+244 #ifdeà
+__USE_XOPEN2K
+
+
+247 #iâdeà
+__USE_FILE_OFFSET64
+
+
+248 

+	$posix_çdvi£
+ (
+__fd
+, 
+off_t
+ 
+__off£t
+, off_ˆ
+__Ën
+,
+
+249 
+__advi£
+è
+__THROW
+;
+
+251 #ifdeà
+__REDIRECT_NTH
+
+
+252 

+	`__REDIRECT_NTH
+ (
+posix_çdvi£
+, (
+__fd
+, 
+__off64_t
+ 
+__off£t
+,
+
+253 
+__off64_t
+ 
+__Ën
+, 
+__advi£
+),
+
+254 
+posix_çdvi£64
+);
+
+256 
+	#posix_çdvi£
+ 
+posix_çdvi£64
+
+
+	)
+
+259 #ifdeà
+__USE_LARGEFILE64
+
+
+260 

+	$posix_çdvi£64
+ (
+__fd
+, 
+off64_t
+ 
+__off£t
+, off64_ˆ
+__Ën
+,
+
+261 
+__advi£
+è
+__THROW
+;
+
+269 #iâdeà
+__USE_FILE_OFFSET64
+
+
+270 

+	`posix_çÎoÿ‹
+ (
+__fd
+, 
+off_t
+ 
+__off£t
+, off_ˆ
+__Ën
+);
+
+272 #ifdeà
+__REDIRECT
+
+
+273 

+	`__REDIRECT
+ (
+posix_çÎoÿ‹
+, (
+__fd
+, 
+__off64_t
+ 
+__off£t
+,
+
+274 
+__off64_t
+ 
+__Ën
+),
+
+275 
+posix_çÎoÿ‹64
+);
+
+277 
+	#posix_çÎoÿ‹
+ 
+posix_çÎoÿ‹64
+
+
+	)
+
+280 #ifdeà
+__USE_LARGEFILE64
+
+
+281 

+	`posix_çÎoÿ‹64
+ (
+__fd
+, 
+off64_t
+ 
+__off£t
+, off64_ˆ
+__Ën
+);
+
+287 #ià
+__USE_FORTIFY_LEVEL
+ > 0 && 
+defšed
+ 
+__fÜtify_funùiÚ
+ \
+
+288 && 
+defšed
+ 
+__va_¬g_·ck_Ën
+
+
+289 
+	~<b™s/fúŽ2.h
+>
+
+292 
+__END_DECLS
+
+
+	@/usr/include/getopt.h
+
+19 #iâdeà
+_GETOPT_H
+
+
+21 #iâdeà
+__Ãed_g‘Ýt
+
+
+22 
+	#_GETOPT_H
+ 1
+
+	)
+
+32 #ià!
+defšed
+ 
+__GNU_LIBRARY__
+
+
+33 
+	~<ùy³.h
+>
+
+36 #iâdeà
+__THROW
+
+
+37 #iâdeà
+__GNUC_PREREQ
+
+
+38 
+	#__GNUC_PREREQ
+(
+maj
+, 
+mš
+è(0)
+
+	)
+
+40 #ià
+defšed
+ 
+__ýlu¥lus
+ && 
+__GNUC_PREREQ
+ (2,8)
+
+41 
+	#__THROW
+ 
+	`throw
+ ()
+
+	)
+
+43 
+	#__THROW
+
+
+	)
+
+47 #ifdef 
+__ýlu¥lus
+
+
+57 
*
+ݏrg
+;
+
+71 

+Ýtšd
+;
+
+76 

+݋¼
+;
+
+80 

+ÝtÝt
+;
+
+82 #iâdeà
+__Ãed_g‘Ýt
+
+
+104 
+	sÝtiÚ
+
+
+106 cÚ¡ *
+	gÇme
+;
+
+109 
+	ghas_¬g
+;
+
+110 *
+	gæag
+;
+
+111 
+	gv®
+;
+
+116 
+	#no_¬gum’t
+ 0
+
+	)
+
+117 
+	#»quœed_¬gum’t
+ 1
+
+	)
+
+118 
+	#ÝtiÚ®_¬gum’t
+ 2
+
+	)
+
+146 #ifdeà
+__GNU_LIBRARY__
+
+
+150 

+g‘Ýt
+ (
+___¬gc
+, *cÚ¡ *
+___¬gv
+, cÚ¡ *
+__shÜtÝts
+)
+
+151 
+__THROW
+;
+
+153 #ià
+defšed
+ 
+__Ãed_g‘Ýt
+ && defšed 
+__USE_POSIX2
+ \
+
+154 && !
+defšed
+ 
+	g__USE_POSIX_IMPLICITLY
+ && !defšed 
+	g__USE_GNU
+
+
+158 #ifdeà
+__REDIRECT
+
+
+159 

+__REDIRECT_NTH
+ (
+g‘Ýt
+, (
+___¬gc
+, *cÚ¡ *
+___¬gv
+,
+
+160 cÚ¡ *
+__shÜtÝts
+),
+
+161 
+__posix_g‘Ýt
+);
+
+163 

+__posix_g‘Ýt
+ (
+___¬gc
+, *cÚ¡ *
+___¬gv
+,
+
+164 cÚ¡ *
+__shÜtÝts
+è
+__THROW
+;
+
+165 
+	#g‘Ýt
+ 
+__posix_g‘Ýt
+
+
+	)
+
+169 

+g‘Ýt
+ ();
+
+172 #iâdeà
+__Ãed_g‘Ýt
+
+
+173 

+g‘Ýt_lÚg
+ (
+___¬gc
+, *cÚ¡ *
+___¬gv
+,
+
+174 cÚ¡ *
+__shÜtÝts
+,
+
+175 cÚ¡ 
+ÝtiÚ
+ *
+__lÚgÝts
+, *
+__lÚgšd
+)
+
+176 
+__THROW
+;
+
+177 

+g‘Ýt_lÚg_Úly
+ (
+___¬gc
+, *cÚ¡ *
+___¬gv
+,
+
+178 cÚ¡ *
+__shÜtÝts
+,
+
+179 cÚ¡ 
+ÝtiÚ
+ *
+__lÚgÝts
+, *
+__lÚgšd
+)
+
+180 
+__THROW
+;
+
+184 #ifdef 
+__ýlu¥lus
+
+
+189 #undeà
+__Ãed_g‘Ýt
+
+
+	@/usr/include/inttypes.h
+
+22 #iâdeà
+_INTTYPES_H
+
+
+23 
+	#_INTTYPES_H
+ 1
+
+	)
+
+25 
+	~<ã©u»s.h
+>
+
+27 
+	~<¡dšt.h
+>
+
+30 #iâdeà
+____gwch¬_t_defšed
+
+
+31 #ifdeà
+__ýlu¥lus
+
+
+32 
+	#__gwch¬_t
+ 
+wch¬_t
+
+
+	)
+
+33 #–ià
+defšed
+ 
+__WCHAR_TYPE__
+
+
+34 
+__WCHAR_TYPE__
+ 
+	t__gwch¬_t
+;
+
+36 
+	#__Ãed_wch¬_t
+
+
+	)
+
+37 
+	~<¡ddef.h
+>
+
+38 
+wch¬_t
+ 
+	t__gwch¬_t
+;
+
+40 
+	#____gwch¬_t_defšed
+ 1
+
+	)
+
+43 #ià
+__WORDSIZE
+ == 64
+
+44 
+	#__PRI64_PREFIX
+ "l"
+
+	)
+
+45 
+	#__PRIPTR_PREFIX
+ "l"
+
+	)
+
+47 
+	#__PRI64_PREFIX
+ "Î"
+
+	)
+
+48 
+	#__PRIPTR_PREFIX
+
+
+	)
+
+54 
+	#PRId8
+ "d"
+
+	)
+
+55 
+	#PRId16
+ "d"
+
+	)
+
+56 
+	#PRId32
+ "d"
+
+	)
+
+57 
+	#PRId64
+ 
+__PRI64_PREFIX
+ "d"
+
+	)
+
+59 
+	#PRIdLEAST8
+ "d"
+
+	)
+
+60 
+	#PRIdLEAST16
+ "d"
+
+	)
+
+61 
+	#PRIdLEAST32
+ "d"
+
+	)
+
+62 
+	#PRIdLEAST64
+ 
+__PRI64_PREFIX
+ "d"
+
+	)
+
+64 
+	#PRIdFAST8
+ "d"
+
+	)
+
+65 
+	#PRIdFAST16
+ 
+__PRIPTR_PREFIX
+ "d"
+
+	)
+
+66 
+	#PRIdFAST32
+ 
+__PRIPTR_PREFIX
+ "d"
+
+	)
+
+67 
+	#PRIdFAST64
+ 
+__PRI64_PREFIX
+ "d"
+
+	)
+
+70 
+	#PRIi8
+ "i"
+
+	)
+
+71 
+	#PRIi16
+ "i"
+
+	)
+
+72 
+	#PRIi32
+ "i"
+
+	)
+
+73 
+	#PRIi64
+ 
+__PRI64_PREFIX
+ "i"
+
+	)
+
+75 
+	#PRIiLEAST8
+ "i"
+
+	)
+
+76 
+	#PRIiLEAST16
+ "i"
+
+	)
+
+77 
+	#PRIiLEAST32
+ "i"
+
+	)
+
+78 
+	#PRIiLEAST64
+ 
+__PRI64_PREFIX
+ "i"
+
+	)
+
+80 
+	#PRIiFAST8
+ "i"
+
+	)
+
+81 
+	#PRIiFAST16
+ 
+__PRIPTR_PREFIX
+ "i"
+
+	)
+
+82 
+	#PRIiFAST32
+ 
+__PRIPTR_PREFIX
+ "i"
+
+	)
+
+83 
+	#PRIiFAST64
+ 
+__PRI64_PREFIX
+ "i"
+
+	)
+
+86 
+	#PRIo8
+ "o"
+
+	)
+
+87 
+	#PRIo16
+ "o"
+
+	)
+
+88 
+	#PRIo32
+ "o"
+
+	)
+
+89 
+	#PRIo64
+ 
+__PRI64_PREFIX
+ "o"
+
+	)
+
+91 
+	#PRIoLEAST8
+ "o"
+
+	)
+
+92 
+	#PRIoLEAST16
+ "o"
+
+	)
+
+93 
+	#PRIoLEAST32
+ "o"
+
+	)
+
+94 
+	#PRIoLEAST64
+ 
+__PRI64_PREFIX
+ "o"
+
+	)
+
+96 
+	#PRIoFAST8
+ "o"
+
+	)
+
+97 
+	#PRIoFAST16
+ 
+__PRIPTR_PREFIX
+ "o"
+
+	)
+
+98 
+	#PRIoFAST32
+ 
+__PRIPTR_PREFIX
+ "o"
+
+	)
+
+99 
+	#PRIoFAST64
+ 
+__PRI64_PREFIX
+ "o"
+
+	)
+
+102 
+	#PRIu8
+ "u"
+
+	)
+
+103 
+	#PRIu16
+ "u"
+
+	)
+
+104 
+	#PRIu32
+ "u"
+
+	)
+
+105 
+	#PRIu64
+ 
+__PRI64_PREFIX
+ "u"
+
+	)
+
+107 
+	#PRIuLEAST8
+ "u"
+
+	)
+
+108 
+	#PRIuLEAST16
+ "u"
+
+	)
+
+109 
+	#PRIuLEAST32
+ "u"
+
+	)
+
+110 
+	#PRIuLEAST64
+ 
+__PRI64_PREFIX
+ "u"
+
+	)
+
+112 
+	#PRIuFAST8
+ "u"
+
+	)
+
+113 
+	#PRIuFAST16
+ 
+__PRIPTR_PREFIX
+ "u"
+
+	)
+
+114 
+	#PRIuFAST32
+ 
+__PRIPTR_PREFIX
+ "u"
+
+	)
+
+115 
+	#PRIuFAST64
+ 
+__PRI64_PREFIX
+ "u"
+
+	)
+
+118 
+	#PRIx8
+ "x"
+
+	)
+
+119 
+	#PRIx16
+ "x"
+
+	)
+
+120 
+	#PRIx32
+ "x"
+
+	)
+
+121 
+	#PRIx64
+ 
+__PRI64_PREFIX
+ "x"
+
+	)
+
+123 
+	#PRIxLEAST8
+ "x"
+
+	)
+
+124 
+	#PRIxLEAST16
+ "x"
+
+	)
+
+125 
+	#PRIxLEAST32
+ "x"
+
+	)
+
+126 
+	#PRIxLEAST64
+ 
+__PRI64_PREFIX
+ "x"
+
+	)
+
+128 
+	#PRIxFAST8
+ "x"
+
+	)
+
+129 
+	#PRIxFAST16
+ 
+__PRIPTR_PREFIX
+ "x"
+
+	)
+
+130 
+	#PRIxFAST32
+ 
+__PRIPTR_PREFIX
+ "x"
+
+	)
+
+131 
+	#PRIxFAST64
+ 
+__PRI64_PREFIX
+ "x"
+
+	)
+
+134 
+	#PRIX8
+ "X"
+
+	)
+
+135 
+	#PRIX16
+ "X"
+
+	)
+
+136 
+	#PRIX32
+ "X"
+
+	)
+
+137 
+	#PRIX64
+ 
+__PRI64_PREFIX
+ "X"
+
+	)
+
+139 
+	#PRIXLEAST8
+ "X"
+
+	)
+
+140 
+	#PRIXLEAST16
+ "X"
+
+	)
+
+141 
+	#PRIXLEAST32
+ "X"
+
+	)
+
+142 
+	#PRIXLEAST64
+ 
+__PRI64_PREFIX
+ "X"
+
+	)
+
+144 
+	#PRIXFAST8
+ "X"
+
+	)
+
+145 
+	#PRIXFAST16
+ 
+__PRIPTR_PREFIX
+ "X"
+
+	)
+
+146 
+	#PRIXFAST32
+ 
+__PRIPTR_PREFIX
+ "X"
+
+	)
+
+147 
+	#PRIXFAST64
+ 
+__PRI64_PREFIX
+ "X"
+
+	)
+
+151 
+	#PRIdMAX
+ 
+__PRI64_PREFIX
+ "d"
+
+	)
+
+152 
+	#PRIiMAX
+ 
+__PRI64_PREFIX
+ "i"
+
+	)
+
+153 
+	#PRIoMAX
+ 
+__PRI64_PREFIX
+ "o"
+
+	)
+
+154 
+	#PRIuMAX
+ 
+__PRI64_PREFIX
+ "u"
+
+	)
+
+155 
+	#PRIxMAX
+ 
+__PRI64_PREFIX
+ "x"
+
+	)
+
+156 
+	#PRIXMAX
+ 
+__PRI64_PREFIX
+ "X"
+
+	)
+
+160 
+	#PRIdPTR
+ 
+__PRIPTR_PREFIX
+ "d"
+
+	)
+
+161 
+	#PRIiPTR
+ 
+__PRIPTR_PREFIX
+ "i"
+
+	)
+
+162 
+	#PRIoPTR
+ 
+__PRIPTR_PREFIX
+ "o"
+
+	)
+
+163 
+	#PRIuPTR
+ 
+__PRIPTR_PREFIX
+ "u"
+
+	)
+
+164 
+	#PRIxPTR
+ 
+__PRIPTR_PREFIX
+ "x"
+
+	)
+
+165 
+	#PRIXPTR
+ 
+__PRIPTR_PREFIX
+ "X"
+
+	)
+
+171 
+	#SCNd8
+ "hhd"
+
+	)
+
+172 
+	#SCNd16
+ "hd"
+
+	)
+
+173 
+	#SCNd32
+ "d"
+
+	)
+
+174 
+	#SCNd64
+ 
+__PRI64_PREFIX
+ "d"
+
+	)
+
+176 
+	#SCNdLEAST8
+ "hhd"
+
+	)
+
+177 
+	#SCNdLEAST16
+ "hd"
+
+	)
+
+178 
+	#SCNdLEAST32
+ "d"
+
+	)
+
+179 
+	#SCNdLEAST64
+ 
+__PRI64_PREFIX
+ "d"
+
+	)
+
+181 
+	#SCNdFAST8
+ "hhd"
+
+	)
+
+182 
+	#SCNdFAST16
+ 
+__PRIPTR_PREFIX
+ "d"
+
+	)
+
+183 
+	#SCNdFAST32
+ 
+__PRIPTR_PREFIX
+ "d"
+
+	)
+
+184 
+	#SCNdFAST64
+ 
+__PRI64_PREFIX
+ "d"
+
+	)
+
+187 
+	#SCNi8
+ "hhi"
+
+	)
+
+188 
+	#SCNi16
+ "hi"
+
+	)
+
+189 
+	#SCNi32
+ "i"
+
+	)
+
+190 
+	#SCNi64
+ 
+__PRI64_PREFIX
+ "i"
+
+	)
+
+192 
+	#SCNiLEAST8
+ "hhi"
+
+	)
+
+193 
+	#SCNiLEAST16
+ "hi"
+
+	)
+
+194 
+	#SCNiLEAST32
+ "i"
+
+	)
+
+195 
+	#SCNiLEAST64
+ 
+__PRI64_PREFIX
+ "i"
+
+	)
+
+197 
+	#SCNiFAST8
+ "hhi"
+
+	)
+
+198 
+	#SCNiFAST16
+ 
+__PRIPTR_PREFIX
+ "i"
+
+	)
+
+199 
+	#SCNiFAST32
+ 
+__PRIPTR_PREFIX
+ "i"
+
+	)
+
+200 
+	#SCNiFAST64
+ 
+__PRI64_PREFIX
+ "i"
+
+	)
+
+203 
+	#SCNu8
+ "hhu"
+
+	)
+
+204 
+	#SCNu16
+ "hu"
+
+	)
+
+205 
+	#SCNu32
+ "u"
+
+	)
+
+206 
+	#SCNu64
+ 
+__PRI64_PREFIX
+ "u"
+
+	)
+
+208 
+	#SCNuLEAST8
+ "hhu"
+
+	)
+
+209 
+	#SCNuLEAST16
+ "hu"
+
+	)
+
+210 
+	#SCNuLEAST32
+ "u"
+
+	)
+
+211 
+	#SCNuLEAST64
+ 
+__PRI64_PREFIX
+ "u"
+
+	)
+
+213 
+	#SCNuFAST8
+ "hhu"
+
+	)
+
+214 
+	#SCNuFAST16
+ 
+__PRIPTR_PREFIX
+ "u"
+
+	)
+
+215 
+	#SCNuFAST32
+ 
+__PRIPTR_PREFIX
+ "u"
+
+	)
+
+216 
+	#SCNuFAST64
+ 
+__PRI64_PREFIX
+ "u"
+
+	)
+
+219 
+	#SCNo8
+ "hho"
+
+	)
+
+220 
+	#SCNo16
+ "ho"
+
+	)
+
+221 
+	#SCNo32
+ "o"
+
+	)
+
+222 
+	#SCNo64
+ 
+__PRI64_PREFIX
+ "o"
+
+	)
+
+224 
+	#SCNoLEAST8
+ "hho"
+
+	)
+
+225 
+	#SCNoLEAST16
+ "ho"
+
+	)
+
+226 
+	#SCNoLEAST32
+ "o"
+
+	)
+
+227 
+	#SCNoLEAST64
+ 
+__PRI64_PREFIX
+ "o"
+
+	)
+
+229 
+	#SCNoFAST8
+ "hho"
+
+	)
+
+230 
+	#SCNoFAST16
+ 
+__PRIPTR_PREFIX
+ "o"
+
+	)
+
+231 
+	#SCNoFAST32
+ 
+__PRIPTR_PREFIX
+ "o"
+
+	)
+
+232 
+	#SCNoFAST64
+ 
+__PRI64_PREFIX
+ "o"
+
+	)
+
+235 
+	#SCNx8
+ "hhx"
+
+	)
+
+236 
+	#SCNx16
+ "hx"
+
+	)
+
+237 
+	#SCNx32
+ "x"
+
+	)
+
+238 
+	#SCNx64
+ 
+__PRI64_PREFIX
+ "x"
+
+	)
+
+240 
+	#SCNxLEAST8
+ "hhx"
+
+	)
+
+241 
+	#SCNxLEAST16
+ "hx"
+
+	)
+
+242 
+	#SCNxLEAST32
+ "x"
+
+	)
+
+243 
+	#SCNxLEAST64
+ 
+__PRI64_PREFIX
+ "x"
+
+	)
+
+245 
+	#SCNxFAST8
+ "hhx"
+
+	)
+
+246 
+	#SCNxFAST16
+ 
+__PRIPTR_PREFIX
+ "x"
+
+	)
+
+247 
+	#SCNxFAST32
+ 
+__PRIPTR_PREFIX
+ "x"
+
+	)
+
+248 
+	#SCNxFAST64
+ 
+__PRI64_PREFIX
+ "x"
+
+	)
+
+252 
+	#SCNdMAX
+ 
+__PRI64_PREFIX
+ "d"
+
+	)
+
+253 
+	#SCNiMAX
+ 
+__PRI64_PREFIX
+ "i"
+
+	)
+
+254 
+	#SCNoMAX
+ 
+__PRI64_PREFIX
+ "o"
+
+	)
+
+255 
+	#SCNuMAX
+ 
+__PRI64_PREFIX
+ "u"
+
+	)
+
+256 
+	#SCNxMAX
+ 
+__PRI64_PREFIX
+ "x"
+
+	)
+
+259 
+	#SCNdPTR
+ 
+__PRIPTR_PREFIX
+ "d"
+
+	)
+
+260 
+	#SCNiPTR
+ 
+__PRIPTR_PREFIX
+ "i"
+
+	)
+
+261 
+	#SCNoPTR
+ 
+__PRIPTR_PREFIX
+ "o"
+
+	)
+
+262 
+	#SCNuPTR
+ 
+__PRIPTR_PREFIX
+ "u"
+
+	)
+
+263 
+	#SCNxPTR
+ 
+__PRIPTR_PREFIX
+ "x"
+
+	)
+
+266 
+	g__BEGIN_DECLS
+
+
+268 #ià
+__WORDSIZE
+ == 64
+
+273 
+	mquÙ
+;
+
+274 
+	m»m
+;
+
+275 } 
+	timaxdiv_t
+;
+
+282 
+__ex‹nsiÚ__
+ 
+	mquÙ
+;
+
+283 
+__ex‹nsiÚ__
+ 
+	m»m
+;
+
+284 } 
+	timaxdiv_t
+;
+
+290 
+štmax_t
+ 
+	$imaxabs
+ (
+štmax_t
+ 
+__n
+è
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+293 
+imaxdiv_t
+ 
+	$imaxdiv
+ (
+štmax_t
+ 
+__num”
+, iÁmax_ˆ
+__d’om
+)
+
+294 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+297 
+štmax_t
+ 
+	$¡¹oimax
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+298 **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+è
+__THROW
+;
+
+301 
+uštmax_t
+ 
+	$¡¹oumax
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+302 ** 
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+è
+__THROW
+;
+
+305 
+štmax_t
+ 
+	$wc¡oimax
+ (cÚ¡ 
+__gwch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+306 
+__gwch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+)
+
+307 
+__THROW
+;
+
+310 
+uštmax_t
+ 
+	$wc¡oumax
+ (cÚ¡ 
+__gwch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+311 
+__gwch¬_t
+ ** 
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+)
+
+312 
+__THROW
+;
+
+314 #ifdeà
+__USE_EXTERN_INLINES
+
+
+316 #ià
+__WORDSIZE
+ == 64
+
+318 

+	$__¡¹Þ_š‹º®
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+319 **
+__»¡riù
+ 
+__’d±r
+,
+
+320 
+__ba£
+, 
+__group
+)
+
+321 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+323 
+__ex‹º_šlše
+ 
+štmax_t
+
+
+324 
+	`__NTH
+ (
+	$¡¹oimax
+ (cÚ¡ *
+__»¡riù
+ 
+Ō
+, **__»¡riù 
+’d±r
+,
+
+325 
+ba£
+))
+
+327  
+	`__¡¹Þ_š‹º®
+ (
+Ō
+, 
+’d±r
+, 
+ba£
+, 0);
+
+328 
+	}
+}
+
+330 

+	$__¡¹oul_š‹º®
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+331 ** 
+__»¡riù
+ 
+__’d±r
+,
+
+332 
+__ba£
+, 
+__group
+)
+
+333 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+335 
+__ex‹º_šlše
+ 
+uštmax_t
+
+
+336 
+	`__NTH
+ (
+	$¡¹oumax
+ (cÚ¡ *
+__»¡riù
+ 
+Ō
+, **__»¡riù 
+’d±r
+,
+
+337 
+ba£
+))
+
+339  
+	`__¡¹oul_š‹º®
+ (
+Ō
+, 
+’d±r
+, 
+ba£
+, 0);
+
+340 
+	}
+}
+
+342 

+	$__wc¡Þ_š‹º®
+ (cÚ¡ 
+__gwch¬_t
+ * 
+__»¡riù
+ 
+__Ō
+,
+
+343 
+__gwch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+,
+
+344 
+__ba£
+, 
+__group
+)
+
+345 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+347 
+__ex‹º_šlše
+ 
+štmax_t
+
+
+348 
+	`__NTH
+ (
+	$wc¡oimax
+ (cÚ¡ 
+__gwch¬_t
+ *
+__»¡riù
+ 
+Ō
+,
+
+349 
+__gwch¬_t
+ **
+__»¡riù
+ 
+’d±r
+, 
+ba£
+))
+
+351  
+	`__wc¡Þ_š‹º®
+ (
+Ō
+, 
+’d±r
+, 
+ba£
+, 0);
+
+352 
+	}
+}
+
+354 

+	$__wc¡oul_š‹º®
+ (cÚ¡ 
+__gwch¬_t
+ *
+
+355 
+__»¡riù
+ 
+__Ō
+,
+
+356 
+__gwch¬_t
+ **
+
+357 
+__»¡riù
+ 
+__’d±r
+,
+
+358 
+__ba£
+, 
+__group
+)
+
+359 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+361 
+__ex‹º_šlše
+ 
+uštmax_t
+
+
+362 
+	`__NTH
+ (
+	$wc¡oumax
+ (cÚ¡ 
+__gwch¬_t
+ *
+__»¡riù
+ 
+Ō
+,
+
+363 
+__gwch¬_t
+ **
+__»¡riù
+ 
+’d±r
+, 
+ba£
+))
+
+365  
+	`__wc¡oul_š‹º®
+ (
+Ō
+, 
+’d±r
+, 
+ba£
+, 0);
+
+366 
+	}
+}
+
+370 
+__ex‹nsiÚ__
+
+
+371 

+	$__¡¹Þl_š‹º®
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+372 **
+__»¡riù
+ 
+__’d±r
+,
+
+373 
+__ba£
+, 
+__group
+)
+
+374 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+376 
+__ex‹º_šlše
+ 
+štmax_t
+
+
+377 
+	`__NTH
+ (
+	$¡¹oimax
+ (cÚ¡ *
+__»¡riù
+ 
+Ō
+, **__»¡riù 
+’d±r
+,
+
+378 
+ba£
+))
+
+380  
+	`__¡¹Þl_š‹º®
+ (
+Ō
+, 
+’d±r
+, 
+ba£
+, 0);
+
+381 
+	}
+}
+
+383 
+__ex‹nsiÚ__
+
+
+384 

+	$__¡¹ouÎ_š‹º®
+ (const *
+
+385 
+__»¡riù
+ 
+__Ō
+,
+
+387 
+__»¡riù
+ 
+__’d±r
+,
+
+388 
+__ba£
+,
+
+389 
+__group
+)
+
+390 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+392 
+__ex‹º_šlše
+ 
+uštmax_t
+
+
+393 
+	`__NTH
+ (
+	$¡¹oumax
+ (cÚ¡ *
+__»¡riù
+ 
+Ō
+, **__»¡riù 
+’d±r
+,
+
+394 
+ba£
+))
+
+396  
+	`__¡¹ouÎ_š‹º®
+ (
+Ō
+, 
+’d±r
+, 
+ba£
+, 0);
+
+397 
+	}
+}
+
+399 
+__ex‹nsiÚ__
+
+
+400 

+	$__wc¡Þl_š‹º®
+ (cÚ¡ 
+__gwch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+401 
+__gwch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+,
+
+402 
+__ba£
+, 
+__group
+)
+
+403 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+405 
+__ex‹º_šlše
+ 
+štmax_t
+
+
+406 
+	`__NTH
+ (
+	$wc¡oimax
+ (cÚ¡ 
+__gwch¬_t
+ *
+__»¡riù
+ 
+Ō
+,
+
+407 
+__gwch¬_t
+ **
+__»¡riù
+ 
+’d±r
+, 
+ba£
+))
+
+409  
+	`__wc¡Þl_š‹º®
+ (
+Ō
+, 
+’d±r
+, 
+ba£
+, 0);
+
+410 
+	}
+}
+
+413 
+__ex‹nsiÚ__
+
+
+414 

+	$__wc¡ouÎ_š‹º®
+ (cÚ¡ 
+__gwch¬_t
+ *
+
+415 
+__»¡riù
+ 
+__Ō
+,
+
+416 
+__gwch¬_t
+ **
+
+417 
+__»¡riù
+ 
+__’d±r
+,
+
+418 
+__ba£
+,
+
+419 
+__group
+)
+
+420 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+422 
+__ex‹º_šlše
+ 
+uštmax_t
+
+
+423 
+	`__NTH
+ (
+	$wc¡oumax
+ (cÚ¡ 
+__gwch¬_t
+ *
+__»¡riù
+ 
+Ō
+,
+
+424 
+__gwch¬_t
+ **
+__»¡riù
+ 
+’d±r
+, 
+ba£
+))
+
+426  
+	`__wc¡ouÎ_š‹º®
+ (
+Ō
+, 
+’d±r
+, 
+ba£
+, 0);
+
+427 
+	}
+}
+
+432 
+	g__END_DECLS
+
+
+	@/usr/include/libgen.h
+
+18 #iâdeà
+_LIBGEN_H
+
+
+19 
+	#_LIBGEN_H
+ 1
+
+	)
+
+21 
+	~<ã©u»s.h
+>
+
+23 
+__BEGIN_DECLS
+
+
+26 
*
+	$dςme
+ (*
+__·th
+è
+__THROW
+;
+
+34 
*
+	$__xpg_ba£Çme
+ (*
+__·th
+è
+__THROW
+;
+
+35 
+	#ba£Çme
+ 
+__xpg_ba£Çme
+
+
+	)
+
+37 
+__END_DECLS
+
+
+	@/usr/include/math.h
+
+23 #iâdef 
+_MATH_H
+
+
+24 
+	#_MATH_H
+ 1
+
+	)
+
+26 
+	~<ã©u»s.h
+>
+
+28 
+	g__BEGIN_DECLS
+
+
+31 
+	~<b™s/m©h-veùÜ.h
+>
+
+35 
+	~<b™s/huge_v®.h
+>
+
+36 #ifdeà
+__USE_ISOC99
+
+
+37 
+	~<b™s/huge_v®f.h
+>
+
+38 
+	~<b™s/huge_v®l.h
+>
+
+41 
+	~<b™s/šf.h
+>
+
+44 
+	~<b™s/Çn.h
+>
+
+48 
+	~<b™s/m©hdef.h
+>
+
+55 
+	#__SIMD_DECL
+(
+funùiÚ
+è
+	`__CONCAT
+ (
+__DECL_SIMD_
+, funùiÚ)
+
+	)
+
+57 
+	#__MATHCALL_VEC
+(
+funùiÚ
+, 
+suffix
+, 
+¬gs
+) \
+
+58 
+	`__SIMD_DECL
+ (
+	`__MATH_PRECNAME
+ (
+funùiÚ
+, 
+suffix
+)) \
+
+59 
+	`__MATHCALL
+ (
+funùiÚ
+, 
+suffix
+, 
+¬gs
+)
+
+	)
+
+61 
+	#__MATHDECL_VEC
+(
+ty³
+, 
+funùiÚ
+,
+suffix
+, 
+¬gs
+) \
+
+62 
+	`__SIMD_DECL
+ (
+	`__MATH_PRECNAME
+ (
+funùiÚ
+, 
+suffix
+)) \
+
+63 
+	`__MATHDECL
+(
+ty³
+, 
+funùiÚ
+,
+suffix
+, 
+¬gs
+)
+
+	)
+
+65 
+	#__MATHCALL
+(
+funùiÚ
+,
+suffix
+, 
+¬gs
+) \
+
+66 
+	`__MATHDECL
+ (
+_MdoubË_
+,
+funùiÚ
+,
+suffix
+, 
+¬gs
+)
+
+	)
+
+67 
+	#__MATHDECL
+(
+ty³
+, 
+funùiÚ
+,
+suffix
+, 
+¬gs
+) \
+
+68 
+	`__MATHDECL_1
+(
+ty³
+, 
+funùiÚ
+,
+suffix
+, 
+¬gs
+); \
+
+69 
+	`__MATHDECL_1
+(
+ty³
+, 
+	`__CONCAT
+(
+__
+,
+funùiÚ
+),
+suffix
+, 
+¬gs
+)
+
+	)
+
+70 
+	#__MATHCALLX
+(
+funùiÚ
+,
+suffix
+, 
+¬gs
+, 
+©Œib
+) \
+
+71 
+	`__MATHDECLX
+ (
+_MdoubË_
+,
+funùiÚ
+,
+suffix
+, 
+¬gs
+, 
+©Œib
+)
+
+	)
+
+72 
+	#__MATHDECLX
+(
+ty³
+, 
+funùiÚ
+,
+suffix
+, 
+¬gs
+, 
+©Œib
+) \
+
+73 
+	`__MATHDECL_1
+(
+ty³
+, 
+funùiÚ
+,
+suffix
+, 
+¬gs
+è
+	`__©Œibu‹__
+ (
+©Œib
+); \
+
+74 
+	`__MATHDECL_1
+(
+ty³
+, 
+	`__CONCAT
+(
+__
+,
+funùiÚ
+),
+suffix
+, 
+¬gs
+è
+	`__©Œibu‹__
+ (
+©Œib
+)
+
+	)
+
+75 
+	#__MATHDECL_1
+(
+ty³
+, 
+funùiÚ
+,
+suffix
+, 
+¬gs
+) \
+
+76 
+ty³
+ 
+	`__MATH_PRECNAME
+(
+funùiÚ
+,
+suffix
+è
+¬gs
+ 
+__THROW
+
+
+	)
+
+78 
+	#_MdoubË_
+ 
+
+	)
+
+79 
+	#__MATH_PRECNAME
+(
+Çme
+,
+r
+è
+	`__CONCAT
+Òame,r)
+
+	)
+
+80 
+	#__MATH_DECLARING_DOUBLE
+ 1
+
+	)
+
+81 
+	#_MdoubË_BEGIN_NAMESPACE
+ 
+__BEGIN_NAMESPACE_STD
+
+
+	)
+
+82 
+	#_MdoubË_END_NAMESPACE
+ 
+__END_NAMESPACE_STD
+
+
+	)
+
+83 
+	~<b™s/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 
+	#_Mæßt_
+ 
+
+	)
+
+99 
+	#_MdoubË_
+ 
+_Mæßt_
+
+
+	)
+
+100 
+	#__MATH_PRECNAME
+(
+Çme
+,
+r
+èÇme##
+f
+##
+	)
+r
+
+101 
+	#__MATH_DECLARING_DOUBLE
+ 0
+
+	)
+
+102 
+	#_MdoubË_BEGIN_NAMESPACE
+ 
+__BEGIN_NAMESPACE_C99
+
+
+	)
+
+103 
+	#_MdoubË_END_NAMESPACE
+ 
+__END_NAMESPACE_C99
+
+
+	)
+
+104 
+	~<b™s/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šed
+ 
+__NO_LONG_DOUBLE_MATH
+ && defšed 
+_LIBC
+) \
+
+112 || 
+defšed
+ 
+__LDBL_COMPAT
+ \
+
+113 || 
+defšed
+ 
+_LIBC_TEST
+
+
+114 #ifdeà
+__LDBL_COMPAT
+
+
+116 #ifdeà
+__USE_ISOC99
+
+
+117 

+	$__Ædbl_Ãx‰ow¬df
+ (
+__x
+, 
+__y
+)
+
+118 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+119 #ifdeà
+__REDIRECT_NTH
+
+
+120 

+	`__REDIRECT_NTH
+ (
+Ãx‰ow¬df
+, (
+__x
+, 
+__y
+),
+
+121 
+__Ædbl_Ãx‰ow¬df
+)
+
+122 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+123 

+	`__REDIRECT_NTH
+ (
+Ãx‰ow¬d
+, (
+__x
+, 
+__y
+),
+
+124 
+Ãxá”
+è
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+125 

+	`__REDIRECT_NTH
+ (
+Ãx‰ow¬dl
+,
+
+126 (
+__x
+, 
+__y
+),
+
+127 
+Ãxá”
+è
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+131 #undeà
+__MATHDECL_1
+
+
+132 
+	#__MATHDECL_2
+(
+ty³
+, 
+funùiÚ
+,
+suffix
+, 
+¬gs
+, 
+®Ÿs
+) \
+
+133 
+ty³
+ 
+	`__REDIRECT_NTH
+(
+	`__MATH_PRECNAME
+(
+funùiÚ
+,
+suffix
+), \
+
+134 
+¬gs
+, 
+®Ÿs
+)
+
+	)
+
+135 
+	#__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 
+	#_MlÚg_doubË_
+ 
+
+	)
+
+145 
+	#_MdoubË_
+ 
+_MlÚg_doubË_
+
+
+	)
+
+146 
+	#__MATH_PRECNAME
+(
+Çme
+,
+r
+èÇme##
+l
+##
+	)
+r
+
+147 
+	#__MATH_DECLARING_DOUBLE
+ 0
+
+	)
+
+148 
+	#_MdoubË_BEGIN_NAMESPACE
+ 
+__BEGIN_NAMESPACE_C99
+
+
+	)
+
+149 
+	#_MdoubË_END_NAMESPACE
+ 
+__END_NAMESPACE_C99
+
+
+	)
+
+150 
+	#__MATH_DECLARE_LDOUBLE
+ 1
+
+	)
+
+151 
+	~<b™s/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šed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+168 

+signgam
+;
+
+173 #ifdeà
+__USE_ISOC99
+
+
+211 
+FP_NAN
+ =
+
+212 
+	#FP_NAN
+ 0
+
+	)
+
+213 
+FP_NAN
+,
+
+214 
+FP_INFINITE
+ =
+
+215 
+	#FP_INFINITE
+ 1
+
+	)
+
+216 
+FP_INFINITE
+,
+
+217 
+FP_ZERO
+ =
+
+218 
+	#FP_ZERO
+ 2
+
+	)
+
+219 
+FP_ZERO
+,
+
+220 
+FP_SUBNORMAL
+ =
+
+221 
+	#FP_SUBNORMAL
+ 3
+
+	)
+
+222 
+FP_SUBNORMAL
+,
+
+223 
+FP_NORMAL
+ =
+
+224 
+	#FP_NORMAL
+ 4
+
+	)
+
+225 
+FP_NORMAL
+
+
+233 #ià
+	`__GNUC_PREREQ
+ (4,4è&& !
+defšed
+ 
+__SUPPORT_SNAN__
+ \
+
+234 && !
+defšed
+ 
+__OPTIMIZE_SIZE__
+
+
+235 
+	#åþassify
+(
+x
+è
+	`__bužtš_åþassify
+ (
+FP_NAN
+, 
+FP_INFINITE
+, \
+
+236 
+FP_NORMAL
+, 
+FP_SUBNORMAL
+, 
+FP_ZERO
+, 
+x
+)
+
+	)
+
+237 #–ià
+defšed
+ 
+__NO_LONG_DOUBLE_MATH
+
+
+238 
+	#åþassify
+(
+x
+) \
+
+239 ( (
+x
+è=ð (è? 
+	`__åþassifyf
+ (xè: 
+	`__åþassify
+ (x))
+
+	)
+
+241 
+	#åþassify
+(
+x
+) \
+
+242 ( (
+x
+) ==  () \
+
+243 ? 
+	`__åþassifyf
+ (
+x
+) \
+
+244 :  (
+x
+) ==  () \
+
+245 ? 
+	`__åþassify
+ (
+x
+è: 
+	`__åþassifyl
+ (x))
+
+	)
+
+249 #ià
+	`__GNUC_PREREQ
+ (4,0)
+
+250 
+	#signb™
+(
+x
+) \
+
+251 ( (
+x
+) ==  () \
+
+252 ? 
+	`__bužtš_signb™f
+ (
+x
+) \
+
+253 :  (
+x
+) ==  () \
+
+254 ? 
+	`__bužtš_signb™
+ (
+x
+è: 
+	`__bužtš_signb™l
+ (x))
+
+	)
+
+256 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+257 
+	#signb™
+(
+x
+) \
+
+258 ( (
+x
+è=ð (è? 
+	`__signb™f
+ (xè: 
+	`__signb™
+ (x))
+
+	)
+
+260 
+	#signb™
+(
+x
+) \
+
+261 ( (
+x
+) ==  () \
+
+262 ? 
+	`__signb™f
+ (
+x
+) \
+
+263 :  (
+x
+) ==  () \
+
+264 ? 
+	`__signb™
+ (
+x
+è: 
+	`__signb™l
+ (x))
+
+	)
+
+269 #ià
+	`__GNUC_PREREQ
+ (4,4è&& !
+defšed
+ 
+__SUPPORT_SNAN__
+
+
+270 
+	#isfš™e
+(
+x
+è
+	`__bužtš_isfš™e
+ (x)
+
+	)
+
+271 #–ià
+defšed
+ 
+__NO_LONG_DOUBLE_MATH
+
+
+272 
+	#isfš™e
+(
+x
+) \
+
+273 ( (
+x
+è=ð (è? 
+	`__fš™ef
+ (xè: 
+	`__fš™e
+ (x))
+
+	)
+
+275 
+	#isfš™e
+(
+x
+) \
+
+276 ( (
+x
+) ==  () \
+
+277 ? 
+	`__fš™ef
+ (
+x
+) \
+
+278 :  (
+x
+) ==  () \
+
+279 ? 
+	`__fš™e
+ (
+x
+è: 
+	`__fš™–
+ (x))
+
+	)
+
+283 #ià
+	`__GNUC_PREREQ
+ (4,4è&& !
+defšed
+ 
+__SUPPORT_SNAN__
+
+
+284 
+	#i¢Üm®
+(
+x
+è
+	`__bužtš_i¢Üm®
+ (x)
+
+	)
+
+286 
+	#i¢Üm®
+(
+x
+è(
+	`åþassify
+ (xè=ð
+FP_NORMAL
+)
+
+	)
+
+291 #ià
+	`__GNUC_PREREQ
+ (4,4è&& !
+defšed
+ 
+__SUPPORT_SNAN__
+
+
+292 
+	#i¢ª
+(
+x
+è
+	`__bužtš_i¢ª
+ (x)
+
+	)
+
+293 #–ià
+defšed
+ 
+__NO_LONG_DOUBLE_MATH
+
+
+294 
+	#i¢ª
+(
+x
+) \
+
+295 ( (
+x
+è=ð (è? 
+	`__i¢ªf
+ (xè: 
+	`__i¢ª
+ (x))
+
+	)
+
+297 
+	#i¢ª
+(
+x
+) \
+
+298 ( (
+x
+) ==  () \
+
+299 ? 
+	`__i¢ªf
+ (
+x
+) \
+
+300 :  (
+x
+) ==  () \
+
+301 ? 
+	`__i¢ª
+ (
+x
+è: 
+	`__i¢ªl
+ (x))
+
+	)
+
+305 #ià
+	`__GNUC_PREREQ
+ (4,4è&& !
+defšed
+ 
+__SUPPORT_SNAN__
+
+
+306 
+	#isšf
+(
+x
+è
+	`__bužtš_isšf_sign
+ (x)
+
+	)
+
+307 #–ià
+defšed
+ 
+__NO_LONG_DOUBLE_MATH
+
+
+308 
+	#isšf
+(
+x
+) \
+
+309 ( (
+x
+è=ð (è? 
+	`__isšff
+ (xè: 
+	`__isšf
+ (x))
+
+	)
+
+311 
+	#isšf
+(
+x
+) \
+
+312 ( (
+x
+) ==  () \
+
+313 ? 
+	`__isšff
+ (
+x
+) \
+
+314 :  (
+x
+) ==  () \
+
+315 ? 
+	`__isšf
+ (
+x
+è: 
+	`__isšæ
+ (x))
+
+	)
+
+319 
+	#MATH_ERRNO
+ 1
+
+	)
+
+320 
+	#MATH_ERREXCEPT
+ 2
+
+	)
+
+325 #iâdeà
+__FAST_MATH__
+
+
+326 
+	#m©h_”rhªdlšg
+ (
+MATH_ERRNO
+ | 
+MATH_ERREXCEPT
+)
+
+	)
+
+331 #ifdeà
+__USE_GNU
+
+
+333 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+334 
+	#issigÇlšg
+(
+x
+) \
+
+335 ( (
+x
+è=ð (è? 
+	`__issigÇlšgf
+ (xè: 
+	`__issigÇlšg
+ (x))
+
+	)
+
+337 
+	#issigÇlšg
+(
+x
+) \
+
+338 ( (
+x
+) ==  () \
+
+339 ? 
+	`__issigÇlšgf
+ (
+x
+) \
+
+340 :  (
+x
+) ==  () \
+
+341 ? 
+	`__issigÇlšg
+ (
+x
+è: 
+	`__issigÇlšgl
+ (x))
+
+	)
+
+345 #ifdef 
+__USE_MISC
+
+
+349 
+_IEEE_
+ = -1,
+
+350 
+_SVID_
+,
+
+351 
+_XOPEN_
+,
+
+352 
+_POSIX_
+,
+
+353 
+_ISOC_
+
+
+354 } 
+	t_LIB_VERSION_TYPE
+;
+
+359 
+_LIB_VERSION_TYPE
+ 
+_LIB_VERSION
+;
+
+363 #ifdeà
+__USE_MISC
+
+
+369 #ifdeà
+__ýlu¥lus
+
+
+370 
+__exû±iÚ
+
+
+372 
+exû±iÚ
+
+
+375 
+ty³
+;
+
+376 *
+Çme
+;
+
+377 
+¬g1
+;
+
+378 
+¬g2
+;
+
+379 
+»tv®
+;
+
+380 
+	}
+};
+
+382 #ifdeà
+__ýlu¥lus
+
+
+383 

+	$m©h”r
+ (
+__exû±iÚ
+ *
+__exc
+è
+	`throw
+ ();
+
+385 

+	`m©h”r
+ (
+exû±iÚ
+ *
+__exc
+);
+
+388 
+	#X_TLOSS
+ 1.41484755040568800000e+16
+
+	)
+
+391 
+	#DOMAIN
+ 1
+
+	)
+
+392 
+	#SING
+ 2
+
+	)
+
+393 
+	#OVERFLOW
+ 3
+
+	)
+
+394 
+	#UNDERFLOW
+ 4
+
+	)
+
+395 
+	#TLOSS
+ 5
+
+	)
+
+396 
+	#PLOSS
+ 6
+
+	)
+
+399 
+	#HUGE
+ 3.40282347e+38F
+
+	)
+
+403 #ifdeà
+__USE_XOPEN
+
+
+405 
+	#MAXFLOAT
+ 3.40282347e+38F
+
+	)
+
+412 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+413 
+	#M_E
+ 2.7182818284590452354
+
+	)
+
+414 
+	#M_LOG2E
+ 1.4426950408889634074
+
+	)
+
+415 
+	#M_LOG10E
+ 0.43429448190325182765
+
+	)
+
+416 
+	#M_LN2
+ 0.69314718055994530942
+
+	)
+
+417 
+	#M_LN10
+ 2.30258509299404568402
+
+	)
+
+418 
+	#M_PI
+ 3.14159265358979323846
+
+	)
+
+419 
+	#M_PI_2
+ 1.57079632679489661923
+
+	)
+
+420 
+	#M_PI_4
+ 0.78539816339744830962
+
+	)
+
+421 
+	#M_1_PI
+ 0.31830988618379067154
+
+	)
+
+422 
+	#M_2_PI
+ 0.63661977236758134308
+
+	)
+
+423 
+	#M_2_SQRTPI
+ 1.12837916709551257390
+
+	)
+
+424 
+	#M_SQRT2
+ 1.41421356237309504880
+
+	)
+
+425 
+	#M_SQRT1_2
+ 0.70710678118654752440
+
+	)
+
+431 #ifdeà
+__USE_GNU
+
+
+432 
+	#M_El
+ 2.718281828459045235360287471352662498L
+
+	)
+
+433 
+	#M_LOG2El
+ 1.442695040888963407359924681001892137L
+
+	)
+
+434 
+	#M_LOG10El
+ 0.434294481903251827651128918916605082L
+
+	)
+
+435 
+	#M_LN2l
+ 0.693147180559945309417232121458176568L
+
+	)
+
+436 
+	#M_LN10l
+ 2.302585092994045684017991454684364208L
+
+	)
+
+437 
+	#M_PIl
+ 3.141592653589793238462643383279502884L
+
+	)
+
+438 
+	#M_PI_2l
+ 1.570796326794896619231321691639751442L
+
+	)
+
+439 
+	#M_PI_4l
+ 0.785398163397448309615660845819875721L
+
+	)
+
+440 
+	#M_1_PIl
+ 0.318309886183790671537767526745028724L
+
+	)
+
+441 
+	#M_2_PIl
+ 0.636619772367581343075535053490057448L
+
+	)
+
+442 
+	#M_2_SQRTPIl
+ 1.128379167095512573896158903121545172L
+
+	)
+
+443 
+	#M_SQRT2l
+ 1.414213562373095048801688724209698079L
+
+	)
+
+444 
+	#M_SQRT1_2l
+ 0.707106781186547524400844362104849039L
+
+	)
+
+451 #ià
+defšed
+ 
+__STRICT_ANSI__
+ && !defšed 
+__NO_MATH_INLINES
+
+
+452 
+	#__NO_MATH_INLINES
+ 1
+
+	)
+
+455 #ià
+defšed
+ 
+__USE_ISOC99
+ && 
+	`__GNUC_PREREQ
+(2,97)
+
+462 
+	#isg»©”
+(
+x
+, 
+y
+è
+	`__bužtš_isg»©”
+(x, y)
+
+	)
+
+463 
+	#isg»©”equ®
+(
+x
+, 
+y
+è
+	`__bužtš_isg»©”equ®
+(x, y)
+
+	)
+
+464 
+	#i¦ess
+(
+x
+, 
+y
+è
+	`__bužtš_i¦ess
+(x, y)
+
+	)
+
+465 
+	#i¦es£qu®
+(
+x
+, 
+y
+è
+	`__bužtš_i¦es£qu®
+(x, y)
+
+	)
+
+466 
+	#i¦essg»©”
+(
+x
+, 
+y
+è
+	`__bužtš_i¦essg»©”
+(x, y)
+
+	)
+
+467 
+	#isunÜd”ed
+(
+u
+, 
+v
+è
+	`__bužtš_isunÜd”ed
+(u, v)
+
+	)
+
+471 #ifdeà
+__USE_EXTERN_INLINES
+
+
+472 
+	~<b™s/m©hšlše.h
+>
+
+477 #ià
+defšed
+ 
+__FINITE_MATH_ONLY__
+ && __FINITE_MATH_ONLY__ > 0
+
+478 
+	~<b™s/m©h-fš™e.h
+>
+
+481 #ifdeà
+__USE_ISOC99
+
+
+485 #iâdeà
+isg»©”
+
+
+486 
+	#isg»©”
+(
+x
+, 
+y
+) \
+
+487 (
+__ex‹nsiÚ__
+ \
+
+488 ({ 
+	`__ty³of__
+(
+x
+è
+__x
+ = (x); __ty³of__(
+y
+è
+__y
+ = (y); \
+
+489 !
+	`isunÜd”ed
+ (
+__x
+, 
+__y
+è&& __x > __y; 
+	}
+}))
+
+	)
+
+493 #iâdeà
+isg»©”equ®
+
+
+494 
+	#isg»©”equ®
+(
+x
+, 
+y
+) \
+
+495 (
+__ex‹nsiÚ__
+ \
+
+496 ({ 
+	`__ty³of__
+(
+x
+è
+__x
+ = (x); __ty³of__(
+y
+è
+__y
+ = (y); \
+
+497 !
+	`isunÜd”ed
+ (
+__x
+, 
+__y
+è&& __x >ð__y; }))
+
+	)
+
+501 #iâdeà
+i¦ess
+
+
+502 
+	#i¦ess
+(
+x
+, 
+y
+) \
+
+503 (
+__ex‹nsiÚ__
+ \
+
+504 ({ 
+	`__ty³of__
+(
+x
+è
+__x
+ = (x); __ty³of__(
+y
+è
+__y
+ = (y); \
+
+505 !
+	`isunÜd”ed
+ (
+__x
+, 
+__y
+è&& __x < __y; }))
+
+	)
+
+509 #iâdeà
+i¦es£qu®
+
+
+510 
+	#i¦es£qu®
+(
+x
+, 
+y
+) \
+
+511 (
+__ex‹nsiÚ__
+ \
+
+512 ({ 
+	`__ty³of__
+(
+x
+è
+__x
+ = (x); __ty³of__(
+y
+è
+__y
+ = (y); \
+
+513 !
+	`isunÜd”ed
+ (
+__x
+, 
+__y
+è&& __x <ð__y; }))
+
+	)
+
+517 #iâdeà
+i¦essg»©”
+
+
+518 
+	#i¦essg»©”
+(
+x
+, 
+y
+) \
+
+519 (
+__ex‹nsiÚ__
+ \
+
+520 ({ 
+	`__ty³of__
+(
+x
+è
+__x
+ = (x); __ty³of__(
+y
+è
+__y
+ = (y); \
+
+521 !
+	`isunÜd”ed
+ (
+__x
+, 
+__y
+è&& (__x < __y || __y < __x); }))
+
+	)
+
+525 #iâdeà
+isunÜd”ed
+
+
+526 
+	#isunÜd”ed
+(
+u
+, 
+v
+) \
+
+527 (
+__ex‹nsiÚ__
+ \
+
+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 
+	#_NETINET_IN_H
+ 1
+
+	)
+
+21 
+	~<ã©u»s.h
+>
+
+22 
+	~<¡dšt.h
+>
+
+23 
+	~<sys/sock‘.h
+>
+
+24 
+	~<b™s/ty³s.h
+>
+
+27 
+__BEGIN_DECLS
+
+
+30 
+ušt32_t
+ 
+	tš_addr_t
+;
+
+31 
+	sš_addr
+
+
+33 
+š_addr_t
+ 
+	ms_addr
+;
+
+37 
+	~<b™s/š.h
+>
+
+42 
+	mIPPROTO_IP
+ = 0,
+
+43 
+	#IPPROTO_IP
+ 
+IPPROTO_IP
+
+
+	)
+
+44 
+	mIPPROTO_ICMP
+ = 1,
+
+45 
+	#IPPROTO_ICMP
+ 
+IPPROTO_ICMP
+
+
+	)
+
+46 
+	mIPPROTO_IGMP
+ = 2,
+
+47 
+	#IPPROTO_IGMP
+ 
+IPPROTO_IGMP
+
+
+	)
+
+48 
+	mIPPROTO_IPIP
+ = 4,
+
+49 
+	#IPPROTO_IPIP
+ 
+IPPROTO_IPIP
+
+
+	)
+
+50 
+	mIPPROTO_TCP
+ = 6,
+
+51 
+	#IPPROTO_TCP
+ 
+IPPROTO_TCP
+
+
+	)
+
+52 
+	mIPPROTO_EGP
+ = 8,
+
+53 
+	#IPPROTO_EGP
+ 
+IPPROTO_EGP
+
+
+	)
+
+54 
+	mIPPROTO_PUP
+ = 12,
+
+55 
+	#IPPROTO_PUP
+ 
+IPPROTO_PUP
+
+
+	)
+
+56 
+	mIPPROTO_UDP
+ = 17,
+
+57 
+	#IPPROTO_UDP
+ 
+IPPROTO_UDP
+
+
+	)
+
+58 
+	mIPPROTO_IDP
+ = 22,
+
+59 
+	#IPPROTO_IDP
+ 
+IPPROTO_IDP
+
+
+	)
+
+60 
+	mIPPROTO_TP
+ = 29,
+
+61 
+	#IPPROTO_TP
+ 
+IPPROTO_TP
+
+
+	)
+
+62 
+	mIPPROTO_DCCP
+ = 33,
+
+63 
+	#IPPROTO_DCCP
+ 
+IPPROTO_DCCP
+
+
+	)
+
+64 
+	mIPPROTO_IPV6
+ = 41,
+
+65 
+	#IPPROTO_IPV6
+ 
+IPPROTO_IPV6
+
+
+	)
+
+66 
+	mIPPROTO_RSVP
+ = 46,
+
+67 
+	#IPPROTO_RSVP
+ 
+IPPROTO_RSVP
+
+
+	)
+
+68 
+	mIPPROTO_GRE
+ = 47,
+
+69 
+	#IPPROTO_GRE
+ 
+IPPROTO_GRE
+
+
+	)
+
+70 
+	mIPPROTO_ESP
+ = 50,
+
+71 
+	#IPPROTO_ESP
+ 
+IPPROTO_ESP
+
+
+	)
+
+72 
+	mIPPROTO_AH
+ = 51,
+
+73 
+	#IPPROTO_AH
+ 
+IPPROTO_AH
+
+
+	)
+
+74 
+	mIPPROTO_MTP
+ = 92,
+
+75 
+	#IPPROTO_MTP
+ 
+IPPROTO_MTP
+
+
+	)
+
+76 
+	mIPPROTO_BEETPH
+ = 94,
+
+77 
+	#IPPROTO_BEETPH
+ 
+IPPROTO_BEETPH
+
+
+	)
+
+78 
+	mIPPROTO_ENCAP
+ = 98,
+
+79 
+	#IPPROTO_ENCAP
+ 
+IPPROTO_ENCAP
+
+
+	)
+
+80 
+	mIPPROTO_PIM
+ = 103,
+
+81 
+	#IPPROTO_PIM
+ 
+IPPROTO_PIM
+
+
+	)
+
+82 
+	mIPPROTO_COMP
+ = 108,
+
+83 
+	#IPPROTO_COMP
+ 
+IPPROTO_COMP
+
+
+	)
+
+84 
+	mIPPROTO_SCTP
+ = 132,
+
+85 
+	#IPPROTO_SCTP
+ 
+IPPROTO_SCTP
+
+
+	)
+
+86 
+	mIPPROTO_UDPLITE
+ = 136,
+
+87 
+	#IPPROTO_UDPLITE
+ 
+IPPROTO_UDPLITE
+
+
+	)
+
+88 
+	mIPPROTO_MPLS
+ = 137,
+
+89 
+	#IPPROTO_MPLS
+ 
+IPPROTO_MPLS
+
+
+	)
+
+90 
+	mIPPROTO_RAW
+ = 255,
+
+91 
+	#IPPROTO_RAW
+ 
+IPPROTO_RAW
+
+
+	)
+
+92 
+	mIPPROTO_MAX
+
+
+98 #iâdeà
+__USE_KERNEL_IPV6_DEFS
+
+
+101 
+	mIPPROTO_HOPOPTS
+ = 0,
+
+102 
+	#IPPROTO_HOPOPTS
+ 
+IPPROTO_HOPOPTS
+
+
+	)
+
+103 
+	mIPPROTO_ROUTING
+ = 43,
+
+104 
+	#IPPROTO_ROUTING
+ 
+IPPROTO_ROUTING
+
+
+	)
+
+105 
+	mIPPROTO_FRAGMENT
+ = 44,
+
+106 
+	#IPPROTO_FRAGMENT
+ 
+IPPROTO_FRAGMENT
+
+
+	)
+
+107 
+	mIPPROTO_ICMPV6
+ = 58,
+
+108 
+	#IPPROTO_ICMPV6
+ 
+IPPROTO_ICMPV6
+
+
+	)
+
+109 
+	mIPPROTO_NONE
+ = 59,
+
+110 
+	#IPPROTO_NONE
+ 
+IPPROTO_NONE
+
+
+	)
+
+111 
+	mIPPROTO_DSTOPTS
+ = 60,
+
+112 
+	#IPPROTO_DSTOPTS
+ 
+IPPROTO_DSTOPTS
+
+
+	)
+
+113 
+	mIPPROTO_MH
+ = 135
+
+114 
+	#IPPROTO_MH
+ 
+IPPROTO_MH
+
+
+	)
+
+119 
+ušt16_t
+ 
+	tš_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 
+	#IN_CLASSA
+(
+a
+è((((
+š_addr_t
+)×)è& 0x80000000è=ð0)
+
+	)
+
+167 
+	#IN_CLASSA_NET
+ 0xff000000
+
+	)
+
+168 
+	#IN_CLASSA_NSHIFT
+ 24
+
+	)
+
+169 
+	#IN_CLASSA_HOST
+ (0xfffffffà& ~
+IN_CLASSA_NET
+)
+
+	)
+
+170 
+	#IN_CLASSA_MAX
+ 128
+
+	)
+
+172 
+	#IN_CLASSB
+(
+a
+è((((
+š_addr_t
+)×)è& 0xc0000000è=ð0x80000000)
+
+	)
+
+173 
+	#IN_CLASSB_NET
+ 0xffff0000
+
+	)
+
+174 
+	#IN_CLASSB_NSHIFT
+ 16
+
+	)
+
+175 
+	#IN_CLASSB_HOST
+ (0xfffffffà& ~
+IN_CLASSB_NET
+)
+
+	)
+
+176 
+	#IN_CLASSB_MAX
+ 65536
+
+	)
+
+178 
+	#IN_CLASSC
+(
+a
+è((((
+š_addr_t
+)×)è& 0xe0000000è=ð0xc0000000)
+
+	)
+
+179 
+	#IN_CLASSC_NET
+ 0xffffff00
+
+	)
+
+180 
+	#IN_CLASSC_NSHIFT
+ 8
+
+	)
+
+181 
+	#IN_CLASSC_HOST
+ (0xfffffffà& ~
+IN_CLASSC_NET
+)
+
+	)
+
+183 
+	#IN_CLASSD
+(
+a
+è((((
+š_addr_t
+)×)è& 0xf0000000è=ð0xe0000000)
+
+	)
+
+184 
+	#IN_MULTICAST
+(
+a
+è
+	`IN_CLASSD
+×)
+
+	)
+
+186 
+	#IN_EXPERIMENTAL
+(
+a
+è((((
+š_addr_t
+)×)è& 0xe0000000è=ð0xe0000000)
+
+	)
+
+187 
+	#IN_BADCLASS
+(
+a
+è((((
+š_addr_t
+)×)è& 0xf0000000è=ð0xf0000000)
+
+	)
+
+190 
+	#INADDR_ANY
+ ((
+š_addr_t
+è0x00000000)
+
+	)
+
+192 
+	#INADDR_BROADCAST
+ ((
+š_addr_t
+è0xffffffff)
+
+	)
+
+194 
+	#INADDR_NONE
+ ((
+š_addr_t
+è0xffffffff)
+
+	)
+
+197 
+	#IN_LOOPBACKNET
+ 127
+
+	)
+
+199 #iâdeà
+INADDR_LOOPBACK
+
+
+200 
+	#INADDR_LOOPBACK
+ ((
+š_addr_t
+è0x7f000001è
+
+	)
+
+204 
+	#INADDR_UNSPEC_GROUP
+ ((
+š_addr_t
+è0xe0000000è
+
+	)
+
+205 
+	#INADDR_ALLHOSTS_GROUP
+ ((
+š_addr_t
+è0xe0000001è
+
+	)
+
+206 
+	#INADDR_ALLRTRS_GROUP
+ ((
+š_addr_t
+è0xe0000002è
+
+	)
+
+207 
+	#INADDR_MAX_LOCAL_GROUP
+ ((
+š_addr_t
+è0xe00000ffè
+
+	)
+
+209 #iâdeà
+__USE_KERNEL_IPV6_DEFS
+
+
+211 
+	sš6_addr
+
+
+215 
+ušt8_t
+ 
+	m__u6_addr8
+[16];
+
+216 #ifdeà
+__USE_MISC
+
+
+217 
+ušt16_t
+ 
+	m__u6_addr16
+[8];
+
+218 
+ušt32_t
+ 
+	m__u6_addr32
+[4];
+
+220 } 
+	m__š6_u
+;
+
+221 
+	#s6_addr
+ 
+__š6_u
+.
+__u6_addr8
+
+
+	)
+
+222 #ifdeà
+__USE_MISC
+
+
+223 
+	#s6_addr16
+ 
+__š6_u
+.
+__u6_addr16
+
+
+	)
+
+224 
+	#s6_addr32
+ 
+__š6_u
+.
+__u6_addr32
+
+
+	)
+
+229 
cÚ¡ 
+š6_addr
+ 
+š6addr_ªy
+;
+
+230 
cÚ¡ 
+š6_addr
+ 
+š6addr_loÝback
+;
+
+231 
+	#IN6ADDR_ANY_INIT
+ { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }
+
+	)
+
+232 
+	#IN6ADDR_LOOPBACK_INIT
+ { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }
+
+	)
+
+234 
+	#INET_ADDRSTRLEN
+ 16
+
+	)
+
+235 
+	#INET6_ADDRSTRLEN
+ 46
+
+	)
+
+239 
+	ssockaddr_š
+
+
+241 
+__SOCKADDR_COMMON
+ (
+sš_
+);
+
+242 
+š_pÜt_t
+ 
+	msš_pÜt
+;
+
+243 
+š_addr
+ 
+	msš_addr
+;
+
+246 
+	msš_z”o
+[ (
+sockaddr
+) -
+
+247 
+__SOCKADDR_COMMON_SIZE
+ -
+
+248  (
+š_pÜt_t
+) -
+
+249  (
+š_addr
+)];
+
+252 #iâdeà
+__USE_KERNEL_IPV6_DEFS
+
+
+254 
+	ssockaddr_š6
+
+
+256 
+__SOCKADDR_COMMON
+ (
+sš6_
+);
+
+257 
+š_pÜt_t
+ 
+	msš6_pÜt
+;
+
+258 
+ušt32_t
+ 
+	msš6_æowšfo
+;
+
+259 
+š6_addr
+ 
+	msš6_addr
+;
+
+260 
+ušt32_t
+ 
+	msš6_scÝe_id
+;
+
+264 #ifdeà
+__USE_MISC
+
+
+266 
+	s_m»q
+
+
+269 
+š_addr
+ 
+	mimr_muɟddr
+;
+
+272 
+š_addr
+ 
+	mimr_š‹rçû
+;
+
+275 
+	s_m»q_sourû
+
+
+278 
+š_addr
+ 
+	mimr_muɟddr
+;
+
+281 
+š_addr
+ 
+	mimr_š‹rçû
+;
+
+284 
+š_addr
+ 
+	mimr_sourûaddr
+;
+
+288 #iâdeà
+__USE_KERNEL_IPV6_DEFS
+
+
+290 
+	sv6_m»q
+
+
+293 
+š6_addr
+ 
+	mv6mr_muɟddr
+;
+
+296 
+	mv6mr_š‹rçû
+;
+
+300 #ifdeà
+__USE_MISC
+
+
+302 
+	sgroup_»q
+
+
+305 
+ušt32_t
+ 
+	mgr_š‹rçû
+;
+
+308 
+sockaddr_¡Üage
+ 
+	mgr_group
+;
+
+311 
+	sgroup_sourû_»q
+
+
+314 
+ušt32_t
+ 
+	mg¤_š‹rçû
+;
+
+317 
+sockaddr_¡Üage
+ 
+	mg¤_group
+;
+
+320 
+sockaddr_¡Üage
+ 
+	mg¤_sourû
+;
+
+325 
+	s_msfž‹r
+
+
+328 
+š_addr
+ 
+	mimsf_muɟddr
+;
+
+331 
+š_addr
+ 
+	mimsf_š‹rçû
+;
+
+334 
+ušt32_t
+ 
+	mimsf_fmode
+;
+
+337 
+ušt32_t
+ 
+	mimsf_num¤c
+;
+
+339 
+š_addr
+ 
+	mimsf_¦i¡
+[1];
+
+342 
+	#IP_MSFILTER_SIZE
+(
+num¤c
+è( (
+_msfž‹r
+) \
+
+343 -  (
+š_addr
+) \
+
+344 + (
+num¤c
+è*  (
+š_addr
+))
+
+	)
+
+346 
+	sgroup_fž‹r
+
+
+349 
+ušt32_t
+ 
+	mgf_š‹rçû
+;
+
+352 
+sockaddr_¡Üage
+ 
+	mgf_group
+;
+
+355 
+ušt32_t
+ 
+	mgf_fmode
+;
+
+358 
+ušt32_t
+ 
+	mgf_num¤c
+;
+
+360 
+sockaddr_¡Üage
+ 
+	mgf_¦i¡
+[1];
+
+363 
+	#GROUP_FILTER_SIZE
+(
+num¤c
+è( (
+group_fž‹r
+) \
+
+364 -  (
+sockaddr_¡Üage
+) \
+
+365 + ((
+num¤c
+) \
+
+366 *  (
+sockaddr_¡Üage
+)))
+
+	)
+
+376 
+ušt32_t
+ 
+	$Áohl
+ (
+ušt32_t
+ 
+__ÎÚg
+è
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+377 
+ušt16_t
+ 
+	$Áohs
+ (
+ušt16_t
+ 
+__ÃtshÜt
+)
+
+378 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+379 
+ušt32_t
+ 
+	$htÚl
+ (
+ušt32_t
+ 
+__ho¡lÚg
+)
+
+380 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+381 
+ušt16_t
+ 
+	$htÚs
+ (
+ušt16_t
+ 
+__ho¡shÜt
+)
+
+382 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+384 
+	~<’dŸn.h
+>
+
+387 
+	~<b™s/by‹sw­.h
+>
+
+389 #ifdeà
+__OPTIMIZE__
+
+
+393 #ià
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+396 
+	#Áohl
+(
+x
+è(x)
+
+	)
+
+397 
+	#Áohs
+(
+x
+è(x)
+
+	)
+
+398 
+	#htÚl
+(
+x
+è(x)
+
+	)
+
+399 
+	#htÚs
+(
+x
+è(x)
+
+	)
+
+401 #ià
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+402 
+	#Áohl
+(
+x
+è
+	`__bsw­_32
+ (x)
+
+	)
+
+403 
+	#Áohs
+(
+x
+è
+	`__bsw­_16
+ (x)
+
+	)
+
+404 
+	#htÚl
+(
+x
+è
+	`__bsw­_32
+ (x)
+
+	)
+
+405 
+	#htÚs
+(
+x
+è
+	`__bsw­_16
+ (x)
+
+	)
+
+410 #ifdeà
+__GNUC__
+
+
+411 
+	#IN6_IS_ADDR_UNSPECIFIED
+(
+a
+) \
+
+412 (
+__ex‹nsiÚ__
+ \
+
+413 ({ cÚ¡ 
+š6_addr
+ *
+__a
+ = (cÚ¡ š6_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 
+	#IN6_IS_ADDR_LOOPBACK
+(
+a
+) \
+
+420 (
+__ex‹nsiÚ__
+ \
+
+421 ({ cÚ¡ 
+š6_addr
+ *
+__a
+ = (cÚ¡ š6_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 
+	#IN6_IS_ADDR_LINKLOCAL
+(
+a
+) \
+
+428 (
+__ex‹nsiÚ__
+ \
+
+429 ({ cÚ¡ 
+š6_addr
+ *
+__a
+ = (cÚ¡ š6_add¸*è(
+a
+); \
+
+430 (
+__a
+->
+s6_addr32
+[0] & 
+	`htÚl
+ (0xffc00000)è=ðhtÚÈ(0xã800000); }))
+
+	)
+
+432 
+	#IN6_IS_ADDR_SITELOCAL
+(
+a
+) \
+
+433 (
+__ex‹nsiÚ__
+ \
+
+434 ({ cÚ¡ 
+š6_addr
+ *
+__a
+ = (cÚ¡ š6_add¸*è(
+a
+); \
+
+435 (
+__a
+->
+s6_addr32
+[0] & 
+	`htÚl
+ (0xffc00000)è=ðhtÚÈ(0xãc00000); }))
+
+	)
+
+437 
+	#IN6_IS_ADDR_V4MAPPED
+(
+a
+) \
+
+438 (
+__ex‹nsiÚ__
+ \
+
+439 ({ cÚ¡ 
+š6_addr
+ *
+__a
+ = (cÚ¡ š6_add¸*è(
+a
+); \
+
+440 
+__a
+->
+s6_addr32
+[0] == 0 \
+
+441 && 
+__a
+->
+s6_addr32
+[1] == 0 \
+
+442 && 
+__a
+->
+s6_addr32
+[2] =ð
+	`htÚl
+ (0xffff); }))
+
+	)
+
+444 
+	#IN6_IS_ADDR_V4COMPAT
+(
+a
+) \
+
+445 (
+__ex‹nsiÚ__
+ \
+
+446 ({ cÚ¡ 
+š6_addr
+ *
+__a
+ = (cÚ¡ š6_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 
+	#IN6_ARE_ADDR_EQUAL
+(
+a
+,
+b
+) \
+
+453 (
+__ex‹nsiÚ__
+ \
+
+454 ({ cÚ¡ 
+š6_addr
+ *
+__a
+ = (cÚ¡ š6_add¸*è(
+a
+); \
+
+455 cÚ¡ 
+š6_addr
+ *
+__b
+ = (cÚ¡ š6_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 
+	#IN6_IS_ADDR_UNSPECIFIED
+(
+a
+) \
+
+462 (((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[0] == 0 \
+
+463 && ((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[1] == 0 \
+
+464 && ((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[2] == 0 \
+
+465 && ((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[3] =ð0)
+
+	)
+
+467 
+	#IN6_IS_ADDR_LOOPBACK
+(
+a
+) \
+
+468 (((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[0] == 0 \
+
+469 && ((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[1] == 0 \
+
+470 && ((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[2] == 0 \
+
+471 && ((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[3] =ð
+	`htÚl
+ (1))
+
+	)
+
+473 
+	#IN6_IS_ADDR_LINKLOCAL
+(
+a
+) \
+
+474 ((((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[0] & 
+	`htÚl
+ (0xffc00000)) \
+
+475 =ð
+	`htÚl
+ (0xã800000))
+
+	)
+
+477 
+	#IN6_IS_ADDR_SITELOCAL
+(
+a
+) \
+
+478 ((((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[0] & 
+	`htÚl
+ (0xffc00000)) \
+
+479 =ð
+	`htÚl
+ (0xãc00000))
+
+	)
+
+481 
+	#IN6_IS_ADDR_V4MAPPED
+(
+a
+) \
+
+482 ((((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[0] == 0) \
+
+483 && (((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[1] == 0) \
+
+484 && (((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[2] =ð
+	`htÚl
+ (0xffff)))
+
+	)
+
+486 
+	#IN6_IS_ADDR_V4COMPAT
+(
+a
+) \
+
+487 ((((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[0] == 0) \
+
+488 && (((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[1] == 0) \
+
+489 && (((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[2] == 0) \
+
+490 && (
+	`Áohl
+ (((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[3]è> 1))
+
+	)
+
+492 
+	#IN6_ARE_ADDR_EQUAL
+(
+a
+,
+b
+) \
+
+493 ((((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[0] =ð((cÚ¡ ušt32_ˆ*è(
+b
+))[0]) \
+
+494 && (((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[1] =ð((cÚ¡ ušt32_ˆ*è(
+b
+))[1]) \
+
+495 && (((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[2] =ð((cÚ¡ ušt32_ˆ*è(
+b
+))[2]) \
+
+496 && (((cÚ¡ 
+ušt32_t
+ *è(
+a
+))[3] =ð((cÚ¡ ušt32_ˆ*è(
+b
+))[3]))
+
+	)
+
+499 
+	#IN6_IS_ADDR_MULTICAST
+(
+a
+è(((cÚ¡ 
+ušt8_t
+ *è×))[0] =ð0xff)
+
+	)
+
+501 #ifdeà
+__USE_MISC
+
+
+503 

+	$bšd»svpÜt
+ (
+__sockfd
+, 
+sockaddr_š
+ *
+__sock_š
+è
+__THROW
+;
+
+506 

+	$bšd»svpÜt6
+ (
+__sockfd
+, 
+sockaddr_š6
+ *
+__sock_š
+)
+
+507 
+__THROW
+;
+
+511 
+	#IN6_IS_ADDR_MC_NODELOCAL
+(
+a
+) \
+
+512 (
+	`IN6_IS_ADDR_MULTICAST
+(
+a
+) \
+
+513 && ((((cÚ¡ 
+ušt8_t
+ *è(
+a
+))[1] & 0xfè=ð0x1))
+
+	)
+
+515 
+	#IN6_IS_ADDR_MC_LINKLOCAL
+(
+a
+) \
+
+516 (
+	`IN6_IS_ADDR_MULTICAST
+(
+a
+) \
+
+517 && ((((cÚ¡ 
+ušt8_t
+ *è(
+a
+))[1] & 0xfè=ð0x2))
+
+	)
+
+519 
+	#IN6_IS_ADDR_MC_SITELOCAL
+(
+a
+) \
+
+520 (
+	`IN6_IS_ADDR_MULTICAST
+(
+a
+) \
+
+521 && ((((cÚ¡ 
+ušt8_t
+ *è(
+a
+))[1] & 0xfè=ð0x5))
+
+	)
+
+523 
+	#IN6_IS_ADDR_MC_ORGLOCAL
+(
+a
+) \
+
+524 (
+	`IN6_IS_ADDR_MULTICAST
+(
+a
+) \
+
+525 && ((((cÚ¡ 
+ušt8_t
+ *è(
+a
+))[1] & 0xfè=ð0x8))
+
+	)
+
+527 
+	#IN6_IS_ADDR_MC_GLOBAL
+(
+a
+) \
+
+528 (
+	`IN6_IS_ADDR_MULTICAST
+(
+a
+) \
+
+529 && ((((cÚ¡ 
+ušt8_t
+ *è(
+a
+))[1] & 0xfè=ð0xe))
+
+	)
+
+532 #ifdeà
+__USE_GNU
+
+
+533 
+cmsghdr
+;
+
+535 #iâdeà
+__USE_KERNEL_IPV6_DEFS
+
+
+537 
+	sš6_pktšfo
+
+
+539 
+š6_addr
+ 
+i6_addr
+;
+
+540 
+i6_ifšdex
+;
+
+544 
+	s6_mtušfo
+
+
+546 
+sockaddr_š6
+ 
+6m_addr
+;
+
+547 
+ušt32_t
+ 
+6m_mtu
+;
+
+552 

+	$š‘6_ÝtiÚ_¥aû
+ (
+__nby‹s
+)
+
+553 
+__THROW
+ 
+__©Œibu‹_d•»ÿ‹d__
+;
+
+554 

+	$š‘6_ÝtiÚ_š™
+ (*
+__bp
+, 
+cmsghdr
+ **
+__cmsgp
+,
+
+555 
+__ty³
+è
+__THROW
+ 
+__©Œibu‹_d•»ÿ‹d__
+;
+
+556 

+	$š‘6_ÝtiÚ_­³nd
+ (
+cmsghdr
+ *
+__cmsg
+,
+
+557 cÚ¡ 
+ušt8_t
+ *
+__ty³p
+, 
+__muÉx
+,
+
+558 
+__¶usy
+è
+__THROW
+ 
+__©Œibu‹_d•»ÿ‹d__
+;
+
+559 
+ušt8_t
+ *
+	$š‘6_ÝtiÚ_®loc
+ (
+cmsghdr
+ *
+__cmsg
+, 
+__d©®’
+,
+
+560 
+__muÉx
+, 
+__¶usy
+)
+
+561 
+__THROW
+ 
+__©Œibu‹_d•»ÿ‹d__
+;
+
+562 

+	$š‘6_ÝtiÚ_Ãxt
+ (cÚ¡ 
+cmsghdr
+ *
+__cmsg
+,
+
+563 
+ušt8_t
+ **
+__Œp
+)
+
+564 
+__THROW
+ 
+__©Œibu‹_d•»ÿ‹d__
+;
+
+565 

+	$š‘6_ÝtiÚ_fšd
+ (cÚ¡ 
+cmsghdr
+ *
+__cmsg
+,
+
+566 
+ušt8_t
+ **
+__Œp
+, 
+__ty³
+)
+
+567 
+__THROW
+ 
+__©Œibu‹_d•»ÿ‹d__
+;
+
+571 

+	$š‘6_Ýt_š™
+ (*
+__extbuf
+, 
+sockËn_t
+ 
+__exŽ’
+è
+__THROW
+;
+
+572 

+	$š‘6_Ýt_­³nd
+ (*
+__extbuf
+, 
+sockËn_t
+ 
+__exŽ’
+, 
+__off£t
+,
+
+573 
+ušt8_t
+ 
+__ty³
+, 
+sockËn_t
+ 
+__Ën
+, ušt8_ˆ
+__®ign
+,
+
+574 **
+__d©abuå
+è
+__THROW
+;
+
+575 

+	$š‘6_Ýt_fšish
+ (*
+__extbuf
+, 
+sockËn_t
+ 
+__exŽ’
+, 
+__off£t
+)
+
+576 
+__THROW
+;
+
+577 

+	$š‘6_Ýt_£t_v®
+ (*
+__d©abuf
+, 
+__off£t
+, *
+__v®
+,
+
+578 
+sockËn_t
+ 
+__v®Ën
+è
+__THROW
+;
+
+579 

+	$š‘6_Ýt_Ãxt
+ (*
+__extbuf
+, 
+sockËn_t
+ 
+__exŽ’
+, 
+__off£t
+,
+
+580 
+ušt8_t
+ *
+__ty³p
+, 
+sockËn_t
+ *
+__ËÅ
+,
+
+581 **
+__d©abuå
+è
+__THROW
+;
+
+582 

+	$š‘6_Ýt_fšd
+ (*
+__extbuf
+, 
+sockËn_t
+ 
+__exŽ’
+, 
+__off£t
+,
+
+583 
+ušt8_t
+ 
+__ty³
+, 
+sockËn_t
+ *
+__ËÅ
+,
+
+584 **
+__d©abuå
+è
+__THROW
+;
+
+585 

+	$š‘6_Ýt_g‘_v®
+ (*
+__d©abuf
+, 
+__off£t
+, *
+__v®
+,
+
+586 
+sockËn_t
+ 
+__v®Ën
+è
+__THROW
+;
+
+590 
+sockËn_t
+ 
+	$š‘6_¹h_¥aû
+ (
+__ty³
+, 
+__£gm’ts
+è
+__THROW
+;
+
+591 
*
+	$š‘6_¹h_š™
+ (*
+__bp
+, 
+sockËn_t
+ 
+__bp_Ën
+, 
+__ty³
+,
+
+592 
+__£gm’ts
+è
+__THROW
+;
+
+593 

+	$š‘6_¹h_add
+ (*
+__bp
+, cÚ¡ 
+š6_addr
+ *
+__addr
+è
+__THROW
+;
+
+594 

+	$š‘6_¹h_»v”£
+ (cÚ¡ *
+__š
+, *
+__out
+è
+__THROW
+;
+
+595 

+	$š‘6_¹h_£gm’ts
+ (cÚ¡ *
+__bp
+è
+__THROW
+;
+
+596 

+š6_addr
+ *
+	$š‘6_¹h_g‘addr
+ (cÚ¡ *
+__bp
+, 
+__šdex
+)
+
+597 
+__THROW
+;
+
+603 

+	$g‘v4sourûfž‹r
+ (
+__s
+, 
+š_addr
+ 
+__š‹rçû_addr
+,
+
+604 
+š_addr
+ 
+__group
+, 
+ušt32_t
+ *
+__fmode
+,
+
+605 
+ušt32_t
+ *
+__num¤c
+, 
+š_addr
+ *
+__¦i¡
+)
+
+606 
+__THROW
+;
+
+609 

+	$£tv4sourûfž‹r
+ (
+__s
+, 
+š_addr
+ 
+__š‹rçû_addr
+,
+
+610 
+š_addr
+ 
+__group
+, 
+ušt32_t
+ 
+__fmode
+,
+
+611 
+ušt32_t
+ 
+__num¤c
+,
+
+612 cÚ¡ 
+š_addr
+ *
+__¦i¡
+)
+
+613 
+__THROW
+;
+
+617 

+	$g‘sourûfž‹r
+ (
+__s
+, 
+ušt32_t
+ 
+__š‹rçû_addr
+,
+
+618 cÚ¡ 
+sockaddr
+ *
+__group
+,
+
+619 
+sockËn_t
+ 
+__grou¶’
+, 
+ušt32_t
+ *
+__fmode
+,
+
+620 
+ušt32_t
+ *
+__num¤c
+,
+
+621 
+sockaddr_¡Üage
+ *
+__¦i¡
+è
+__THROW
+;
+
+624 

+	$£tsourûfž‹r
+ (
+__s
+, 
+ušt32_t
+ 
+__š‹rçû_addr
+,
+
+625 cÚ¡ 
+sockaddr
+ *
+__group
+,
+
+626 
+sockËn_t
+ 
+__grou¶’
+, 
+ušt32_t
+ 
+__fmode
+,
+
+627 
+ušt32_t
+ 
+__num¤c
+,
+
+628 cÚ¡ 
+sockaddr_¡Üage
+ *
+__¦i¡
+è
+__THROW
+;
+
+631 
+__END_DECLS
+
+
+	@/usr/include/setjmp.h
+
+22 #iâdef 
+_SETJMP_H
+
+
+23 
+	#_SETJMP_H
+ 1
+
+	)
+
+25 
+	~<ã©u»s.h
+>
+
+27 
+	g__BEGIN_DECLS
+
+
+29 
+	~<b™s/£tjmp.h
+>
+
+30 
+	~<b™s/sig£t.h
+>
+
+34 
+	s__jmp_buf_g
+
+
+40 
+__jmp_buf
+ 
+	m__jmpbuf
+;
+
+41 
+	m__mask_was_§ved
+;
+
+42 
+__sig£t_t
+ 
+	m__§ved_mask
+;
+
+46 
+__BEGIN_NAMESPACE_STD
+
+
+48 
+__jmp_buf_g
+ 
+	tjmp_buf
+[1];
+
+52 

+	$£tjmp
+ (
+jmp_buf
+ 
+__’v
+è
+__THROWNL
+;
+
+54 
+__END_NAMESPACE_STD
+
+
+59 

+	$__sig£tjmp
+ (
+__jmp_buf_g
+ 
+__’v
+[1], 
+__§vemask
+è
+__THROWNL
+;
+
+63 

+	$_£tjmp
+ (
+__jmp_buf_g
+ 
+__’v
+[1]è
+__THROWNL
+;
+
+67 
+	#£tjmp
+(
+’v
+è
+	`_£tjmp
+ (’v)
+
+	)
+
+70 
+__BEGIN_NAMESPACE_STD
+
+
+74 

+	$lÚgjmp
+ (
+__jmp_buf_g
+ 
+__’v
+[1], 
+__v®
+)
+
+75 
+__THROWNL
+ 
+	`__©Œibu‹__
+ ((
+__nܑuº__
+));
+
+77 
+__END_NAMESPACE_STD
+
+
+79 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+83 

+	$_lÚgjmp
+ (
+__jmp_buf_g
+ 
+__’v
+[1], 
+__v®
+)
+
+84 
+__THROWNL
+ 
+	`__©Œibu‹__
+ ((
+__nܑuº__
+));
+
+88 #ifdef 
+__USE_POSIX
+
+
+92 
+__jmp_buf_g
+ 
+	tsigjmp_buf
+[1];
+
+96 
+	#sig£tjmp
+(
+’v
+, 
+§vemask
+è
+	`__sig£tjmp
+ (’v, savemask)
+
+	)
+
+102 

+	$siglÚgjmp
+ (
+sigjmp_buf
+ 
+__’v
+, 
+__v®
+)
+
+103 
+__THROWNL
+ 
+	`__©Œibu‹__
+ ((
+__nܑuº__
+));
+
+108 #ià
+__USE_FORTIFY_LEVEL
+ > 0
+
+109 
+	~<b™s/£tjmp2.h
+>
+
+112 
+__END_DECLS
+
+
+	@/usr/include/signal.h
+
+22 #iâdef 
+_SIGNAL_H
+
+
+24 #ià!
+defšed
+ 
+__Ãed_sig_©omic_t
+ && !defšed 
+__Ãed_sig£t_t
+
+
+25 
+	#_SIGNAL_H
+
+
+	)
+
+28 
+	~<ã©u»s.h
+>
+
+30 
+	g__BEGIN_DECLS
+
+
+32 
+	~<b™s/sig£t.h
+>
+
+36 #ià
+defšed
+ 
+__Ãed_sig_©omic_t
+ || defšed 
+_SIGNAL_H
+
+
+37 #iâdeà
+__sig_©omic_t_defšed
+
+
+38 
+	#__sig_©omic_t_defšed
+
+
+	)
+
+39 
+__BEGIN_NAMESPACE_STD
+
+
+40 
+__sig_©omic_t
+ 
+	tsig_©omic_t
+;
+
+41 
+	g__END_NAMESPACE_STD
+
+
+43 #undeà
+__Ãed_sig_©omic_t
+
+
+46 #ià
+defšed
+ 
+__Ãed_sig£t_t
+ || (defšed 
+_SIGNAL_H
+ && defšed 
+__USE_POSIX
+)
+
+47 #iâdeà
+__sig£t_t_defšed
+
+
+48 
+	#__sig£t_t_defšed
+
+
+	)
+
+49 
+__sig£t_t
+ 
+	tsig£t_t
+;
+
+51 #undeà
+__Ãed_sig£t_t
+
+
+54 #ifdeà
+_SIGNAL_H
+
+
+56 
+	~<b™s/ty³s.h
+>
+
+57 
+	~<b™s/signum.h
+>
+
+59 #ià
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_XOPEN2K
+
+
+60 #iâdeà
+__pid_t_defšed
+
+
+61 
+__pid_t
+ 
+	tpid_t
+;
+
+62 
+	#__pid_t_defšed
+
+
+	)
+
+64 #ifdeà
+__USE_XOPEN
+
+
+66 #iâdeà
+__uid_t_defšed
+
+
+67 
+__uid_t
+ 
+	tuid_t
+;
+
+68 
+	#__uid_t_defšed
+
+
+	)
+
+72 #ifdeà
+__USE_POSIX199309
+
+
+74 
+	#__Ãed_time¥ec
+
+
+	)
+
+75 
+	~<time.h
+>
+
+78 #ià
+defšed
+ 
+__USE_POSIX199309
+ || defšed 
+__USE_XOPEN_EXTENDED
+
+
+80 
+	~<b™s/sigšfo.h
+>
+
+85 (*
+	t__sighªdËr_t
+) ();
+
+90 
+__sighªdËr_t
+ 
+	$__sysv_sigÇl
+ (
+__sig
+, 
+__sighªdËr_t
+ 
+__hªdËr
+)
+
+91 
+__THROW
+;
+
+92 #ifdeà
+__USE_GNU
+
+
+93 
+__sighªdËr_t
+ 
+	$sysv_sigÇl
+ (
+__sig
+, 
+__sighªdËr_t
+ 
+__hªdËr
+)
+
+94 
+__THROW
+;
+
+100 
+__BEGIN_NAMESPACE_STD
+
+
+101 #ifdeà
+__USE_MISC
+
+
+102 
+__sighªdËr_t
+ 
+	$sigÇl
+ (
+__sig
+, 
+__sighªdËr_t
+ 
+__hªdËr
+)
+
+103 
+__THROW
+;
+
+106 #ifdeà
+__REDIRECT_NTH
+
+
+107 
+__sighªdËr_t
+ 
+	`__REDIRECT_NTH
+ (
+sigÇl
+,
+
+108 (
+__sig
+, 
+__sighªdËr_t
+ 
+__hªdËr
+),
+
+109 
+__sysv_sigÇl
+);
+
+111 
+	#sigÇl
+ 
+__sysv_sigÇl
+
+
+	)
+
+114 
+__END_NAMESPACE_STD
+
+
+116 #ifdeà
+__USE_XOPEN
+
+
+119 
+__sighªdËr_t
+ 
+	$bsd_sigÇl
+ (
+__sig
+, 
+__sighªdËr_t
+ 
+__hªdËr
+)
+
+120 
+__THROW
+;
+
+126 #ifdeà
+__USE_POSIX
+
+
+127 

+	$kžl
+ (
+__pid_t
+ 
+__pid
+, 
+__sig
+è
+__THROW
+;
+
+130 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN_EXTENDED
+
+
+134 

+	$kžÍg
+ (
+__pid_t
+ 
+__pg½
+, 
+__sig
+è
+__THROW
+;
+
+137 
+__BEGIN_NAMESPACE_STD
+
+
+139 

+	$¿i£
+ (
+__sig
+è
+__THROW
+;
+
+140 
+__END_NAMESPACE_STD
+
+
+142 #ifdeà
+__USE_MISC
+
+
+144 
+__sighªdËr_t
+ 
+	$ssigÇl
+ (
+__sig
+, 
+__sighªdËr_t
+ 
+__hªdËr
+)
+
+145 
+__THROW
+;
+
+146 

+	$gsigÇl
+ (
+__sig
+è
+__THROW
+;
+
+149 #ifdeà
+__USE_XOPEN2K8
+
+
+151 

+	`psigÇl
+ (
+__sig
+, cÚ¡ *
+__s
+);
+
+154 

+	`psigšfo
+ (cÚ¡ 
+sigšfo_t
+ *
+__pšfo
+, cÚ¡ *
+__s
+);
+
+166 #ifdeà
+__USE_XOPEN
+
+
+167 #ifdeà
+__GNUC__
+
+
+168 

+	$sig·u£
+ (
+__sig
+è
+	`__asm__
+ ("__xpg_sigpause");
+
+170 

+	`__sig·u£
+ (
+__sig_Ü_mask
+, 
+__is_sig
+);
+
+172 
+	#sig·u£
+(
+sig
+è
+	`__sig·u£
+ ((sig), 1)
+
+	)
+
+177 #ifdeà
+__USE_MISC
+
+
+184 
+	#sigmask
+(
+sig
+è
+	`__sigmask
+(sig)
+
+	)
+
+187 

+	$sigblock
+ (
+__mask
+è
+__THROW
+ 
+__©Œibu‹_d•»ÿ‹d__
+;
+
+190 

+	$sig£tmask
+ (
+__mask
+è
+__THROW
+ 
+__©Œibu‹_d•»ÿ‹d__
+;
+
+193 

+	$sigg‘mask
+ (è
+__THROW
+ 
+__©Œibu‹_d•»ÿ‹d__
+;
+
+197 #ifdeà
+__USE_MISC
+
+
+198 
+	#NSIG
+ 
+_NSIG
+
+
+	)
+
+201 #ifdeà
+__USE_GNU
+
+
+202 
+__sighªdËr_t
+ 
+	tsighªdËr_t
+;
+
+206 #ifdeà
+__USE_MISC
+
+
+207 
+__sighªdËr_t
+ 
+	tsig_t
+;
+
+210 #ifdeà
+__USE_POSIX
+
+
+213 

+	$sigem±y£t
+ (
+sig£t_t
+ *
+__£t
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+216 

+	$sigfžl£t
+ (
+sig£t_t
+ *
+__£t
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+219 

+	$sigadd£t
+ (
+sig£t_t
+ *
+__£t
+, 
+__signo
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+222 

+	$sigd–£t
+ (
+sig£t_t
+ *
+__£t
+, 
+__signo
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+225 

+	$sigismemb”
+ (cÚ¡ 
+sig£t_t
+ *
+__£t
+, 
+__signo
+)
+
+226 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+228 #ifdeà
+__USE_GNU
+
+
+230 

+	$sigi£m±y£t
+ (cÚ¡ 
+sig£t_t
+ *
+__£t
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+233 

+	$sigªd£t
+ (
+sig£t_t
+ *
+__£t
+, cÚ¡ sig£t_ˆ*
+__Ëá
+,
+
+234 cÚ¡ 
+sig£t_t
+ *
+__right
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2, 3));
+
+237 

+	$sigܣt
+ (
+sig£t_t
+ *
+__£t
+, cÚ¡ sig£t_ˆ*
+__Ëá
+,
+
+238 cÚ¡ 
+sig£t_t
+ *
+__right
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2, 3));
+
+243 
+	~<b™s/sigaùiÚ.h
+>
+
+246 

+	$sig´ocmask
+ (
+__how
+, cÚ¡ 
+sig£t_t
+ *
+__»¡riù
+ 
+__£t
+,
+
+247 
+sig£t_t
+ *
+__»¡riù
+ 
+__o£t
+è
+__THROW
+;
+
+254 

+	$sigsu¥’d
+ (cÚ¡ 
+sig£t_t
+ *
+__£t
+è
+	`__nÚnuÎ
+ ((1));
+
+257 

+	$sigaùiÚ
+ (
+__sig
+, cÚ¡ 
+sigaùiÚ
+ *
+__»¡riù
+ 
+__aù
+,
+
+258 
+sigaùiÚ
+ *
+__»¡riù
+ 
+__ßù
+è
+__THROW
+;
+
+261 

+	$sig³ndšg
+ (
+sig£t_t
+ *
+__£t
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+268 

+	$sigwa™
+ (cÚ¡ 
+sig£t_t
+ *
+__»¡riù
+ 
+__£t
+, *__»¡riù 
+__sig
+)
+
+269 
+	`__nÚnuÎ
+ ((1, 2));
+
+271 #ifdeà
+__USE_POSIX199309
+
+
+276 

+	$sigwa™šfo
+ (cÚ¡ 
+sig£t_t
+ *
+__»¡riù
+ 
+__£t
+,
+
+277 
+sigšfo_t
+ *
+__»¡riù
+ 
+__šfo
+è
+	`__nÚnuÎ
+ ((1));
+
+284 

+	$sigtimedwa™
+ (cÚ¡ 
+sig£t_t
+ *
+__»¡riù
+ 
+__£t
+,
+
+285 
+sigšfo_t
+ *
+__»¡riù
+ 
+__šfo
+,
+
+286 cÚ¡ 
+time¥ec
+ *
+__»¡riù
+ 
+__timeout
+)
+
+287 
+	`__nÚnuÎ
+ ((1));
+
+291 

+	$sigqueue
+ (
+__pid_t
+ 
+__pid
+, 
+__sig
+, cÚ¡ 
+sigv®
+ 
+__v®
+)
+
+292 
+__THROW
+;
+
+297 #ifdeà
+__USE_MISC
+
+
+301 
cÚ¡ *cÚ¡ 
+_sys_sigli¡
+[
+_NSIG
+];
+
+302 
cÚ¡ *cÚ¡ 
+sys_sigli¡
+[
+_NSIG
+];
+
+306 
+	~<b™s/sigcڋxt.h
+>
+
+309 

+	$sig»tuº
+ (
+sigcڋxt
+ *
+__sý
+è
+__THROW
+;
+
+314 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K8
+
+
+315 
+	#__Ãed_size_t
+
+
+	)
+
+316 
+	~<¡ddef.h
+>
+
+321 

+	$sigš‹¼u±
+ (
+__sig
+, 
+__š‹¼u±
+è
+__THROW
+;
+
+323 
+	~<b™s/sig¡ack.h
+>
+
+324 #ià
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_XOPEN2K8
+
+
+326 
+	~<sys/ucڋxt.h
+>
+
+332 

+	$sig¡ack
+ (
+sig¡ack
+ *
+__ss
+, sig¡ack *
+__oss
+)
+
+333 
+__THROW
+ 
+__©Œibu‹_d•»ÿ‹d__
+;
+
+337 

+	$sig®t¡ack
+ (cÚ¡ 
+sig®t¡ack
+ *
+__»¡riù
+ 
+__ss
+,
+
+338 
+sig®t¡ack
+ *
+__»¡riù
+ 
+__oss
+è
+__THROW
+;
+
+342 #ifdeà
+__USE_XOPEN_EXTENDED
+
+
+346 

+	$sighÞd
+ (
+__sig
+è
+__THROW
+;
+
+349 

+	$sig»l£
+ (
+__sig
+è
+__THROW
+;
+
+352 

+	$sigignÜe
+ (
+__sig
+è
+__THROW
+;
+
+355 
+__sighªdËr_t
+ 
+	$sig£t
+ (
+__sig
+, 
+__sighªdËr_t
+ 
+__di¥
+è
+__THROW
+;
+
+358 #ià
+defšed
+ 
+__USE_POSIX199506
+ || defšed 
+__USE_UNIX98
+
+
+361 
+	~<b™s/±h»adty³s.h
+>
+
+362 
+	~<b™s/sigth»ad.h
+>
+
+369 

+	$__libc_cu¼’t_sig¹mš
+ (è
+__THROW
+;
+
+371 

+	$__libc_cu¼’t_sig¹max
+ (è
+__THROW
+;
+
+375 
+__END_DECLS
+
+
+	@/usr/include/stdint.h
+
+22 #iâdeà
+_STDINT_H
+
+
+23 
+	#_STDINT_H
+ 1
+
+	)
+
+25 
+	~<ã©u»s.h
+>
+
+26 
+	~<b™s/wch¬.h
+>
+
+27 
+	~<b™s/wÜdsize.h
+>
+
+34 #iâdeà
+__št8_t_defšed
+
+
+35 
+	#__št8_t_defšed
+
+
+	)
+
+36 sigÃd 
+	tšt8_t
+;
+
+37 
+	tšt16_t
+;
+
+38 
+	tšt32_t
+;
+
+39 #ià
+__WORDSIZE
+ == 64
+
+40 
+	tšt64_t
+;
+
+42 
+__ex‹nsiÚ__
+
+
+43 
+	tšt64_t
+;
+
+48 
+	tušt8_t
+;
+
+49 
+	tušt16_t
+;
+
+50 #iâdeà
+__ušt32_t_defšed
+
+
+51 
+	tušt32_t
+;
+
+52 
+	#__ušt32_t_defšed
+
+
+	)
+
+54 #ià
+__WORDSIZE
+ == 64
+
+55 
+	tušt64_t
+;
+
+57 
+__ex‹nsiÚ__
+
+
+58 
+	tušt64_t
+;
+
+65 sigÃd 
+	tšt_Ëa¡8_t
+;
+
+66 
+	tšt_Ëa¡16_t
+;
+
+67 
+	tšt_Ëa¡32_t
+;
+
+68 #ià
+__WORDSIZE
+ == 64
+
+69 
+	tšt_Ëa¡64_t
+;
+
+71 
+__ex‹nsiÚ__
+
+
+72 
+	tšt_Ëa¡64_t
+;
+
+76 
+	tušt_Ëa¡8_t
+;
+
+77 
+	tušt_Ëa¡16_t
+;
+
+78 
+	tušt_Ëa¡32_t
+;
+
+79 #ià
+__WORDSIZE
+ == 64
+
+80 
+	tušt_Ëa¡64_t
+;
+
+82 
+__ex‹nsiÚ__
+
+
+83 
+	tušt_Ëa¡64_t
+;
+
+90 sigÃd 
+	tšt_ç¡8_t
+;
+
+91 #ià
+__WORDSIZE
+ == 64
+
+92 
+	tšt_ç¡16_t
+;
+
+93 
+	tšt_ç¡32_t
+;
+
+94 
+	tšt_ç¡64_t
+;
+
+96 
+	tšt_ç¡16_t
+;
+
+97 
+	tšt_ç¡32_t
+;
+
+98 
+__ex‹nsiÚ__
+
+
+99 
+	tšt_ç¡64_t
+;
+
+103 
+	tušt_ç¡8_t
+;
+
+104 #ià
+__WORDSIZE
+ == 64
+
+105 
+	tušt_ç¡16_t
+;
+
+106 
+	tušt_ç¡32_t
+;
+
+107 
+	tušt_ç¡64_t
+;
+
+109 
+	tušt_ç¡16_t
+;
+
+110 
+	tušt_ç¡32_t
+;
+
+111 
+__ex‹nsiÚ__
+
+
+112 
+	tušt_ç¡64_t
+;
+
+117 #ià
+__WORDSIZE
+ == 64
+
+118 #iâdeà
+__šŒ_t_defšed
+
+
+119 
+	tšŒ_t
+;
+
+120 
+	#__šŒ_t_defšed
+
+
+	)
+
+122 
+	tušŒ_t
+;
+
+124 #iâdeà
+__šŒ_t_defšed
+
+
+125 
+	tšŒ_t
+;
+
+126 
+	#__šŒ_t_defšed
+
+
+	)
+
+128 
+	tušŒ_t
+;
+
+133 #ià
+__WORDSIZE
+ == 64
+
+134 
+	tštmax_t
+;
+
+135 
+	tuštmax_t
+;
+
+137 
+__ex‹nsiÚ__
+
+
+138 
+	tštmax_t
+;
+
+139 
+__ex‹nsiÚ__
+
+
+140 
+	tuštmax_t
+;
+
+144 #ià
+__WORDSIZE
+ == 64
+
+145 
+	#__INT64_C
+(
+c
+èø## 
+L
+
+
+	)
+
+146 
+	#__UINT64_C
+(
+c
+èø## 
+UL
+
+
+	)
+
+148 
+	#__INT64_C
+(
+c
+èø## 
+LL
+
+
+	)
+
+149 
+	#__UINT64_C
+(
+c
+èø## 
+ULL
+
+
+	)
+
+155 
+	#INT8_MIN
+ (-128)
+
+	)
+
+156 
+	#INT16_MIN
+ (-32767-1)
+
+	)
+
+157 
+	#INT32_MIN
+ (-2147483647-1)
+
+	)
+
+158 
+	#INT64_MIN
+ (-
+	`__INT64_C
+(9223372036854775807)-1)
+
+	)
+
+160 
+	#INT8_MAX
+ (127)
+
+	)
+
+161 
+	#INT16_MAX
+ (32767)
+
+	)
+
+162 
+	#INT32_MAX
+ (2147483647)
+
+	)
+
+163 
+	#INT64_MAX
+ (
+	`__INT64_C
+(9223372036854775807))
+
+	)
+
+166 
+	#UINT8_MAX
+ (255)
+
+	)
+
+167 
+	#UINT16_MAX
+ (65535)
+
+	)
+
+168 
+	#UINT32_MAX
+ (4294967295U)
+
+	)
+
+169 
+	#UINT64_MAX
+ (
+	`__UINT64_C
+(18446744073709551615))
+
+	)
+
+173 
+	#INT_LEAST8_MIN
+ (-128)
+
+	)
+
+174 
+	#INT_LEAST16_MIN
+ (-32767-1)
+
+	)
+
+175 
+	#INT_LEAST32_MIN
+ (-2147483647-1)
+
+	)
+
+176 
+	#INT_LEAST64_MIN
+ (-
+	`__INT64_C
+(9223372036854775807)-1)
+
+	)
+
+178 
+	#INT_LEAST8_MAX
+ (127)
+
+	)
+
+179 
+	#INT_LEAST16_MAX
+ (32767)
+
+	)
+
+180 
+	#INT_LEAST32_MAX
+ (2147483647)
+
+	)
+
+181 
+	#INT_LEAST64_MAX
+ (
+	`__INT64_C
+(9223372036854775807))
+
+	)
+
+184 
+	#UINT_LEAST8_MAX
+ (255)
+
+	)
+
+185 
+	#UINT_LEAST16_MAX
+ (65535)
+
+	)
+
+186 
+	#UINT_LEAST32_MAX
+ (4294967295U)
+
+	)
+
+187 
+	#UINT_LEAST64_MAX
+ (
+	`__UINT64_C
+(18446744073709551615))
+
+	)
+
+191 
+	#INT_FAST8_MIN
+ (-128)
+
+	)
+
+192 #ià
+__WORDSIZE
+ == 64
+
+193 
+	#INT_FAST16_MIN
+ (-9223372036854775807L-1)
+
+	)
+
+194 
+	#INT_FAST32_MIN
+ (-9223372036854775807L-1)
+
+	)
+
+196 
+	#INT_FAST16_MIN
+ (-2147483647-1)
+
+	)
+
+197 
+	#INT_FAST32_MIN
+ (-2147483647-1)
+
+	)
+
+199 
+	#INT_FAST64_MIN
+ (-
+	`__INT64_C
+(9223372036854775807)-1)
+
+	)
+
+201 
+	#INT_FAST8_MAX
+ (127)
+
+	)
+
+202 #ià
+__WORDSIZE
+ == 64
+
+203 
+	#INT_FAST16_MAX
+ (9223372036854775807L)
+
+	)
+
+204 
+	#INT_FAST32_MAX
+ (9223372036854775807L)
+
+	)
+
+206 
+	#INT_FAST16_MAX
+ (2147483647)
+
+	)
+
+207 
+	#INT_FAST32_MAX
+ (2147483647)
+
+	)
+
+209 
+	#INT_FAST64_MAX
+ (
+	`__INT64_C
+(9223372036854775807))
+
+	)
+
+212 
+	#UINT_FAST8_MAX
+ (255)
+
+	)
+
+213 #ià
+__WORDSIZE
+ == 64
+
+214 
+	#UINT_FAST16_MAX
+ (18446744073709551615UL)
+
+	)
+
+215 
+	#UINT_FAST32_MAX
+ (18446744073709551615UL)
+
+	)
+
+217 
+	#UINT_FAST16_MAX
+ (4294967295U)
+
+	)
+
+218 
+	#UINT_FAST32_MAX
+ (4294967295U)
+
+	)
+
+220 
+	#UINT_FAST64_MAX
+ (
+	`__UINT64_C
+(18446744073709551615))
+
+	)
+
+224 #ià
+__WORDSIZE
+ == 64
+
+225 
+	#INTPTR_MIN
+ (-9223372036854775807L-1)
+
+	)
+
+226 
+	#INTPTR_MAX
+ (9223372036854775807L)
+
+	)
+
+227 
+	#UINTPTR_MAX
+ (18446744073709551615UL)
+
+	)
+
+229 
+	#INTPTR_MIN
+ (-2147483647-1)
+
+	)
+
+230 
+	#INTPTR_MAX
+ (2147483647)
+
+	)
+
+231 
+	#UINTPTR_MAX
+ (4294967295U)
+
+	)
+
+236 
+	#INTMAX_MIN
+ (-
+	`__INT64_C
+(9223372036854775807)-1)
+
+	)
+
+238 
+	#INTMAX_MAX
+ (
+	`__INT64_C
+(9223372036854775807))
+
+	)
+
+241 
+	#UINTMAX_MAX
+ (
+	`__UINT64_C
+(18446744073709551615))
+
+	)
+
+247 #ià
+__WORDSIZE
+ == 64
+
+248 
+	#PTRDIFF_MIN
+ (-9223372036854775807L-1)
+
+	)
+
+249 
+	#PTRDIFF_MAX
+ (9223372036854775807L)
+
+	)
+
+251 
+	#PTRDIFF_MIN
+ (-2147483647-1)
+
+	)
+
+252 
+	#PTRDIFF_MAX
+ (2147483647)
+
+	)
+
+256 
+	#SIG_ATOMIC_MIN
+ (-2147483647-1)
+
+	)
+
+257 
+	#SIG_ATOMIC_MAX
+ (2147483647)
+
+	)
+
+260 #ià
+__WORDSIZE
+ == 64
+
+261 
+	#SIZE_MAX
+ (18446744073709551615UL)
+
+	)
+
+263 #ifdeà
+__WORDSIZE32_SIZE_ULONG
+
+
+264 
+	#SIZE_MAX
+ (4294967295UL)
+
+	)
+
+266 
+	#SIZE_MAX
+ (4294967295U)
+
+	)
+
+271 #iâdeà
+WCHAR_MIN
+
+
+273 
+	#WCHAR_MIN
+ 
+__WCHAR_MIN
+
+
+	)
+
+274 
+	#WCHAR_MAX
+ 
+__WCHAR_MAX
+
+
+	)
+
+278 
+	#WINT_MIN
+ (0u)
+
+	)
+
+279 
+	#WINT_MAX
+ (4294967295u)
+
+	)
+
+282 
+	#INT8_C
+(
+c
+è
+	)
+c
+
+283 
+	#INT16_C
+(
+c
+è
+	)
+c
+
+284 
+	#INT32_C
+(
+c
+è
+	)
+c
+
+285 #ià
+__WORDSIZE
+ == 64
+
+286 
+	#INT64_C
+(
+c
+èø## 
+L
+
+
+	)
+
+288 
+	#INT64_C
+(
+c
+èø## 
+LL
+
+
+	)
+
+292 
+	#UINT8_C
+(
+c
+è
+	)
+c
+
+293 
+	#UINT16_C
+(
+c
+è
+	)
+c
+
+294 
+	#UINT32_C
+(
+c
+èø## 
+U
+
+
+	)
+
+295 #ià
+__WORDSIZE
+ == 64
+
+296 
+	#UINT64_C
+(
+c
+èø## 
+UL
+
+
+	)
+
+298 
+	#UINT64_C
+(
+c
+èø## 
+ULL
+
+
+	)
+
+302 #ià
+__WORDSIZE
+ == 64
+
+303 
+	#INTMAX_C
+(
+c
+èø## 
+L
+
+
+	)
+
+304 
+	#UINTMAX_C
+(
+c
+èø## 
+UL
+
+
+	)
+
+306 
+	#INTMAX_C
+(
+c
+èø## 
+LL
+
+
+	)
+
+307 
+	#UINTMAX_C
+(
+c
+èø## 
+ULL
+
+
+	)
+
+	@/usr/include/stdio.h
+
+23 #iâdeà
+_STDIO_H
+
+
+25 #ià!
+defšed
+ 
+__Ãed_FILE
+ && !defšed 
+__Ãed___FILE
+
+
+26 
+	#_STDIO_H
+ 1
+
+	)
+
+27 
+	~<ã©u»s.h
+>
+
+29 
+	g__BEGIN_DECLS
+
+
+31 
+	#__Ãed_size_t
+
+
+	)
+
+32 
+	#__Ãed_NULL
+
+
+	)
+
+33 
+	~<¡ddef.h
+>
+
+35 
+	~<b™s/ty³s.h
+>
+
+36 
+	#__Ãed_FILE
+
+
+	)
+
+37 
+	#__Ãed___FILE
+
+
+	)
+
+41 #ià!
+defšed
+ 
+__FILE_defšed
+ && defšed 
+__Ãed_FILE
+
+
+44 
+	g_IO_FILE
+;
+
+46 
+__BEGIN_NAMESPACE_STD
+
+
+48 
+_IO_FILE
+ 
+	tFILE
+;
+
+49 
+	g__END_NAMESPACE_STD
+
+
+50 #ià
+defšed
+ 
+__USE_LARGEFILE64
+ || defšed 
+__USE_POSIX
+ \
+
+51 || 
+defšed
+ 
+	g__USE_ISOC99
+ || defšed 
+	g__USE_XOPEN
+ \
+
+52 || 
+defšed
+ 
+__USE_POSIX2
+
+
+53 
+	$__USING_NAMESPACE_STD
+(
+FILE
+)
+
+56 
+	#__FILE_defšed
+ 1
+
+	)
+
+58 #undeà
+__Ãed_FILE
+
+
+61 #ià!
+defšed
+ 
+____FILE_defšed
+ && defšed 
+__Ãed___FILE
+
+
+64 
+_IO_FILE
+ 
+	t__FILE
+;
+
+66 
+	#____FILE_defšed
+ 1
+
+	)
+
+68 #undeà
+__Ãed___FILE
+
+
+71 #ifdef 
+_STDIO_H
+
+
+72 
+	#_STDIO_USES_IOSTREAM
+
+
+	)
+
+74 
+	~<libio.h
+>
+
+76 #ià
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_XOPEN2K8
+
+
+77 #ifdeà
+__GNUC__
+
+
+78 #iâdeà
+_VA_LIST_DEFINED
+
+
+79 
+_G_va_li¡
+ 
+	tva_li¡
+;
+
+80 
+	#_VA_LIST_DEFINED
+
+
+	)
+
+83 
+	~<¡d¬g.h
+>
+
+87 #ifdeà
+__USE_XOPEN2K8
+
+
+88 #iâdeà
+__off_t_defšed
+
+
+89 #iâdeà
+__USE_FILE_OFFSET64
+
+
+90 
+__off_t
+ 
+	toff_t
+;
+
+92 
+__off64_t
+ 
+	toff_t
+;
+
+94 
+	#__off_t_defšed
+
+
+	)
+
+96 #ià
+defšed
+ 
+__USE_LARGEFILE64
+ && !defšed 
+__off64_t_defšed
+
+
+97 
+__off64_t
+ 
+	toff64_t
+;
+
+98 
+	#__off64_t_defšed
+
+
+	)
+
+101 #iâdeà
+__ssize_t_defšed
+
+
+102 
+__ssize_t
+ 
+	tssize_t
+;
+
+103 
+	#__ssize_t_defšed
+
+
+	)
+
+108 
+__BEGIN_NAMESPACE_STD
+
+
+109 #iâdeà
+__USE_FILE_OFFSET64
+
+
+110 
+_G_åos_t
+ 
+	tåos_t
+;
+
+112 
+_G_åos64_t
+ 
+	tåos_t
+;
+
+114 
+__END_NAMESPACE_STD
+
+
+115 #ifdeà
+__USE_LARGEFILE64
+
+
+116 
+_G_åos64_t
+ 
+	tåos64_t
+;
+
+120 
+	#_IOFBF
+ 0
+
+	)
+
+121 
+	#_IOLBF
+ 1
+
+	)
+
+122 
+	#_IONBF
+ 2
+
+	)
+
+126 #iâdeà
+BUFSIZ
+
+
+127 
+	#BUFSIZ
+ 
+_IO_BUFSIZ
+
+
+	)
+
+133 #iâdeà
+EOF
+
+
+134 
+	#EOF
+ (-1)
+
+	)
+
+140 
+	#SEEK_SET
+ 0
+
+	)
+
+141 
+	#SEEK_CUR
+ 1
+
+	)
+
+142 
+	#SEEK_END
+ 2
+
+	)
+
+143 #ifdeà
+__USE_GNU
+
+
+144 
+	#SEEK_DATA
+ 3
+
+	)
+
+145 
+	#SEEK_HOLE
+ 4
+
+	)
+
+149 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+151 
+	#P_tmpdœ
+ "/tmp"
+
+	)
+
+164 
+	~<b™s/¡dio_lim.h
+>
+
+168 

+_IO_FILE
+ *
+¡dš
+;
+
+169 

+_IO_FILE
+ *
+¡dout
+;
+
+170 

+_IO_FILE
+ *
+¡d”r
+;
+
+172 
+	#¡dš
+ 
+¡dš
+
+
+	)
+
+173 
+	#¡dout
+ 
+¡dout
+
+
+	)
+
+174 
+	#¡d”r
+ 
+¡d”r
+
+
+	)
+
+176 
+__BEGIN_NAMESPACE_STD
+
+
+178 

+	$»move
+ (cÚ¡ *
+__fž’ame
+è
+__THROW
+;
+
+180 

+	$Ȃme
+ (cÚ¡ *
+__Þd
+, cÚ¡ *
+__Ãw
+è
+__THROW
+;
+
+181 
+__END_NAMESPACE_STD
+
+
+183 #ifdeà
+__USE_ATFILE
+
+
+185 

+	$»Çm—t
+ (
+__Þdfd
+, cÚ¡ *
+__Þd
+, 
+__Ãwfd
+,
+
+186 cÚ¡ *
+__Ãw
+è
+__THROW
+;
+
+189 
+__BEGIN_NAMESPACE_STD
+
+
+194 #iâdeà
+__USE_FILE_OFFSET64
+
+
+195 
+FILE
+ *
+	$tmpfže
+ (è
+__wur
+;
+
+197 #ifdeà
+__REDIRECT
+
+
+198 
+FILE
+ *
+	`__REDIRECT
+ (
+tmpfže
+, (), 
+tmpfže64
+è
+__wur
+;
+
+200 
+	#tmpfže
+ 
+tmpfže64
+
+
+	)
+
+204 #ifdeà
+__USE_LARGEFILE64
+
+
+205 
+FILE
+ *
+	$tmpfže64
+ (è
+__wur
+;
+
+209 
*
+	$tm²am
+ (*
+__s
+è
+__THROW
+ 
+__wur
+;
+
+210 
+__END_NAMESPACE_STD
+
+
+212 #ifdeà
+__USE_MISC
+
+
+215 
*
+	$tm²am_r
+ (*
+__s
+è
+__THROW
+ 
+__wur
+;
+
+219 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+227 
*
+	$‹m²am
+ (cÚ¡ *
+__dœ
+, cÚ¡ *
+__pfx
+)
+
+228 
+__THROW
+ 
+__©Œibu‹_m®loc__
+ 
+__wur
+;
+
+232 
+__BEGIN_NAMESPACE_STD
+
+
+237 

+	`fþo£
+ (
+FILE
+ *
+__¡»am
+);
+
+242 

+	`fæush
+ (
+FILE
+ *
+__¡»am
+);
+
+243 
+__END_NAMESPACE_STD
+
+
+245 #ifdeà
+__USE_MISC
+
+
+252 

+	`fæush_uÆocked
+ (
+FILE
+ *
+__¡»am
+);
+
+255 #ifdeà
+__USE_GNU
+
+
+262 

+	`fþo£®l
+ ();
+
+266 
+__BEGIN_NAMESPACE_STD
+
+
+267 #iâdeà
+__USE_FILE_OFFSET64
+
+
+272 
+FILE
+ *
+	$fݒ
+ (cÚ¡ *
+__»¡riù
+ 
+__fž’ame
+,
+
+273 cÚ¡ *
+__»¡riù
+ 
+__modes
+è
+__wur
+;
+
+278 
+FILE
+ *
+	$äeݒ
+ (cÚ¡ *
+__»¡riù
+ 
+__fž’ame
+,
+
+279 cÚ¡ *
+__»¡riù
+ 
+__modes
+,
+
+280 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+è
+__wur
+;
+
+282 #ifdeà
+__REDIRECT
+
+
+283 
+FILE
+ *
+	`__REDIRECT
+ (
+fݒ
+, (cÚ¡ *
+__»¡riù
+ 
+__fž’ame
+,
+
+284 cÚ¡ *
+__»¡riù
+ 
+__modes
+), 
+fݒ64
+)
+
+285 
+__wur
+;
+
+286 
+FILE
+ *
+	`__REDIRECT
+ (
+äeݒ
+, (cÚ¡ *
+__»¡riù
+ 
+__fž’ame
+,
+
+287 cÚ¡ *
+__»¡riù
+ 
+__modes
+,
+
+288 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+), 
+äeݒ64
+)
+
+289 
+__wur
+;
+
+291 
+	#fݒ
+ 
+fݒ64
+
+
+	)
+
+292 
+	#äeݒ
+ 
+äeݒ64
+
+
+	)
+
+295 
+__END_NAMESPACE_STD
+
+
+296 #ifdeà
+__USE_LARGEFILE64
+
+
+297 
+FILE
+ *
+	$fݒ64
+ (cÚ¡ *
+__»¡riù
+ 
+__fž’ame
+,
+
+298 cÚ¡ *
+__»¡riù
+ 
+__modes
+è
+__wur
+;
+
+299 
+FILE
+ *
+	$äeݒ64
+ (cÚ¡ *
+__»¡riù
+ 
+__fž’ame
+,
+
+300 cÚ¡ *
+__»¡riù
+ 
+__modes
+,
+
+301 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+è
+__wur
+;
+
+304 #ifdef 
+__USE_POSIX
+
+
+306 
+FILE
+ *
+	$fdݒ
+ (
+__fd
+, cÚ¡ *
+__modes
+è
+__THROW
+ 
+__wur
+;
+
+309 #ifdef 
+__USE_GNU
+
+
+312 
+FILE
+ *
+	$fݒcook›
+ (*
+__»¡riù
+ 
+__magic_cook›
+,
+
+313 cÚ¡ *
+__»¡riù
+ 
+__modes
+,
+
+314 
+_IO_cook›_io_funùiÚs_t
+ 
+__io_funcs
+è
+__THROW
+ 
+__wur
+;
+
+317 #ifdeà
+__USE_XOPEN2K8
+
+
+319 
+FILE
+ *
+	$fmemݒ
+ (*
+__s
+, 
+size_t
+ 
+__Ën
+, cÚ¡ *
+__modes
+)
+
+320 
+__THROW
+ 
+__wur
+;
+
+325 
+FILE
+ *
+	$ݒ_mem¡»am
+ (**
+__buæoc
+, 
+size_t
+ *
+__siz–oc
+è
+__THROW
+ 
+__wur
+;
+
+329 
+__BEGIN_NAMESPACE_STD
+
+
+332 

+	$£tbuf
+ (
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+, *__»¡riù 
+__buf
+è
+__THROW
+;
+
+336 

+	$£tvbuf
+ (
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+, *__»¡riù 
+__buf
+,
+
+337 
+__modes
+, 
+size_t
+ 
+__n
+è
+__THROW
+;
+
+338 
+__END_NAMESPACE_STD
+
+
+340 #ifdef 
+__USE_MISC
+
+
+343 

+	$£tbufãr
+ (
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+, *__»¡riù 
+__buf
+,
+
+344 
+size_t
+ 
+__size
+è
+__THROW
+;
+
+347 

+	$£Žšebuf
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+;
+
+351 
+__BEGIN_NAMESPACE_STD
+
+
+356 

+	`årštf
+ (
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+,
+
+357 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...);
+
+362 

+	`´štf
+ (cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...);
+
+364 

+	$¥rštf
+ (*
+__»¡riù
+ 
+__s
+,
+
+365 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...è
+__THROWNL
+;
+
+371 

+	`vårštf
+ (
+FILE
+ *
+__»¡riù
+ 
+__s
+, cÚ¡ *__»¡riù 
+__fÜm©
+,
+
+372 
+_G_va_li¡
+ 
+__¬g
+);
+
+377 

+	`v´štf
+ (cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, 
+_G_va_li¡
+ 
+__¬g
+);
+
+379 

+	$v¥rštf
+ (*
+__»¡riù
+ 
+__s
+, cÚ¡ *__»¡riù 
+__fÜm©
+,
+
+380 
+_G_va_li¡
+ 
+__¬g
+è
+__THROWNL
+;
+
+381 
+__END_NAMESPACE_STD
+
+
+383 #ià
+defšed
+ 
+__USE_ISOC99
+ || defšed 
+__USE_UNIX98
+
+
+384 
+__BEGIN_NAMESPACE_C99
+
+
+386 

+	$¢´štf
+ (*
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__maxËn
+,
+
+387 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...)
+
+388 
+__THROWNL
+ 
+	`__©Œibu‹__
+ ((
+	`__fÜm©__
+ (
+__´štf__
+, 3, 4)));
+
+390 

+	$v¢´štf
+ (*
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__maxËn
+,
+
+391 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, 
+_G_va_li¡
+ 
+__¬g
+)
+
+392 
+__THROWNL
+ 
+	`__©Œibu‹__
+ ((
+	`__fÜm©__
+ (
+__´štf__
+, 3, 0)));
+
+393 
+__END_NAMESPACE_C99
+
+
+396 #ifdeà
+__USE_GNU
+
+
+399 

+	$va¥rštf
+ (**
+__»¡riù
+ 
+__±r
+, cÚ¡ *__»¡riù 
+__f
+,
+
+400 
+_G_va_li¡
+ 
+__¬g
+)
+
+401 
+__THROWNL
+ 
+	`__©Œibu‹__
+ ((
+	$__fÜm©__
+ (
+__´štf__
+, 2, 0))è
+__wur
+;
+
+402 

+	$__a¥rštf
+ (**
+__»¡riù
+ 
+__±r
+,
+
+403 cÚ¡ *
+__»¡riù
+ 
+__fmt
+, ...)
+
+404 
+__THROWNL
+ 
+	`__©Œibu‹__
+ ((
+	$__fÜm©__
+ (
+__´štf__
+, 2, 3))è
+__wur
+;
+
+405 

+	$a¥rštf
+ (**
+__»¡riù
+ 
+__±r
+,
+
+406 cÚ¡ *
+__»¡riù
+ 
+__fmt
+, ...)
+
+407 
+__THROWNL
+ 
+	`__©Œibu‹__
+ ((
+	$__fÜm©__
+ (
+__´štf__
+, 2, 3))è
+__wur
+;
+
+410 #ifdeà
+__USE_XOPEN2K8
+
+
+412 

+	$vd´štf
+ (
+__fd
+, cÚ¡ *
+__»¡riù
+ 
+__fmt
+,
+
+413 
+_G_va_li¡
+ 
+__¬g
+)
+
+414 
+	`__©Œibu‹__
+ ((
+	`__fÜm©__
+ (
+__´štf__
+, 2, 0)));
+
+415 

+	$d´štf
+ (
+__fd
+, cÚ¡ *
+__»¡riù
+ 
+__fmt
+, ...)
+
+416 
+	`__©Œibu‹__
+ ((
+	`__fÜm©__
+ (
+__´štf__
+, 2, 3)));
+
+420 
+__BEGIN_NAMESPACE_STD
+
+
+425 

+	$fsÿnf
+ (
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+,
+
+426 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...è
+__wur
+;
+
+431 

+	$sÿnf
+ (cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...è
+__wur
+;
+
+433 

+	$ssÿnf
+ (cÚ¡ *
+__»¡riù
+ 
+__s
+,
+
+434 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...è
+__THROW
+;
+
+436 #ià
+defšed
+ 
+__USE_ISOC99
+ && !defšed 
+__USE_GNU
+ \
+
+437 && (!
+defšed
+ 
+__LDBL_COMPAT
+ || !defšed 
+__REDIRECT
+) \
+
+438 && (
+defšed
+ 
+__STRICT_ANSI__
+ || defšed 
+__USE_XOPEN2K
+)
+
+439 #ifdeà
+__REDIRECT
+
+
+443 

+	`__REDIRECT
+ (
+fsÿnf
+, (
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+,
+
+444 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...),
+
+445 
+__isoc99_fsÿnf
+è
+__wur
+;
+
+446 

+	`__REDIRECT
+ (
+sÿnf
+, (cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...),
+
+447 
+__isoc99_sÿnf
+è
+__wur
+;
+
+448 

+	`__REDIRECT_NTH
+ (
+ssÿnf
+, (cÚ¡ *
+__»¡riù
+ 
+__s
+,
+
+449 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...),
+
+450 
+__isoc99_ssÿnf
+);
+
+452 

+	$__isoc99_fsÿnf
+ (
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+,
+
+453 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...è
+__wur
+;
+
+454 

+	$__isoc99_sÿnf
+ (cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...è
+__wur
+;
+
+455 

+	$__isoc99_ssÿnf
+ (cÚ¡ *
+__»¡riù
+ 
+__s
+,
+
+456 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...è
+__THROW
+;
+
+457 
+	#fsÿnf
+ 
+__isoc99_fsÿnf
+
+
+	)
+
+458 
+	#sÿnf
+ 
+__isoc99_sÿnf
+
+
+	)
+
+459 
+	#ssÿnf
+ 
+__isoc99_ssÿnf
+
+
+	)
+
+463 
+__END_NAMESPACE_STD
+
+
+465 #ifdef 
+__USE_ISOC99
+
+
+466 
+__BEGIN_NAMESPACE_C99
+
+
+471 

+	$vfsÿnf
+ (
+FILE
+ *
+__»¡riù
+ 
+__s
+, cÚ¡ *__»¡riù 
+__fÜm©
+,
+
+472 
+_G_va_li¡
+ 
+__¬g
+)
+
+473 
+	`__©Œibu‹__
+ ((
+	$__fÜm©__
+ (
+__sÿnf__
+, 2, 0))è
+__wur
+;
+
+479 

+	$vsÿnf
+ (cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, 
+_G_va_li¡
+ 
+__¬g
+)
+
+480 
+	`__©Œibu‹__
+ ((
+	$__fÜm©__
+ (
+__sÿnf__
+, 1, 0))è
+__wur
+;
+
+483 

+	$vssÿnf
+ (cÚ¡ *
+__»¡riù
+ 
+__s
+,
+
+484 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, 
+_G_va_li¡
+ 
+__¬g
+)
+
+485 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+	`__fÜm©__
+ (
+__sÿnf__
+, 2, 0)));
+
+487 #ià!
+defšed
+ 
+__USE_GNU
+ \
+
+488 && (!
+defšed
+ 
+__LDBL_COMPAT
+ || !defšed 
+__REDIRECT
+) \
+
+489 && (
+defšed
+ 
+__STRICT_ANSI__
+ || defšed 
+__USE_XOPEN2K
+)
+
+490 #ifdeà
+__REDIRECT
+
+
+494 

+	`__REDIRECT
+ (
+vfsÿnf
+,
+
+495 (
+FILE
+ *
+__»¡riù
+ 
+__s
+,
+
+496 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, 
+_G_va_li¡
+ 
+__¬g
+),
+
+497 
+__isoc99_vfsÿnf
+)
+
+498 
+	`__©Œibu‹__
+ ((
+	$__fÜm©__
+ (
+__sÿnf__
+, 2, 0))è
+__wur
+;
+
+499 

+	`__REDIRECT
+ (
+vsÿnf
+, (cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+,
+
+500 
+_G_va_li¡
+ 
+__¬g
+), 
+__isoc99_vsÿnf
+)
+
+501 
+	`__©Œibu‹__
+ ((
+	$__fÜm©__
+ (
+__sÿnf__
+, 1, 0))è
+__wur
+;
+
+502 

+	`__REDIRECT_NTH
+ (
+vssÿnf
+,
+
+503 (cÚ¡ *
+__»¡riù
+ 
+__s
+,
+
+504 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+,
+
+505 
+_G_va_li¡
+ 
+__¬g
+), 
+__isoc99_vssÿnf
+)
+
+506 
+	`__©Œibu‹__
+ ((
+	`__fÜm©__
+ (
+__sÿnf__
+, 2, 0)));
+
+508 

+	$__isoc99_vfsÿnf
+ (
+FILE
+ *
+__»¡riù
+ 
+__s
+,
+
+509 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+,
+
+510 
+_G_va_li¡
+ 
+__¬g
+è
+__wur
+;
+
+511 

+	$__isoc99_vsÿnf
+ (cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+,
+
+512 
+_G_va_li¡
+ 
+__¬g
+è
+__wur
+;
+
+513 

+	$__isoc99_vssÿnf
+ (cÚ¡ *
+__»¡riù
+ 
+__s
+,
+
+514 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+,
+
+515 
+_G_va_li¡
+ 
+__¬g
+è
+__THROW
+;
+
+516 
+	#vfsÿnf
+ 
+__isoc99_vfsÿnf
+
+
+	)
+
+517 
+	#vsÿnf
+ 
+__isoc99_vsÿnf
+
+
+	)
+
+518 
+	#vssÿnf
+ 
+__isoc99_vssÿnf
+
+
+	)
+
+522 
+__END_NAMESPACE_C99
+
+
+526 
+__BEGIN_NAMESPACE_STD
+
+
+531 

+	`fg‘c
+ (
+FILE
+ *
+__¡»am
+);
+
+532 

+	`g‘c
+ (
+FILE
+ *
+__¡»am
+);
+
+538 

+	`g‘ch¬
+ ();
+
+539 
+__END_NAMESPACE_STD
+
+
+543 
+	#g‘c
+(
+_å
+è
+	`_IO_g‘c
+ (_å)
+
+	)
+
+545 #ifdeà
+__USE_POSIX
+
+
+550 

+	`g‘c_uÆocked
+ (
+FILE
+ *
+__¡»am
+);
+
+551 

+	`g‘ch¬_uÆocked
+ ();
+
+554 #ifdeà
+__USE_MISC
+
+
+561 

+	`fg‘c_uÆocked
+ (
+FILE
+ *
+__¡»am
+);
+
+565 
+__BEGIN_NAMESPACE_STD
+
+
+573 

+	`åutc
+ (
+__c
+, 
+FILE
+ *
+__¡»am
+);
+
+574 

+	`putc
+ (
+__c
+, 
+FILE
+ *
+__¡»am
+);
+
+580 

+	`putch¬
+ (
+__c
+);
+
+581 
+__END_NAMESPACE_STD
+
+
+585 
+	#putc
+(
+_ch
+, 
+_å
+è
+	`_IO_putc
+ (_ch, _å)
+
+	)
+
+587 #ifdeà
+__USE_MISC
+
+
+594 

+	`åutc_uÆocked
+ (
+__c
+, 
+FILE
+ *
+__¡»am
+);
+
+597 #ifdeà
+__USE_POSIX
+
+
+602 

+	`putc_uÆocked
+ (
+__c
+, 
+FILE
+ *
+__¡»am
+);
+
+603 

+	`putch¬_uÆocked
+ (
+__c
+);
+
+607 #ià
+defšed
+ 
+__USE_MISC
+ \
+
+608 || (
+defšed
+ 
+__USE_XOPEN
+ && !defšed 
+__USE_XOPEN2K
+)
+
+610 

+	`g‘w
+ (
+FILE
+ *
+__¡»am
+);
+
+613 

+	`putw
+ (
+__w
+, 
+FILE
+ *
+__¡»am
+);
+
+617 
+__BEGIN_NAMESPACE_STD
+
+
+622 
*
+	$fg‘s
+ (*
+__»¡riù
+ 
+__s
+, 
+__n
+, 
+FILE
+ *__»¡riù 
+__¡»am
+)
+
+623 
+__wur
+;
+
+625 #ià!
+defšed
+ 
+__USE_ISOC11
+ \
+
+626 || (
+defšed
+ 
+__ýlu¥lus
+ && __cplusplus <= 201103L)
+
+638 
*
+	$g‘s
+ (*
+__s
+è
+__wur
+ 
+__©Œibu‹_d•»ÿ‹d__
+;
+
+640 
+__END_NAMESPACE_STD
+
+
+642 #ifdeà
+__USE_GNU
+
+
+649 
*
+	$fg‘s_uÆocked
+ (*
+__»¡riù
+ 
+__s
+, 
+__n
+,
+
+650 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+è
+__wur
+;
+
+654 #ifdef 
+__USE_XOPEN2K8
+
+
+665 
+_IO_ssize_t
+ 
+	$__g‘d–im
+ (**
+__»¡riù
+ 
+__lš•Œ
+,
+
+666 
+size_t
+ *
+__»¡riù
+ 
+__n
+, 
+__d–im™”
+,
+
+667 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+è
+__wur
+;
+
+668 
+_IO_ssize_t
+ 
+	$g‘d–im
+ (**
+__»¡riù
+ 
+__lš•Œ
+,
+
+669 
+size_t
+ *
+__»¡riù
+ 
+__n
+, 
+__d–im™”
+,
+
+670 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+è
+__wur
+;
+
+678 
+_IO_ssize_t
+ 
+	$g‘lše
+ (**
+__»¡riù
+ 
+__lš•Œ
+,
+
+679 
+size_t
+ *
+__»¡riù
+ 
+__n
+,
+
+680 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+è
+__wur
+;
+
+684 
+__BEGIN_NAMESPACE_STD
+
+
+689 

+	`åuts
+ (cÚ¡ *
+__»¡riù
+ 
+__s
+, 
+FILE
+ *__»¡riù 
+__¡»am
+);
+
+695 

+	`puts
+ (cÚ¡ *
+__s
+);
+
+702 

+	`ung‘c
+ (
+__c
+, 
+FILE
+ *
+__¡»am
+);
+
+709 
+size_t
+ 
+	$ä—d
+ (*
+__»¡riù
+ 
+__±r
+, 
+size_t
+ 
+__size
+,
+
+710 
+size_t
+ 
+__n
+, 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+è
+__wur
+;
+
+715 
+size_t
+ 
+	`fwr™e
+ (cÚ¡ *
+__»¡riù
+ 
+__±r
+, size_ˆ
+__size
+,
+
+716 
+size_t
+ 
+__n
+, 
+FILE
+ *
+__»¡riù
+ 
+__s
+);
+
+717 
+__END_NAMESPACE_STD
+
+
+719 #ifdeà
+__USE_GNU
+
+
+726 

+	`åuts_uÆocked
+ (cÚ¡ *
+__»¡riù
+ 
+__s
+,
+
+727 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+);
+
+730 #ifdeà
+__USE_MISC
+
+
+737 
+size_t
+ 
+	$ä—d_uÆocked
+ (*
+__»¡riù
+ 
+__±r
+, 
+size_t
+ 
+__size
+,
+
+738 
+size_t
+ 
+__n
+, 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+è
+__wur
+;
+
+739 
+size_t
+ 
+	`fwr™e_uÆocked
+ (cÚ¡ *
+__»¡riù
+ 
+__±r
+, size_ˆ
+__size
+,
+
+740 
+size_t
+ 
+__n
+, 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+);
+
+744 
+__BEGIN_NAMESPACE_STD
+
+
+749 

+	`f£ek
+ (
+FILE
+ *
+__¡»am
+, 
+__off
+, 
+__wh’û
+);
+
+754 

+	$á–l
+ (
+FILE
+ *
+__¡»am
+è
+__wur
+;
+
+759 

+	`»wšd
+ (
+FILE
+ *
+__¡»am
+);
+
+760 
+__END_NAMESPACE_STD
+
+
+767 #ià
+defšed
+ 
+__USE_LARGEFILE
+ || defšed 
+__USE_XOPEN2K
+
+
+768 #iâdeà
+__USE_FILE_OFFSET64
+
+
+773 

+	`f£eko
+ (
+FILE
+ *
+__¡»am
+, 
+__off_t
+ 
+__off
+, 
+__wh’û
+);
+
+778 
+__off_t
+ 
+	$á–lo
+ (
+FILE
+ *
+__¡»am
+è
+__wur
+;
+
+780 #ifdeà
+__REDIRECT
+
+
+781 

+	`__REDIRECT
+ (
+f£eko
+,
+
+782 (
+FILE
+ *
+__¡»am
+, 
+__off64_t
+ 
+__off
+, 
+__wh’û
+),
+
+783 
+f£eko64
+);
+
+784 
+__off64_t
+ 
+	`__REDIRECT
+ (
+á–lo
+, (
+FILE
+ *
+__¡»am
+), 
+á–lo64
+);
+
+786 
+	#f£eko
+ 
+f£eko64
+
+
+	)
+
+787 
+	#á–lo
+ 
+á–lo64
+
+
+	)
+
+792 
+__BEGIN_NAMESPACE_STD
+
+
+793 #iâdeà
+__USE_FILE_OFFSET64
+
+
+798 

+	`fg‘pos
+ (
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+, 
+åos_t
+ *__»¡riù 
+__pos
+);
+
+803 

+	`f£os
+ (
+FILE
+ *
+__¡»am
+, cÚ¡ 
+åos_t
+ *
+__pos
+);
+
+805 #ifdeà
+__REDIRECT
+
+
+806 

+	`__REDIRECT
+ (
+fg‘pos
+, (
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+,
+
+807 
+åos_t
+ *
+__»¡riù
+ 
+__pos
+), 
+fg‘pos64
+);
+
+808 

+	`__REDIRECT
+ (
+f£os
+,
+
+809 (
+FILE
+ *
+__¡»am
+, cÚ¡ 
+åos_t
+ *
+__pos
+), 
+f£os64
+);
+
+811 
+	#fg‘pos
+ 
+fg‘pos64
+
+
+	)
+
+812 
+	#f£os
+ 
+f£os64
+
+
+	)
+
+815 
+__END_NAMESPACE_STD
+
+
+817 #ifdeà
+__USE_LARGEFILE64
+
+
+818 

+	`f£eko64
+ (
+FILE
+ *
+__¡»am
+, 
+__off64_t
+ 
+__off
+, 
+__wh’û
+);
+
+819 
+__off64_t
+ 
+	$á–lo64
+ (
+FILE
+ *
+__¡»am
+è
+__wur
+;
+
+820 

+	`fg‘pos64
+ (
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+, 
+åos64_t
+ *__»¡riù 
+__pos
+);
+
+821 

+	`f£os64
+ (
+FILE
+ *
+__¡»am
+, cÚ¡ 
+åos64_t
+ *
+__pos
+);
+
+824 
+__BEGIN_NAMESPACE_STD
+
+
+826 

+	$þ—»¼
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+;
+
+828 

+	$ãof
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+ 
+__wur
+;
+
+830 

+	$ã¼Ü
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+ 
+__wur
+;
+
+831 
+__END_NAMESPACE_STD
+
+
+833 #ifdeà
+__USE_MISC
+
+
+835 

+	$þ—»¼_uÆocked
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+;
+
+836 

+	$ãof_uÆocked
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+ 
+__wur
+;
+
+837 

+	$ã¼Ü_uÆocked
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+ 
+__wur
+;
+
+841 
+__BEGIN_NAMESPACE_STD
+
+
+846 

+	`³¼Ü
+ (cÚ¡ *
+__s
+);
+
+847 
+__END_NAMESPACE_STD
+
+
+853 
+	~<b™s/sys_”¾i¡.h
+>
+
+856 #ifdef 
+__USE_POSIX
+
+
+858 

+	$fž’o
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+ 
+__wur
+;
+
+861 #ifdeà
+__USE_MISC
+
+
+863 

+	$fž’o_uÆocked
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+ 
+__wur
+;
+
+867 #ifdeà
+__USE_POSIX2
+
+
+872 
+FILE
+ *
+	$pݒ
+ (cÚ¡ *
+__commªd
+, cÚ¡ *
+__modes
+è
+__wur
+;
+
+878 

+	`pþo£
+ (
+FILE
+ *
+__¡»am
+);
+
+882 #ifdef 
+__USE_POSIX
+
+
+884 
*
+	$ù”mid
+ (*
+__s
+è
+__THROW
+;
+
+888 #ifdeà
+__USE_XOPEN
+
+
+890 
*
+	`cu£rid
+ (*
+__s
+);
+
+894 #ifdef 
+__USE_GNU
+
+
+895 
+ob¡ack
+;
+
+898 

+	$ob¡ack_´štf
+ (
+ob¡ack
+ *
+__»¡riù
+ 
+__ob¡ack
+,
+
+899 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...)
+
+900 
+__THROWNL
+ 
+	`__©Œibu‹__
+ ((
+	`__fÜm©__
+ (
+__´štf__
+, 2, 3)));
+
+901 

+	$ob¡ack_v´štf
+ (
+ob¡ack
+ *
+__»¡riù
+ 
+__ob¡ack
+,
+
+902 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+,
+
+903 
+_G_va_li¡
+ 
+__¬gs
+)
+
+904 
+__THROWNL
+ 
+	`__©Œibu‹__
+ ((
+	`__fÜm©__
+ (
+__´štf__
+, 2, 0)));
+
+908 #ifdeà
+__USE_POSIX
+
+
+912 

+	$æockfže
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+;
+
+916 

+	$árylockfže
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+ 
+__wur
+;
+
+919 

+	$fuÆockfže
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+;
+
+922 #ià
+defšed
+ 
+__USE_XOPEN
+ && !defšed 
+__USE_XOPEN2K
+ && !defšed 
+__USE_GNU
+
+
+926 
+	#__Ãed_g‘Ýt
+
+
+	)
+
+927 
+	~<g‘Ýt.h
+>
+
+932 #ifdeà
+__USE_EXTERN_INLINES
+
+
+933 
+	~<b™s/¡dio.h
+>
+
+935 #ià
+__USE_FORTIFY_LEVEL
+ > 0 && 
+defšed
+ 
+__fÜtify_funùiÚ
+
+
+936 
+	~<b™s/¡dio2.h
+>
+
+938 #ifdeà
+__LDBL_COMPAT
+
+
+939 
+	~<b™s/¡dio-ldbl.h
+>
+
+942 
+__END_DECLS
+
+
+	@/usr/include/stdlib.h
+
+22 #iâdef 
+_STDLIB_H
+
+
+24 
+	~<ã©u»s.h
+>
+
+27 
+	#__Ãed_size_t
+
+
+	)
+
+28 #iâdeà
+__Ãed_m®loc_ªd_ÿÎoc
+
+
+29 
+	#__Ãed_wch¬_t
+
+
+	)
+
+30 
+	#__Ãed_NULL
+
+
+	)
+
+32 
+	~<¡ddef.h
+>
+
+34 
+	g__BEGIN_DECLS
+
+
+36 #iâdeà
+__Ãed_m®loc_ªd_ÿÎoc
+
+
+37 
+	#_STDLIB_H
+ 1
+
+	)
+
+39 #ià(
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_XOPEN2K8
+è&& !defšed 
+_SYS_WAIT_H
+
+
+41 
+	~<b™s/wa™æags.h
+>
+
+42 
+	~<b™s/wa™¡©us.h
+>
+
+44 #ifdeà
+__USE_MISC
+
+
+49 #ià
+defšed
+ 
+__GNUC__
+ && !defšed 
+__ýlu¥lus
+
+
+50 
+	#__WAIT_INT
+(
+¡©us
+) \
+
+51 (
+	`__ex‹nsiÚ__
+ (((uniÚ { 
+	`__ty³of
+(
+¡©us
+è
+__š
+; 
+__i
+; }) \
+
+52 { .
+__š
+ = (
+¡©us
+è}).
+__i
+))
+
+	)
+
+54 
+	#__WAIT_INT
+(
+¡©us
+è(*(*è&(¡©us))
+
+	)
+
+62 #ià!
+defšed
+ 
+__GNUC__
+ || __GNUC__ < 2 || defšed 
+__ýlu¥lus
+
+
+63 
+	#__WAIT_STATUS
+ *
+
+	)
+
+64 
+	#__WAIT_STATUS_DEFN
+ *
+
+	)
+
+69 
+wa™
+ *
+	m__u±r
+;
+
+70 *
+	m__Œ
+;
+
+71 } 
+	t__WAIT_STATUS
+ 
+	t__©Œibu‹__
+ ((
+	t__Œª¥¬’t_uniÚ__
+));
+
+72 
+	#__WAIT_STATUS_DEFN
+ *
+
+	)
+
+77 
+	#__WAIT_INT
+(
+¡©us
+è(¡©us)
+
+	)
+
+78 
+	#__WAIT_STATUS
+ *
+
+	)
+
+79 
+	#__WAIT_STATUS_DEFN
+ *
+
+	)
+
+84 
+	#WEXITSTATUS
+(
+¡©us
+è
+	`__WEXITSTATUS
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+85 
+	#WTERMSIG
+(
+¡©us
+è
+	`__WTERMSIG
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+86 
+	#WSTOPSIG
+(
+¡©us
+è
+	`__WSTOPSIG
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+87 
+	#WIFEXITED
+(
+¡©us
+è
+	`__WIFEXITED
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+88 
+	#WIFSIGNALED
+(
+¡©us
+è
+	`__WIFSIGNALED
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+89 
+	#WIFSTOPPED
+(
+¡©us
+è
+	`__WIFSTOPPED
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+90 #ifdeà
+__WIFCONTINUED
+
+
+91 
+	#WIFCONTINUED
+(
+¡©us
+è
+	`__WIFCONTINUED
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+95 
+__BEGIN_NAMESPACE_STD
+
+
+99 
+	mquÙ
+;
+
+100 
+	m»m
+;
+
+101 } 
+	tdiv_t
+;
+
+104 #iâdeà
+__ldiv_t_defšed
+
+
+107 
+	mquÙ
+;
+
+108 
+	m»m
+;
+
+109 } 
+	tldiv_t
+;
+
+110 
+	#__ldiv_t_defšed
+ 1
+
+	)
+
+112 
+	g__END_NAMESPACE_STD
+
+
+114 #ià
+defšed
+ 
+__USE_ISOC99
+ && !defšed 
+__Îdiv_t_defšed
+
+
+115 
+__BEGIN_NAMESPACE_C99
+
+
+117 
+__ex‹nsiÚ__
+ struct
+
+119 
+	mquÙ
+;
+
+120 
+	m»m
+;
+
+121 } 
+	tÎdiv_t
+;
+
+122 
+	#__Îdiv_t_defšed
+ 1
+
+	)
+
+123 
+	g__END_NAMESPACE_C99
+
+
+128 
+	#RAND_MAX
+ 2147483647
+
+	)
+
+133 
+	#EXIT_FAILURE
+ 1
+
+	)
+
+134 
+	#EXIT_SUCCESS
+ 0
+
+	)
+
+138 
+	#MB_CUR_MAX
+ (
+	`__ùy³_g‘_mb_cur_max
+ ())
+
+	)
+
+139 
+size_t
+ 
+	$__ùy³_g‘_mb_cur_max
+ (è
+__THROW
+ 
+__wur
+;
+
+142 
+__BEGIN_NAMESPACE_STD
+
+
+144 

+	$©of
+ (cÚ¡ *
+__Ō
+)
+
+145 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+147 

+	$©oi
+ (cÚ¡ *
+__Ō
+)
+
+148 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+150 

+	$©Þ
+ (cÚ¡ *
+__Ō
+)
+
+151 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+152 
+__END_NAMESPACE_STD
+
+
+154 #ifdeà
+__USE_ISOC99
+
+
+155 
+__BEGIN_NAMESPACE_C99
+
+
+157 
+__ex‹nsiÚ__
+ 

+	$©Þl
+ (cÚ¡ *
+__Ō
+)
+
+158 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+159 
+__END_NAMESPACE_C99
+
+
+162 
+__BEGIN_NAMESPACE_STD
+
+
+164 

+	$¡¹od
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+165 **
+__»¡riù
+ 
+__’d±r
+)
+
+166 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+167 
+__END_NAMESPACE_STD
+
+
+169 #ifdef 
+__USE_ISOC99
+
+
+170 
+__BEGIN_NAMESPACE_C99
+
+
+172 

+	$¡¹of
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+173 **
+__»¡riù
+ 
+__’d±r
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+175 

+	$¡¹Þd
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+176 **
+__»¡riù
+ 
+__’d±r
+)
+
+177 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+178 
+__END_NAMESPACE_C99
+
+
+181 
+__BEGIN_NAMESPACE_STD
+
+
+183 

+	$¡¹Þ
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+184 **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+)
+
+185 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+187 

+	$¡¹oul
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+188 **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+)
+
+189 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+190 
+__END_NAMESPACE_STD
+
+
+192 #ifdeà
+__USE_MISC
+
+
+194 
+__ex‹nsiÚ__
+
+
+195 

+	$¡¹oq
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+196 **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+)
+
+197 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+199 
+__ex‹nsiÚ__
+
+
+200 

+	$¡¹ouq
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+201 **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+)
+
+202 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+205 #ifdeà
+__USE_ISOC99
+
+
+206 
+__BEGIN_NAMESPACE_C99
+
+
+208 
+__ex‹nsiÚ__
+
+
+209 

+	$¡¹Þl
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+210 **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+)
+
+211 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+213 
+__ex‹nsiÚ__
+
+
+214 

+	$¡¹ouÎ
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+215 **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+)
+
+216 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+217 
+__END_NAMESPACE_C99
+
+
+221 #ifdeà
+__USE_GNU
+
+
+235 
+	~<xloÿË.h
+>
+
+239 

+	$¡¹Þ_l
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+240 **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+,
+
+241 
+__loÿË_t
+ 
+__loc
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 4));
+
+243 

+	$¡¹oul_l
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+244 **
+__»¡riù
+ 
+__’d±r
+,
+
+245 
+__ba£
+, 
+__loÿË_t
+ 
+__loc
+)
+
+246 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 4));
+
+248 
+__ex‹nsiÚ__
+
+
+249 

+	$¡¹Þl_l
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+250 **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+,
+
+251 
+__loÿË_t
+ 
+__loc
+)
+
+252 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 4));
+
+254 
+__ex‹nsiÚ__
+
+
+255 

+	$¡¹ouÎ_l
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+256 **
+__»¡riù
+ 
+__’d±r
+,
+
+257 
+__ba£
+, 
+__loÿË_t
+ 
+__loc
+)
+
+258 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 4));
+
+260 

+	$¡¹od_l
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+261 **
+__»¡riù
+ 
+__’d±r
+, 
+__loÿË_t
+ 
+__loc
+)
+
+262 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 3));
+
+264 

+	$¡¹of_l
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+265 **
+__»¡riù
+ 
+__’d±r
+, 
+__loÿË_t
+ 
+__loc
+)
+
+266 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 3));
+
+268 

+	$¡¹Þd_l
+ (cÚ¡ *
+__»¡riù
+ 
+__Ō
+,
+
+269 **
+__»¡riù
+ 
+__’d±r
+,
+
+270 
+__loÿË_t
+ 
+__loc
+)
+
+271 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 3));
+
+275 #ifdeà
+__USE_EXTERN_INLINES
+
+
+276 
+__BEGIN_NAMESPACE_STD
+
+
+277 
+__ex‹º_šlše
+ 
+
+278 
+	`__NTH
+ (
+	$©oi
+ (cÚ¡ *
+__Ō
+))
+
+280  (è
+	`¡¹Þ
+ (
+__Ō
+, (**è
+NULL
+, 10);
+
+281 
+	}
+}
+
+282 
+__ex‹º_šlše
+ 
+
+283 
+__NTH
+ (
+	$©Þ
+ (cÚ¡ *
+__Ō
+))
+
+285  
+	`¡¹Þ
+ (
+__Ō
+, (**è
+NULL
+, 10);
+
+286 
+	}
+}
+
+287 
+	g__END_NAMESPACE_STD
+
+
+289 #ifdeà
+__USE_ISOC99
+
+
+290 
+__BEGIN_NAMESPACE_C99
+
+
+291 
+__ex‹nsiÚ__
+ 
+__ex‹º_šlše
+ 
+
+292 
+__NTH
+ (
+	$©Þl
+ (cÚ¡ *
+__Ō
+))
+
+294  
+	`¡¹Þl
+ (
+__Ō
+, (**è
+NULL
+, 10);
+
+295 
+	}
+}
+
+296 
+	g__END_NAMESPACE_C99
+
+
+301 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN_EXTENDED
+
+
+305 
*
+	$l64a
+ (
+__n
+è
+__THROW
+ 
+__wur
+;
+
+308 

+	$a64l
+ (cÚ¡ *
+__s
+)
+
+309 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+313 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN_EXTENDED
+
+
+314 
+	~<sys/ty³s.h
+>
+
+321 

+	$¿ndom
+ (è
+__THROW
+;
+
+324 

+	$¤ªdom
+ (
+__£ed
+è
+__THROW
+;
+
+330 
*
+	$š™¡©e
+ (
+__£ed
+, *
+__¡©ebuf
+,
+
+331 
+size_t
+ 
+__¡©–’
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((2));
+
+335 
*
+	$£t¡©e
+ (*
+__¡©ebuf
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+338 #ifdeà
+__USE_MISC
+
+
+343 
+	s¿ndom_d©a
+
+
+345 
+št32_t
+ *
+åŒ
+;
+
+346 
+št32_t
+ *
+½Œ
+;
+
+347 
+št32_t
+ *
+¡©e
+;
+
+348 
+¿nd_ty³
+;
+
+349 
+¿nd_deg
+;
+
+350 
+¿nd_£p
+;
+
+351 
+št32_t
+ *
+’d_±r
+;
+
+354 

+	$¿ndom_r
+ (
+¿ndom_d©a
+ *
+__»¡riù
+ 
+__buf
+,
+
+355 
+št32_t
+ *
+__»¡riù
+ 
+__»suÉ
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+357 

+	$¤ªdom_r
+ (
+__£ed
+, 
+¿ndom_d©a
+ *
+__buf
+)
+
+358 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2));
+
+360 

+	$š™¡©e_r
+ (
+__£ed
+, *
+__»¡riù
+ 
+__¡©ebuf
+,
+
+361 
+size_t
+ 
+__¡©–’
+,
+
+362 
+¿ndom_d©a
+ *
+__»¡riù
+ 
+__buf
+)
+
+363 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2, 4));
+
+365 

+	$£t¡©e_r
+ (*
+__»¡riù
+ 
+__¡©ebuf
+,
+
+366 
+¿ndom_d©a
+ *
+__»¡riù
+ 
+__buf
+)
+
+367 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+372 
+__BEGIN_NAMESPACE_STD
+
+
+374 

+	$¿nd
+ (è
+__THROW
+;
+
+376 

+	$¤ªd
+ (
+__£ed
+è
+__THROW
+;
+
+377 
+__END_NAMESPACE_STD
+
+
+379 #ifdeà
+__USE_POSIX
+
+
+381 

+	$¿nd_r
+ (*
+__£ed
+è
+__THROW
+;
+
+385 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+389 

+	$d¿nd48
+ (è
+__THROW
+;
+
+390 

+	$ӻd48
+ (
+__xsubi
+[3]è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+393 

+	$̪d48
+ (è
+__THROW
+;
+
+394 

+	$Īd48
+ (
+__xsubi
+[3])
+
+395 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+398 

+	$m¿nd48
+ (è
+__THROW
+;
+
+399 

+	$j¿nd48
+ (
+__xsubi
+[3])
+
+400 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+403 

+	$¤ªd48
+ (
+__£edv®
+è
+__THROW
+;
+
+404 
*
+	$£ed48
+ (
+__£ed16v
+[3])
+
+405 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+406 

+	$lcÚg48
+ (
+__·¿m
+[7]è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+408 #ifdeà
+__USE_MISC
+
+
+412 
+	sd¿nd48_d©a
+
+
+414 
+__x
+[3];
+
+415 
+__Þd_x
+[3];
+
+416 
+__c
+;
+
+417 
+__š™
+;
+
+418 
+__ex‹nsiÚ__
+ 
+__a
+;
+
+423 

+	$d¿nd48_r
+ (
+d¿nd48_d©a
+ *
+__»¡riù
+ 
+__bufãr
+,
+
+424 *
+__»¡riù
+ 
+__»suÉ
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+425 

+	$ӻd48_r
+ (
+__xsubi
+[3],
+
+426 
+d¿nd48_d©a
+ *
+__»¡riù
+ 
+__bufãr
+,
+
+427 *
+__»¡riù
+ 
+__»suÉ
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+430 

+	$̪d48_r
+ (
+d¿nd48_d©a
+ *
+__»¡riù
+ 
+__bufãr
+,
+
+431 *
+__»¡riù
+ 
+__»suÉ
+)
+
+432 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+433 

+	$Īd48_r
+ (
+__xsubi
+[3],
+
+434 
+d¿nd48_d©a
+ *
+__»¡riù
+ 
+__bufãr
+,
+
+435 *
+__»¡riù
+ 
+__»suÉ
+)
+
+436 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+439 

+	$m¿nd48_r
+ (
+d¿nd48_d©a
+ *
+__»¡riù
+ 
+__bufãr
+,
+
+440 *
+__»¡riù
+ 
+__»suÉ
+)
+
+441 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+442 

+	$j¿nd48_r
+ (
+__xsubi
+[3],
+
+443 
+d¿nd48_d©a
+ *
+__»¡riù
+ 
+__bufãr
+,
+
+444 *
+__»¡riù
+ 
+__»suÉ
+)
+
+445 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+448 

+	$¤ªd48_r
+ (
+__£edv®
+, 
+d¿nd48_d©a
+ *
+__bufãr
+)
+
+449 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2));
+
+451 

+	$£ed48_r
+ (
+__£ed16v
+[3],
+
+452 
+d¿nd48_d©a
+ *
+__bufãr
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+454 

+	$lcÚg48_r
+ (
+__·¿m
+[7],
+
+455 
+d¿nd48_d©a
+ *
+__bufãr
+)
+
+456 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+462 #iâdeà
+__m®loc_ªd_ÿÎoc_defšed
+
+
+463 
+	#__m®loc_ªd_ÿÎoc_defšed
+
+
+	)
+
+464 
+__BEGIN_NAMESPACE_STD
+
+
+466 
*
+	$m®loc
+ (
+size_t
+ 
+__size
+è
+__THROW
+ 
+__©Œibu‹_m®loc__
+ 
+__wur
+;
+
+468 
*
+	$ÿÎoc
+ (
+size_t
+ 
+__nmemb
+, size_ˆ
+__size
+)
+
+469 
+__THROW
+ 
+__©Œibu‹_m®loc__
+ 
+__wur
+;
+
+470 
+__END_NAMESPACE_STD
+
+
+473 #iâdeà
+__Ãed_m®loc_ªd_ÿÎoc
+
+
+474 
+__BEGIN_NAMESPACE_STD
+
+
+480 
*
+	$»®loc
+ (*
+__±r
+, 
+size_t
+ 
+__size
+)
+
+481 
+__THROW
+ 
+__©Œibu‹_w¬n_unu£d_»suÉ__
+;
+
+483 

+	$ä“
+ (*
+__±r
+è
+__THROW
+;
+
+484 
+__END_NAMESPACE_STD
+
+
+486 #ifdef 
+__USE_MISC
+
+
+488 

+	$cä“
+ (*
+__±r
+è
+__THROW
+;
+
+491 #ifdeà
+__USE_MISC
+
+
+492 
+	~<®loÿ.h
+>
+
+495 #ià(
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ && !defšed 
+__USE_XOPEN2K
+) \
+
+496 || 
+defšed
+ 
+__USE_MISC
+
+
+498 
*
+	$v®loc
+ (
+size_t
+ 
+__size
+è
+__THROW
+ 
+__©Œibu‹_m®loc__
+ 
+__wur
+;
+
+501 #ifdeà
+__USE_XOPEN2K
+
+
+503 

+	$posix_mem®ign
+ (**
+__mem±r
+, 
+size_t
+ 
+__®ignm’t
+, size_ˆ
+__size
+)
+
+504 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+507 #ifdeà
+__USE_ISOC11
+
+
+509 
*
+	$®igÃd_®loc
+ (
+size_t
+ 
+__®ignm’t
+, size_ˆ
+__size
+)
+
+510 
+__THROW
+ 
+__©Œibu‹_m®loc__
+ 
+	`__©Œibu‹_®loc_size__
+ ((2)è
+__wur
+;
+
+513 
+__BEGIN_NAMESPACE_STD
+
+
+515 

+	$abÜt
+ (è
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__nܑuº__
+));
+
+519 

+	$©ex™
+ ((*
+__func
+è()è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+521 #ià
+defšed
+ 
+__USE_ISOC11
+ || defšed 
+__USE_ISOCXX11
+
+
+523 #ifdeà
+__ýlu¥lus
+
+
+524 
"C++" 
+	$©_quick_ex™
+ ((*
+__func
+) ())
+
+525 
+__THROW
+ 
+	`__asm
+ ("©_quick_ex™"è
+	`__nÚnuÎ
+ ((1));
+
+527 

+	$©_quick_ex™
+ ((*
+__func
+è()è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+530 
+__END_NAMESPACE_STD
+
+
+532 #ifdef 
+__USE_MISC
+
+
+535 

+	$Ú_ex™
+ ((*
+__func
+è(
+__¡©us
+, *
+__¬g
+), *__arg)
+
+536 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+539 
+__BEGIN_NAMESPACE_STD
+
+
+543 

+	$ex™
+ (
+__¡©us
+è
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__nܑuº__
+));
+
+545 #ià
+defšed
+ 
+__USE_ISOC11
+ || defšed 
+__USE_ISOCXX11
+
+
+549 

+	$quick_ex™
+ (
+__¡©us
+è
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__nܑuº__
+));
+
+551 
+__END_NAMESPACE_STD
+
+
+553 #ifdeà
+__USE_ISOC99
+
+
+554 
+__BEGIN_NAMESPACE_C99
+
+
+557 

+	$_Ex™
+ (
+__¡©us
+è
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__nܑuº__
+));
+
+558 
+__END_NAMESPACE_C99
+
+
+562 
+__BEGIN_NAMESPACE_STD
+
+
+564 
*
+	$g‘’v
+ (cÚ¡ *
+__Çme
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+565 
+__END_NAMESPACE_STD
+
+
+567 #ifdeà
+__USE_GNU
+
+
+570 
*
+	$£cu»_g‘’v
+ (cÚ¡ *
+__Çme
+)
+
+571 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+574 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+578 

+	$pu‹nv
+ (*
+__¡ršg
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+581 #ifdeà
+__USE_XOPEN2K
+
+
+584 

+	$£‹nv
+ (cÚ¡ *
+__Çme
+, cÚ¡ *
+__v®ue
+, 
+__»¶aû
+)
+
+585 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2));
+
+588 

+	$un£‹nv
+ (cÚ¡ *
+__Çme
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+591 #ifdef 
+__USE_MISC
+
+
+595 

+	$þ—»nv
+ (è
+__THROW
+;
+
+599 #ià
+defšed
+ 
+__USE_MISC
+ \
+
+600 || (
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ && !defšed 
+__USE_XOPEN2K8
+)
+
+606 
*
+	$mk‹mp
+ (*
+__‹m¶©e
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+609 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K8
+
+
+618 #iâdeà
+__USE_FILE_OFFSET64
+
+
+619 

+	$mk¡emp
+ (*
+__‹m¶©e
+è
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+621 #ifdeà
+__REDIRECT
+
+
+622 

+	`__REDIRECT
+ (
+mk¡emp
+, (*
+__‹m¶©e
+), 
+mk¡emp64
+)
+
+623 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+625 
+	#mk¡emp
+ 
+mk¡emp64
+
+
+	)
+
+628 #ifdeà
+__USE_LARGEFILE64
+
+
+629 

+	$mk¡emp64
+ (*
+__‹m¶©e
+è
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+633 #ifdeà
+__USE_MISC
+
+
+640 #iâdeà
+__USE_FILE_OFFSET64
+
+
+641 

+	$mk¡emps
+ (*
+__‹m¶©e
+, 
+__suffixËn
+è
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+643 #ifdeà
+__REDIRECT
+
+
+644 

+	`__REDIRECT
+ (
+mk¡emps
+, (*
+__‹m¶©e
+, 
+__suffixËn
+),
+
+645 
+mk¡emps64
+è
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+647 
+	#mk¡emps
+ 
+mk¡emps64
+
+
+	)
+
+650 #ifdeà
+__USE_LARGEFILE64
+
+
+651 

+	$mk¡emps64
+ (*
+__‹m¶©e
+, 
+__suffixËn
+)
+
+652 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+656 #ifdeà
+__USE_XOPEN2K8
+
+
+662 
*
+	$mkd‹mp
+ (*
+__‹m¶©e
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+665 #ifdeà
+__USE_GNU
+
+
+672 #iâdeà
+__USE_FILE_OFFSET64
+
+
+673 

+	$mko¡emp
+ (*
+__‹m¶©e
+, 
+__æags
+è
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+675 #ifdeà
+__REDIRECT
+
+
+676 

+	`__REDIRECT
+ (
+mko¡emp
+, (*
+__‹m¶©e
+, 
+__æags
+), 
+mko¡emp64
+)
+
+677 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+679 
+	#mko¡emp
+ 
+mko¡emp64
+
+
+	)
+
+682 #ifdeà
+__USE_LARGEFILE64
+
+
+683 

+	$mko¡emp64
+ (*
+__‹m¶©e
+, 
+__æags
+è
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+692 #iâdeà
+__USE_FILE_OFFSET64
+
+
+693 

+	$mko¡emps
+ (*
+__‹m¶©e
+, 
+__suffixËn
+, 
+__æags
+)
+
+694 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+696 #ifdeà
+__REDIRECT
+
+
+697 

+	`__REDIRECT
+ (
+mko¡emps
+, (*
+__‹m¶©e
+, 
+__suffixËn
+,
+
+698 
+__æags
+), 
+mko¡emps64
+)
+
+699 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+701 
+	#mko¡emps
+ 
+mko¡emps64
+
+
+	)
+
+704 #ifdeà
+__USE_LARGEFILE64
+
+
+705 

+	$mko¡emps64
+ (*
+__‹m¶©e
+, 
+__suffixËn
+, 
+__æags
+)
+
+706 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+711 
+__BEGIN_NAMESPACE_STD
+
+
+716 

+	$sy¡em
+ (cÚ¡ *
+__commªd
+è
+__wur
+;
+
+717 
+__END_NAMESPACE_STD
+
+
+720 #ifdef 
+__USE_GNU
+
+
+723 
*
+	$ÿnÚiÿlize_fže_Çme
+ (cÚ¡ *
+__Çme
+)
+
+724 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+727 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN_EXTENDED
+
+
+733 
*
+	$»®·th
+ (cÚ¡ *
+__»¡riù
+ 
+__Çme
+,
+
+734 *
+__»¡riù
+ 
+__»sÞved
+è
+__THROW
+ 
+__wur
+;
+
+739 #iâdeà
+__COMPAR_FN_T
+
+
+740 
+	#__COMPAR_FN_T
+
+
+	)
+
+741 (*
+	t__com·r_â_t
+) (const *, const *);
+
+743 #ifdef 
+__USE_GNU
+
+
+744 
+__com·r_â_t
+ 
+	tcom·risÚ_â_t
+;
+
+747 #ifdeà
+__USE_GNU
+
+
+748 (*
+	t__com·r_d_â_t
+) (const *, const *, *);
+
+751 
+__BEGIN_NAMESPACE_STD
+
+
+754 
*
+	$b£¬ch
+ (cÚ¡ *
+__key
+, cÚ¡ *
+__ba£
+,
+
+755 
+size_t
+ 
+__nmemb
+, size_ˆ
+__size
+, 
+__com·r_â_t
+ 
+__com·r
+)
+
+756 
+	`__nÚnuÎ
+ ((1, 2, 5)è
+__wur
+;
+
+758 #ifdeà
+__USE_EXTERN_INLINES
+
+
+759 
+	~<b™s/¡dlib-b£¬ch.h
+>
+
+764 

+	$qsÜt
+ (*
+__ba£
+, 
+size_t
+ 
+__nmemb
+, size_ˆ
+__size
+,
+
+765 
+__com·r_â_t
+ 
+__com·r
+è
+	`__nÚnuÎ
+ ((1, 4));
+
+766 #ifdeà
+__USE_GNU
+
+
+767 

+	$qsÜt_r
+ (*
+__ba£
+, 
+size_t
+ 
+__nmemb
+, size_ˆ
+__size
+,
+
+768 
+__com·r_d_â_t
+ 
+__com·r
+, *
+__¬g
+)
+
+769 
+	`__nÚnuÎ
+ ((1, 4));
+
+774 

+	$abs
+ (
+__x
+è
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+)è
+__wur
+;
+
+775 

+	$Ïbs
+ (
+__x
+è
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+)è
+__wur
+;
+
+776 
+__END_NAMESPACE_STD
+
+
+778 #ifdeà
+__USE_ISOC99
+
+
+779 
+__ex‹nsiÚ__
+ 

+	$Îabs
+ (
+__x
+)
+
+780 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+)è
+__wur
+;
+
+784 
+__BEGIN_NAMESPACE_STD
+
+
+788 
+div_t
+ 
+	$div
+ (
+__num”
+, 
+__d’om
+)
+
+789 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+)è
+__wur
+;
+
+790 
+ldiv_t
+ 
+	$ldiv
+ (
+__num”
+, 
+__d’om
+)
+
+791 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+)è
+__wur
+;
+
+792 
+__END_NAMESPACE_STD
+
+
+794 #ifdeà
+__USE_ISOC99
+
+
+795 
+__BEGIN_NAMESPACE_C99
+
+
+796 
+__ex‹nsiÚ__
+ 
+Îdiv_t
+ 
+	$Îdiv
+ (
+__num”
+,
+
+797 
+__d’om
+)
+
+798 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+)è
+__wur
+;
+
+799 
+__END_NAMESPACE_C99
+
+
+803 #ià(
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ && !defšed 
+__USE_XOPEN2K8
+) \
+
+804 || 
+defšed
+ 
+__USE_MISC
+
+
+811 
*
+	$ecvt
+ (
+__v®ue
+, 
+__ndig™
+, *
+__»¡riù
+ 
+__deýt
+,
+
+812 *
+__»¡riù
+ 
+__sign
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((3, 4)è
+__wur
+;
+
+817 
*
+	$fcvt
+ (
+__v®ue
+, 
+__ndig™
+, *
+__»¡riù
+ 
+__deýt
+,
+
+818 *
+__»¡riù
+ 
+__sign
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((3, 4)è
+__wur
+;
+
+823 
*
+	$gcvt
+ (
+__v®ue
+, 
+__ndig™
+, *
+__buf
+)
+
+824 
+__THROW
+ 
+	`__nÚnuÎ
+ ((3)è
+__wur
+;
+
+827 #ifdeà
+__USE_MISC
+
+
+829 
*
+	$qecvt
+ (
+__v®ue
+, 
+__ndig™
+,
+
+830 *
+__»¡riù
+ 
+__deýt
+, *__»¡riù 
+__sign
+)
+
+831 
+__THROW
+ 
+	`__nÚnuÎ
+ ((3, 4)è
+__wur
+;
+
+832 
*
+	$qfcvt
+ (
+__v®ue
+, 
+__ndig™
+,
+
+833 *
+__»¡riù
+ 
+__deýt
+, *__»¡riù 
+__sign
+)
+
+834 
+__THROW
+ 
+	`__nÚnuÎ
+ ((3, 4)è
+__wur
+;
+
+835 
*
+	$qgcvt
+ (
+__v®ue
+, 
+__ndig™
+, *
+__buf
+)
+
+836 
+__THROW
+ 
+	`__nÚnuÎ
+ ((3)è
+__wur
+;
+
+841 

+	$ecvt_r
+ (
+__v®ue
+, 
+__ndig™
+, *
+__»¡riù
+ 
+__deýt
+,
+
+842 *
+__»¡riù
+ 
+__sign
+, *__»¡riù 
+__buf
+,
+
+843 
+size_t
+ 
+__Ën
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((3, 4, 5));
+
+844 

+	$fcvt_r
+ (
+__v®ue
+, 
+__ndig™
+, *
+__»¡riù
+ 
+__deýt
+,
+
+845 *
+__»¡riù
+ 
+__sign
+, *__»¡riù 
+__buf
+,
+
+846 
+size_t
+ 
+__Ën
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((3, 4, 5));
+
+848 

+	$qecvt_r
+ (
+__v®ue
+, 
+__ndig™
+,
+
+849 *
+__»¡riù
+ 
+__deýt
+, *__»¡riù 
+__sign
+,
+
+850 *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__Ën
+)
+
+851 
+__THROW
+ 
+	`__nÚnuÎ
+ ((3, 4, 5));
+
+852 

+	$qfcvt_r
+ (
+__v®ue
+, 
+__ndig™
+,
+
+853 *
+__»¡riù
+ 
+__deýt
+, *__»¡riù 
+__sign
+,
+
+854 *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__Ën
+)
+
+855 
+__THROW
+ 
+	`__nÚnuÎ
+ ((3, 4, 5));
+
+859 
+__BEGIN_NAMESPACE_STD
+
+
+862 

+	$mbËn
+ (cÚ¡ *
+__s
+, 
+size_t
+ 
+__n
+è
+__THROW
+;
+
+865 

+	$mbtowc
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__pwc
+,
+
+866 cÚ¡ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+è
+__THROW
+;
+
+869 

+	$wùomb
+ (*
+__s
+, 
+wch¬_t
+ 
+__wch¬
+è
+__THROW
+;
+
+873 
+size_t
+ 
+	$mb¡owcs
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__pwcs
+,
+
+874 cÚ¡ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+è
+__THROW
+;
+
+876 
+size_t
+ 
+	$wc¡ombs
+ (*
+__»¡riù
+ 
+__s
+,
+
+877 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__pwcs
+, 
+size_t
+ 
+__n
+)
+
+878 
+__THROW
+;
+
+879 
+__END_NAMESPACE_STD
+
+
+882 #ifdeà
+__USE_MISC
+
+
+887 

+	$½m©ch
+ (cÚ¡ *
+__»¥Ú£
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+891 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K8
+
+
+898 

+	$g‘subÝt
+ (**
+__»¡riù
+ 
+__ÝtiÚp
+,
+
+899 *cÚ¡ *
+__»¡riù
+ 
+__tok’s
+,
+
+900 **
+__»¡riù
+ 
+__v®u•
+)
+
+901 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2, 3)è
+__wur
+;
+
+905 #ifdeà
+__USE_XOPEN
+
+
+907 

+	$£tkey
+ (cÚ¡ *
+__key
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+913 #ifdeà
+__USE_XOPEN2KXSI
+
+
+915 

+	$posix_ݒ±
+ (
+__oæag
+è
+__wur
+;
+
+918 #ifdeà
+__USE_XOPEN
+
+
+923 

+	$g¿Á±
+ (
+__fd
+è
+__THROW
+;
+
+927 

+	$uÆock±
+ (
+__fd
+è
+__THROW
+;
+
+932 
*
+	$±¢ame
+ (
+__fd
+è
+__THROW
+ 
+__wur
+;
+
+935 #ifdeà
+__USE_GNU
+
+
+939 

+	$±¢ame_r
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__buæ’
+)
+
+940 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2));
+
+943 

+	`g‘±
+ ();
+
+946 #ifdeà
+__USE_MISC
+
+
+950 

+	$g‘lßdavg
+ (
+__lßdavg
+[], 
+__ÃËm
+)
+
+951 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+954 
+	~<b™s/¡dlib-æßt.h
+>
+
+957 #ià
+__USE_FORTIFY_LEVEL
+ > 0 && 
+defšed
+ 
+__fÜtify_funùiÚ
+
+
+958 
+	~<b™s/¡dlib.h
+>
+
+960 #ifdeà
+__LDBL_COMPAT
+
+
+961 
+	~<b™s/¡dlib-ldbl.h
+>
+
+965 #undeà
+__Ãed_m®loc_ªd_ÿÎoc
+
+
+967 
+__END_DECLS
+
+
+	@/usr/include/string.h
+
+22 #iâdef 
+_STRING_H
+
+
+23 
+	#_STRING_H
+ 1
+
+	)
+
+25 
+	~<ã©u»s.h
+>
+
+27 
+	g__BEGIN_DECLS
+
+
+30 
+	#__Ãed_size_t
+
+
+	)
+
+31 
+	#__Ãed_NULL
+
+
+	)
+
+32 
+	~<¡ddef.h
+>
+
+35 #ià
+defšed
+ 
+__ýlu¥lus
+ && 
+__GNUC_PREREQ
+ (4, 4)
+
+36 
+	#__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+	)
+
+40 
+__BEGIN_NAMESPACE_STD
+
+
+42 
*
+	$memýy
+ (*
+__»¡riù
+ 
+__de¡
+, cÚ¡ *__»¡riù 
+__¤c
+,
+
+43 
+size_t
+ 
+__n
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+46 
*
+	$memmove
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+47 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+48 
+__END_NAMESPACE_STD
+
+
+53 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+54 
*
+	$memcýy
+ (*
+__»¡riù
+ 
+__de¡
+, cÚ¡ *__»¡riù 
+__¤c
+,
+
+55 
+__c
+, 
+size_t
+ 
+__n
+)
+
+56 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+60 
+__BEGIN_NAMESPACE_STD
+
+
+62 
*
+	$mem£t
+ (*
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+65 

+	$memcmp
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+, 
+size_t
+ 
+__n
+)
+
+66 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+69 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+72 
*
+	`memchr
+ (*
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+)
+
+73 
+__THROW
+ 
+	`__asm
+ ("memchr"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+74 
cÚ¡ *
+	`memchr
+ (cÚ¡ *
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+)
+
+75 
+__THROW
+ 
+	`__asm
+ ("memchr"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+77 #ifdeà
+__OPTIMIZE__
+
+
+78 
+__ex‹º_®ways_šlše
+ *
+
+79 
+	`memchr
+ (*
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+è
+__THROW
+
+
+81  
+	`__bužtš_memchr
+ (
+__s
+, 
+__c
+, 
+__n
+);
+
+84 
+__ex‹º_®ways_šlše
+ const *
+
+85 
+	`memchr
+ (cÚ¡ *
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+è
+__THROW
+
+
+87  
+	`__bužtš_memchr
+ (
+__s
+, 
+__c
+, 
+__n
+);
+
+90 
+	}
+}
+
+92 
*
+	$memchr
+ (cÚ¡ *
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+)
+
+93 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+95 
+__END_NAMESPACE_STD
+
+
+97 #ifdeà
+__USE_GNU
+
+
+100 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+101 
"C++" *
+	$¿wmemchr
+ (*
+__s
+, 
+__c
+)
+
+102 
+__THROW
+ 
+	`__asm
+ ("¿wmemchr"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+103 
"C++" cÚ¡ *
+	$¿wmemchr
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+104 
+__THROW
+ 
+	`__asm
+ ("¿wmemchr"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+106 
*
+	$¿wmemchr
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+107 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+111 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+112 
"C++" *
+	$memrchr
+ (*
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+)
+
+113 
+__THROW
+ 
+	`__asm
+ ("memrchr"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+114 
"C++" cÚ¡ *
+	$memrchr
+ (cÚ¡ *
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+)
+
+115 
+__THROW
+ 
+	`__asm
+ ("memrchr"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+117 
*
+	$memrchr
+ (cÚ¡ *
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+)
+
+118 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+123 
+__BEGIN_NAMESPACE_STD
+
+
+125 
*
+	$¡rýy
+ (*
+__»¡riù
+ 
+__de¡
+, cÚ¡ *__»¡riù 
+__¤c
+)
+
+126 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+128 
*
+	$¡ºýy
+ (*
+__»¡riù
+ 
+__de¡
+,
+
+129 cÚ¡ *
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+130 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+133 
*
+	$¡rÿt
+ (*
+__»¡riù
+ 
+__de¡
+, cÚ¡ *__»¡riù 
+__¤c
+)
+
+134 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+136 
*
+	$¡ºÿt
+ (*
+__»¡riù
+ 
+__de¡
+, cÚ¡ *__»¡riù 
+__¤c
+,
+
+137 
+size_t
+ 
+__n
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+140 

+	$¡rcmp
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+)
+
+141 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+143 

+	$¡ºcmp
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+, 
+size_t
+ 
+__n
+)
+
+144 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+147 

+	$¡rcÞl
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+)
+
+148 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+150 
+size_t
+ 
+	$¡rxäm
+ (*
+__»¡riù
+ 
+__de¡
+,
+
+151 cÚ¡ *
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+152 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2));
+
+153 
+__END_NAMESPACE_STD
+
+
+155 #ifdeà
+__USE_XOPEN2K8
+
+
+159 
+	~<xloÿË.h
+>
+
+162 

+	$¡rcÞl_l
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+, 
+__loÿË_t
+ 
+__l
+)
+
+163 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2, 3));
+
+165 
+size_t
+ 
+	$¡rxäm_l
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+, 
+size_t
+ 
+__n
+,
+
+166 
+__loÿË_t
+ 
+__l
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((2, 4));
+
+169 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K8
+
+
+171 
*
+	$¡rdup
+ (cÚ¡ *
+__s
+)
+
+172 
+__THROW
+ 
+__©Œibu‹_m®loc__
+ 
+	`__nÚnuÎ
+ ((1));
+
+178 #ià
+defšed
+ 
+__USE_XOPEN2K8
+
+
+179 
*
+	$¡ºdup
+ (cÚ¡ *
+__¡ršg
+, 
+size_t
+ 
+__n
+)
+
+180 
+__THROW
+ 
+__©Œibu‹_m®loc__
+ 
+	`__nÚnuÎ
+ ((1));
+
+183 #ià
+defšed
+ 
+__USE_GNU
+ && defšed 
+__GNUC__
+
+
+185 
+	#¡rdu·
+(
+s
+) \
+
+186 (
+__ex‹nsiÚ__
+ \
+
+188 cÚ¡ *
+__Þd
+ = (
+s
+); \
+
+189 
+size_t
+ 
+__Ën
+ = 
+	`¡¾’
+ (
+__Þd
+) + 1; \
+
+190 *
+__Ãw
+ = (*è
+	`__bužtš_®loÿ
+ (
+__Ën
+); \
+
+191 (*è
+	`memýy
+ (
+__Ãw
+, 
+__Þd
+, 
+__Ën
+); \
+
+192 
+	}
+}))
+
+	)
+
+195 
+	#¡ºdu·
+(
+s
+, 
+n
+) \
+
+196 (
+__ex‹nsiÚ__
+ \
+
+198 cÚ¡ *
+__Þd
+ = (
+s
+); \
+
+199 
+size_t
+ 
+__Ën
+ = 
+	`¡ºËn
+ (
+__Þd
+, (
+n
+)); \
+
+200 *
+__Ãw
+ = (*è
+	`__bužtš_®loÿ
+ (
+__Ën
+ + 1); \
+
+201 
+__Ãw
+[
+__Ën
+] = '\0'; \
+
+202 (*è
+	`memýy
+ (
+__Ãw
+, 
+__Þd
+, 
+__Ën
+); \
+
+203 }))
+
+	)
+
+206 
+	g__BEGIN_NAMESPACE_STD
+
+
+208 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+211 
*
+¡rchr
+ (*
+__s
+, 
+__c
+)
+
+212 
+__THROW
+ 
+__asm
+ ("¡rchr"è
+__©Œibu‹_pu»__
+ 
+__nÚnuÎ
+ ((1));
+
+213 
cÚ¡ *
+¡rchr
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+214 
+__THROW
+ 
+__asm
+ ("¡rchr"è
+__©Œibu‹_pu»__
+ 
+__nÚnuÎ
+ ((1));
+
+216 #ifdeà
+__OPTIMIZE__
+
+
+217 
+__ex‹º_®ways_šlše
+ *
+
+218 
+¡rchr
+ (*
+__s
+, 
+__c
+è
+	g__THROW
+
+
+220  
+__bužtš_¡rchr
+ (
+__s
+, 
+__c
+);
+
+223 
+__ex‹º_®ways_šlše
+ const *
+
+224 
+¡rchr
+ (cÚ¡ *
+__s
+, 
+__c
+è
+	g__THROW
+
+
+226  
+__bužtš_¡rchr
+ (
+__s
+, 
+__c
+);
+
+231 
*
+	$¡rchr
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+232 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+235 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+238 
*
+	`¡¼chr
+ (*
+__s
+, 
+__c
+)
+
+239 
+__THROW
+ 
+	`__asm
+ ("¡¼chr"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+240 
cÚ¡ *
+	`¡¼chr
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+241 
+__THROW
+ 
+	`__asm
+ ("¡¼chr"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+243 #ifdeà
+__OPTIMIZE__
+
+
+244 
+__ex‹º_®ways_šlše
+ *
+
+245 
+	`¡¼chr
+ (*
+__s
+, 
+__c
+è
+__THROW
+
+
+247  
+	`__bužtš_¡¼chr
+ (
+__s
+, 
+__c
+);
+
+250 
+__ex‹º_®ways_šlše
+ const *
+
+251 
+	`¡¼chr
+ (cÚ¡ *
+__s
+, 
+__c
+è
+__THROW
+
+
+253  
+	`__bužtš_¡¼chr
+ (
+__s
+, 
+__c
+);
+
+256 
+	}
+}
+
+258 
*
+	$¡¼chr
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+259 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+261 
+__END_NAMESPACE_STD
+
+
+263 #ifdeà
+__USE_GNU
+
+
+266 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+267 
"C++" *
+	$¡rchºul
+ (*
+__s
+, 
+__c
+)
+
+268 
+__THROW
+ 
+	`__asm
+ ("¡rchºul"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+269 
"C++" cÚ¡ *
+	$¡rchºul
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+270 
+__THROW
+ 
+	`__asm
+ ("¡rchºul"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+272 
*
+	$¡rchºul
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+273 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+277 
+__BEGIN_NAMESPACE_STD
+
+
+280 
+size_t
+ 
+	$¡rc¥n
+ (cÚ¡ *
+__s
+, cÚ¡ *
+__»jeù
+)
+
+281 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+284 
+size_t
+ 
+	$¡r¥n
+ (cÚ¡ *
+__s
+, cÚ¡ *
+__acû±
+)
+
+285 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+287 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+290 
*
+	`¡½brk
+ (*
+__s
+, cÚ¡ *
+__acû±
+)
+
+291 
+__THROW
+ 
+	`__asm
+ ("¡½brk"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+292 
cÚ¡ *
+	`¡½brk
+ (cÚ¡ *
+__s
+, cÚ¡ *
+__acû±
+)
+
+293 
+__THROW
+ 
+	`__asm
+ ("¡½brk"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+295 #ifdeà
+__OPTIMIZE__
+
+
+296 
+__ex‹º_®ways_šlše
+ *
+
+297 
+	`¡½brk
+ (*
+__s
+, cÚ¡ *
+__acû±
+è
+__THROW
+
+
+299  
+	`__bužtš_¡½brk
+ (
+__s
+, 
+__acû±
+);
+
+302 
+__ex‹º_®ways_šlše
+ const *
+
+303 
+	`¡½brk
+ (cÚ¡ *
+__s
+, cÚ¡ *
+__acû±
+è
+__THROW
+
+
+305  
+	`__bužtš_¡½brk
+ (
+__s
+, 
+__acû±
+);
+
+308 
+	}
+}
+
+310 
*
+	$¡½brk
+ (cÚ¡ *
+__s
+, cÚ¡ *
+__acû±
+)
+
+311 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+314 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+317 
*
+	`¡r¡r
+ (*
+__hay¡ack
+, cÚ¡ *
+__ÃedË
+)
+
+318 
+__THROW
+ 
+	`__asm
+ ("¡r¡r"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+319 
cÚ¡ *
+	`¡r¡r
+ (cÚ¡ *
+__hay¡ack
+, cÚ¡ *
+__ÃedË
+)
+
+320 
+__THROW
+ 
+	`__asm
+ ("¡r¡r"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+322 #ifdeà
+__OPTIMIZE__
+
+
+323 
+__ex‹º_®ways_šlše
+ *
+
+324 
+	`¡r¡r
+ (*
+__hay¡ack
+, cÚ¡ *
+__ÃedË
+è
+__THROW
+
+
+326  
+	`__bužtš_¡r¡r
+ (
+__hay¡ack
+, 
+__ÃedË
+);
+
+329 
+__ex‹º_®ways_šlše
+ const *
+
+330 
+	`¡r¡r
+ (cÚ¡ *
+__hay¡ack
+, cÚ¡ *
+__ÃedË
+è
+__THROW
+
+
+332  
+	`__bužtš_¡r¡r
+ (
+__hay¡ack
+, 
+__ÃedË
+);
+
+335 
+	}
+}
+
+337 
*
+	$¡r¡r
+ (cÚ¡ *
+__hay¡ack
+, cÚ¡ *
+__ÃedË
+)
+
+338 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+343 
*
+	$¡¹ok
+ (*
+__»¡riù
+ 
+__s
+, cÚ¡ *__»¡riù 
+__d–im
+)
+
+344 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2));
+
+345 
+__END_NAMESPACE_STD
+
+
+349 
*
+	$__¡¹ok_r
+ (*
+__»¡riù
+ 
+__s
+,
+
+350 cÚ¡ *
+__»¡riù
+ 
+__d–im
+,
+
+351 **
+__»¡riù
+ 
+__§ve_±r
+)
+
+352 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2, 3));
+
+353 #ifdeà
+__USE_POSIX
+
+
+354 
*
+	$¡¹ok_r
+ (*
+__»¡riù
+ 
+__s
+, cÚ¡ *__»¡riù 
+__d–im
+,
+
+355 **
+__»¡riù
+ 
+__§ve_±r
+)
+
+356 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2, 3));
+
+359 #ifdeà
+__USE_GNU
+
+
+361 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+362 
"C++" *
+	$¡rÿ£¡r
+ (*
+__hay¡ack
+, cÚ¡ *
+__ÃedË
+)
+
+363 
+__THROW
+ 
+	`__asm
+ ("¡rÿ£¡r"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+364 
"C++" cÚ¡ *
+	$¡rÿ£¡r
+ (cÚ¡ *
+__hay¡ack
+,
+
+365 cÚ¡ *
+__ÃedË
+)
+
+366 
+__THROW
+ 
+	`__asm
+ ("¡rÿ£¡r"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+368 
*
+	$¡rÿ£¡r
+ (cÚ¡ *
+__hay¡ack
+, cÚ¡ *
+__ÃedË
+)
+
+369 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+373 #ifdeà
+__USE_GNU
+
+
+377 
*
+	$memmem
+ (cÚ¡ *
+__hay¡ack
+, 
+size_t
+ 
+__hay¡ackËn
+,
+
+378 cÚ¡ *
+__ÃedË
+, 
+size_t
+ 
+__ÃedËËn
+)
+
+379 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 3));
+
+383 
*
+	$__mempýy
+ (*
+__»¡riù
+ 
+__de¡
+,
+
+384 cÚ¡ *
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+385 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+386 
*
+	$mempýy
+ (*
+__»¡riù
+ 
+__de¡
+,
+
+387 cÚ¡ *
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+388 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+392 
+__BEGIN_NAMESPACE_STD
+
+
+394 
+size_t
+ 
+	$¡¾’
+ (cÚ¡ *
+__s
+)
+
+395 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+396 
+__END_NAMESPACE_STD
+
+
+398 #ifdef 
+__USE_XOPEN2K8
+
+
+401 
+size_t
+ 
+	$¡ºËn
+ (cÚ¡ *
+__¡ršg
+, 
+size_t
+ 
+__maxËn
+)
+
+402 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+406 
+__BEGIN_NAMESPACE_STD
+
+
+408 
*
+	$¡»¼Ü
+ (
+__Ӽum
+è
+__THROW
+;
+
+409 
+__END_NAMESPACE_STD
+
+
+410 #ifdeà
+__USE_XOPEN2K
+
+
+418 #ià
+defšed
+ 
+__USE_XOPEN2K
+ && !defšed 
+__USE_GNU
+
+
+421 #ifdeà
+__REDIRECT_NTH
+
+
+422 

+	`__REDIRECT_NTH
+ (
+¡»¼Ü_r
+,
+
+423 (
+__Ӽum
+, *
+__buf
+, 
+size_t
+ 
+__buæ’
+),
+
+424 
+__xpg_¡»¼Ü_r
+è
+	`__nÚnuÎ
+ ((2));
+
+426 

+	$__xpg_¡»¼Ü_r
+ (
+__Ӽum
+, *
+__buf
+, 
+size_t
+ 
+__buæ’
+)
+
+427 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2));
+
+428 
+	#¡»¼Ü_r
+ 
+__xpg_¡»¼Ü_r
+
+
+	)
+
+433 
*
+	$¡»¼Ü_r
+ (
+__Ӽum
+, *
+__buf
+, 
+size_t
+ 
+__buæ’
+)
+
+434 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2)è
+__wur
+;
+
+438 #ifdeà
+__USE_XOPEN2K8
+
+
+440 
*
+	$¡»¼Ü_l
+ (
+__Ӽum
+, 
+__loÿË_t
+ 
+__l
+è
+__THROW
+;
+
+446 

+	$__bz”o
+ (*
+__s
+, 
+size_t
+ 
+__n
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+448 #ifdeà
+__USE_MISC
+
+
+450 

+	$bcÝy
+ (cÚ¡ *
+__¤c
+, *
+__de¡
+, 
+size_t
+ 
+__n
+)
+
+451 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+454 

+	$bz”o
+ (*
+__s
+, 
+size_t
+ 
+__n
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+457 

+	$bcmp
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+, 
+size_t
+ 
+__n
+)
+
+458 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+461 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+464 
*
+	`šdex
+ (*
+__s
+, 
+__c
+)
+
+465 
+__THROW
+ 
+	`__asm
+ ("šdex"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+466 
cÚ¡ *
+	`šdex
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+467 
+__THROW
+ 
+	`__asm
+ ("šdex"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+469 #ià
+defšed
+ 
+__OPTIMIZE__
+ && !defšed 
+__CORRECT_ISO_CPP_STRINGS_H_PROTO
+
+
+470 
+__ex‹º_®ways_šlše
+ *
+
+471 
+	`šdex
+ (*
+__s
+, 
+__c
+è
+__THROW
+
+
+473  
+	`__bužtš_šdex
+ (
+__s
+, 
+__c
+);
+
+476 
+__ex‹º_®ways_šlše
+ const *
+
+477 
+	`šdex
+ (cÚ¡ *
+__s
+, 
+__c
+è
+__THROW
+
+
+479  
+	`__bužtš_šdex
+ (
+__s
+, 
+__c
+);
+
+482 
+	}
+}
+
+484 
*
+	$šdex
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+485 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+489 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+492 
*
+	`ršdex
+ (*
+__s
+, 
+__c
+)
+
+493 
+__THROW
+ 
+	`__asm
+ ("ršdex"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+494 
cÚ¡ *
+	`ršdex
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+495 
+__THROW
+ 
+	`__asm
+ ("ršdex"è
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+497 #ià
+defšed
+ 
+__OPTIMIZE__
+ && !defšed 
+__CORRECT_ISO_CPP_STRINGS_H_PROTO
+
+
+498 
+__ex‹º_®ways_šlše
+ *
+
+499 
+	`ršdex
+ (*
+__s
+, 
+__c
+è
+__THROW
+
+
+501  
+	`__bužtš_ršdex
+ (
+__s
+, 
+__c
+);
+
+504 
+__ex‹º_®ways_šlše
+ const *
+
+505 
+	`ršdex
+ (cÚ¡ *
+__s
+, 
+__c
+è
+__THROW
+
+
+507  
+	`__bužtš_ršdex
+ (
+__s
+, 
+__c
+);
+
+510 
+	}
+}
+
+512 
*
+	$ršdex
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+513 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1));
+
+518 

+	$ffs
+ (
+__i
+è
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+522 #ifdef 
+__USE_GNU
+
+
+523 

+	$ff¦
+ (
+__l
+è
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+524 
+__ex‹nsiÚ__
+ 

+	$ff¦l
+ (
+__Î
+)
+
+525 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+529 

+	$¡rÿ£cmp
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+)
+
+530 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+533 

+	$¡ºÿ£cmp
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+, 
+size_t
+ 
+__n
+)
+
+534 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+537 #ifdef 
+__USE_GNU
+
+
+540 

+	$¡rÿ£cmp_l
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+,
+
+541 
+__loÿË_t
+ 
+__loc
+)
+
+542 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2, 3));
+
+544 

+	$¡ºÿ£cmp_l
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+,
+
+545 
+size_t
+ 
+__n
+, 
+__loÿË_t
+ 
+__loc
+)
+
+546 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2, 4));
+
+549 #ifdef 
+__USE_MISC
+
+
+552 
*
+	$¡r£p
+ (**
+__»¡riù
+ 
+__¡ršgp
+,
+
+553 cÚ¡ *
+__»¡riù
+ 
+__d–im
+)
+
+554 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+557 #ifdef 
+__USE_XOPEN2K8
+
+
+559 
*
+	$¡rsigÇl
+ (
+__sig
+è
+__THROW
+;
+
+562 
*
+	$__¡pýy
+ (*
+__»¡riù
+ 
+__de¡
+, cÚ¡ *__»¡riù 
+__¤c
+)
+
+563 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+564 
*
+	$¡pýy
+ (*
+__»¡riù
+ 
+__de¡
+, cÚ¡ *__»¡riù 
+__¤c
+)
+
+565 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+569 
*
+	$__¡²ýy
+ (*
+__»¡riù
+ 
+__de¡
+,
+
+570 cÚ¡ *
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+571 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+572 
*
+	$¡²ýy
+ (*
+__»¡riù
+ 
+__de¡
+,
+
+573 cÚ¡ *
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+574 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+577 #ifdef 
+__USE_GNU
+
+
+579 

+	$¡rv”scmp
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+)
+
+580 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+583 
*
+	$¡räy
+ (*
+__¡ršg
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+586 
*
+	$memäob
+ (*
+__s
+, 
+size_t
+ 
+__n
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+588 #iâdeà
+ba£Çme
+
+
+593 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+594 
"C++" *
+	$ba£Çme
+ (*
+__fž’ame
+)
+
+595 
+__THROW
+ 
+	`__asm
+ ("ba£Çme"è
+	`__nÚnuÎ
+ ((1));
+
+596 
"C++" cÚ¡ *
+	$ba£Çme
+ (cÚ¡ *
+__fž’ame
+)
+
+597 
+__THROW
+ 
+	`__asm
+ ("ba£Çme"è
+	`__nÚnuÎ
+ ((1));
+
+599 
*
+	$ba£Çme
+ (cÚ¡ *
+__fž’ame
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+605 #ià
+defšed
+ 
+__GNUC__
+ && __GNUC__ >= 2
+
+606 #ià
+defšed
+ 
+__OPTIMIZE__
+ && !defšed 
+__OPTIMIZE_SIZE__
+ \
+
+607 && !
+defšed
+ 
+__NO_INLINE__
+ && !defšed 
+__ýlu¥lus
+
+
+627 
+	~<b™s/¡ršg.h
+>
+
+630 
+	~<b™s/¡ršg2.h
+>
+
+633 #ià
+__USE_FORTIFY_LEVEL
+ > 0 && 
+defšed
+ 
+__fÜtify_funùiÚ
+
+
+635 
+	~<b™s/¡ršg3.h
+>
+
+639 #ià
+defšed
+ 
+__USE_GNU
+ && defšed 
+__OPTIMIZE__
+ \
+
+640 && 
+defšed
+ 
+__ex‹º_®ways_šlše
+ && 
+	$__GNUC_PREREQ
+ (3,2)
+
+641 #ià!
+defšed
+ 
+_FORCE_INLINES
+ && !defšed 
+_HAVE_STRING_ARCH_mempýy
+
+
+643 #undeà
+mempýy
+
+
+644 #undeà
+__mempýy
+
+
+645 
+	#mempýy
+(
+de¡
+, 
+¤c
+, 
+n
+è
+	`__mempýy_šlše
+ (de¡, src,‚)
+
+	)
+
+646 
+	#__mempýy
+(
+de¡
+, 
+¤c
+, 
+n
+è
+	`__mempýy_šlše
+ (de¡, src,‚)
+
+	)
+
+648 
+__ex‹º_®ways_šlše
+ *
+
+649 
+	$__mempýy_šlše
+ (*
+__»¡riù
+ 
+__de¡
+,
+
+650 cÚ¡ *
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+652  (*è
+	`memýy
+ (
+__de¡
+, 
+__¤c
+, 
+__n
+) + __n;
+
+653 
+	}
+}
+
+658 
+	g__END_DECLS
+
+
+	@/usr/include/sys/param.h
+
+19 #iâdeà
+_SYS_PARAM_H
+
+
+20 
+	#_SYS_PARAM_H
+ 1
+
+	)
+
+22 
+	#__Ãed_NULL
+
+
+	)
+
+23 
+	~<¡ddef.h
+>
+
+25 
+	~<sys/ty³s.h
+>
+
+26 
+	~<lim™s.h
+>
+
+27 
+	~<’dŸn.h
+>
+
+28 
+	~<sigÇl.h
+>
+
+31 
+	~<b™s/·¿m.h
+>
+
+36 
+	#NBBY
+ 
+CHAR_BIT
+
+
+	)
+
+38 #ià!
+defšed
+ 
+NGROUPS
+ && defšed 
+NGROUPS_MAX
+
+
+39 
+	#NGROUPS
+ 
+NGROUPS_MAX
+
+
+	)
+
+41 #ià!
+defšed
+ 
+MAXSYMLINKS
+ && defšed 
+SYMLOOP_MAX
+
+
+42 
+	#MAXSYMLINKS
+ 
+SYMLOOP_MAX
+
+
+	)
+
+44 #ià!
+defšed
+ 
+CANBSIZ
+ && defšed 
+MAX_CANON
+
+
+45 
+	#CANBSIZ
+ 
+MAX_CANON
+
+
+	)
+
+47 #ià!
+defšed
+ 
+MAXPATHLEN
+ && defšed 
+PATH_MAX
+
+
+48 
+	#MAXPATHLEN
+ 
+PATH_MAX
+
+
+	)
+
+50 #ià!
+defšed
+ 
+NOFILE
+ && defšed 
+OPEN_MAX
+
+
+51 
+	#NOFILE
+ 
+OPEN_MAX
+
+
+	)
+
+53 #ià!
+defšed
+ 
+MAXHOSTNAMELEN
+ && defšed 
+HOST_NAME_MAX
+
+
+54 
+	#MAXHOSTNAMELEN
+ 
+HOST_NAME_MAX
+
+
+	)
+
+56 #iâdeà
+NCARGS
+
+
+57 #ifdeà
+ARG_MAX
+
+
+58 
+	#NCARGS
+ 
+ARG_MAX
+
+
+	)
+
+62 
+	#NCARGS
+ 
+INT_MAX
+
+
+	)
+
+68 #iâdeà
+NOGROUP
+
+
+69 
+	#NOGROUP
+ 65535
+
+	)
+
+71 #iâdeà
+NODEV
+
+
+72 
+	#NODEV
+ ((
+dev_t
+è-1è
+
+	)
+
+77 #iâdeà
+DEV_BSIZE
+
+
+78 
+	#DEV_BSIZE
+ 512
+
+	)
+
+83 
+	#£tb™
+(
+a
+,
+i
+è(×)[(i)/
+NBBY
+] |ð1<<((i)%NBBY))
+
+	)
+
+84 
+	#þrb™
+(
+a
+,
+i
+è(×)[(i)/
+NBBY
+] &ð~(1<<((i)%NBBY)))
+
+	)
+
+85 
+	#is£t
+(
+a
+,
+i
+è(×)[(i)/
+NBBY
+] & (1<<((i)%NBBY)))
+
+	)
+
+86 
+	#isþr
+(
+a
+,
+i
+è((×)[(i)/
+NBBY
+] & (1<<((i)%NBBY))è=ð0)
+
+	)
+
+89 #iâdeà
+howmªy
+
+
+90 
+	#howmªy
+(
+x
+, 
+y
+è(((xè+ ((yè- 1)è/ (y))
+
+	)
+
+92 #ifdeà
+__GNUC__
+
+
+93 
+	#roundup
+(
+x
+, 
+y
+è(
+	`__bužtš_cÚ¡ªt_p
+ (yè&& 
+	`pow”of2
+ (y) \
+
+94 ? (((
+x
+è+ (
+y
+) - 1) & ~((y) - 1)) \
+
+95 : ((((
+x
+è+ ((
+y
+è- 1)è/ (y)è* (y)))
+
+	)
+
+97 
+	#roundup
+(
+x
+, 
+y
+è((((xè+ ((yè- 1)è/ (y)è* (y))
+
+	)
+
+99 
+	#pow”of2
+(
+x
+è((((xè- 1è& (x)è=ð0)
+
+	)
+
+102 
+	#MIN
+(
+a
+,
+b
+è((×)<(b))?×):(b))
+
+	)
+
+103 
+	#MAX
+(
+a
+,
+b
+è((×)>(b))?×):(b))
+
+	)
+
+	@/usr/include/sys/queue.h
+
+32 #iâdef 
+_SYS_QUEUE_H_
+
+
+33 
+	#_SYS_QUEUE_H_
+
+
+	)
+
+84 
+	#LIST_HEAD
+(
+Çme
+, 
+ty³
+) \
+
+85 
+	sÇme
+ { \
+
+86 
+ty³
+ *
+lh_fœ¡
+; \
+
+87 }
+
+	)
+
+89 
+	#LIST_HEAD_INITIALIZER
+(
+h—d
+) \
+
+90 { 
+NULL
+ }
+
+	)
+
+92 
+	#LIST_ENTRY
+(
+ty³
+) \
+
+94 
+ty³
+ *
+Ë_Ãxt
+; \
+
+95 
+ty³
+ **
+Ë_´ev
+; \
+
+96 }
+
+	)
+
+101 
+	#LIST_INIT
+(
+h—d
+) do { \
+
+102 (
+h—d
+)->
+lh_fœ¡
+ = 
+NULL
+; \
+
+103 }  0)
+
+	)
+
+105 
+	#LIST_INSERT_AFTER
+(
+li¡–m
+, 
+–m
+, 
+f›ld
+) do { \
+
+106 ià(((
+–m
+)->
+f›ld
+.
+Ë_Ãxt
+ = (
+li¡–m
+)->f›ld.Ë_Ãxtè!ð
+NULL
+) \
+
+107 (
+li¡–m
+)->
+f›ld
+.
+Ë_Ãxt
+->f›ld.
+Ë_´ev
+ = \
+
+108 &(
+–m
+)->
+f›ld
+.
+Ë_Ãxt
+; \
+
+109 (
+li¡–m
+)->
+f›ld
+.
+Ë_Ãxt
+ = (
+–m
+); \
+
+110 (
+–m
+)->
+f›ld
+.
+Ë_´ev
+ = &(
+li¡–m
+)->f›ld.
+Ë_Ãxt
+; \
+
+111 }  0)
+
+	)
+
+113 
+	#LIST_INSERT_BEFORE
+(
+li¡–m
+, 
+–m
+, 
+f›ld
+) do { \
+
+114 (
+–m
+)->
+f›ld
+.
+Ë_´ev
+ = (
+li¡–m
+)->field.le_prev; \
+
+115 (
+–m
+)->
+f›ld
+.
+Ë_Ãxt
+ = (
+li¡–m
+); \
+
+116 *(
+li¡–m
+)->
+f›ld
+.
+Ë_´ev
+ = (
+–m
+); \
+
+117 (
+li¡–m
+)->
+f›ld
+.
+Ë_´ev
+ = &(
+–m
+)->f›ld.
+Ë_Ãxt
+; \
+
+118 }  0)
+
+	)
+
+120 
+	#LIST_INSERT_HEAD
+(
+h—d
+, 
+–m
+, 
+f›ld
+) do { \
+
+121 ià(((
+–m
+)->
+f›ld
+.
+Ë_Ãxt
+ = (
+h—d
+)->
+lh_fœ¡
+è!ð
+NULL
+) \
+
+122 (
+h—d
+)->
+lh_fœ¡
+->
+f›ld
+.
+Ë_´ev
+ = &(
+–m
+)->f›ld.
+Ë_Ãxt
+;\
+
+123 (
+h—d
+)->
+lh_fœ¡
+ = (
+–m
+); \
+
+124 (
+–m
+)->
+f›ld
+.
+Ë_´ev
+ = &(
+h—d
+)->
+lh_fœ¡
+; \
+
+125 }  0)
+
+	)
+
+127 
+	#LIST_REMOVE
+(
+–m
+, 
+f›ld
+) do { \
+
+128 ià((
+–m
+)->
+f›ld
+.
+Ë_Ãxt
+ !ð
+NULL
+) \
+
+129 (
+–m
+)->
+f›ld
+.
+Ë_Ãxt
+->f›ld.
+Ë_´ev
+ = \
+
+130 (
+–m
+)->
+f›ld
+.
+Ë_´ev
+; \
+
+131 *(
+–m
+)->
+f›ld
+.
+Ë_´ev
+ = (–m)->f›ld.
+Ë_Ãxt
+; \
+
+132 }  0)
+
+	)
+
+134 
+	#LIST_FOREACH
+(
+v¬
+, 
+h—d
+, 
+f›ld
+) \
+
+135 (
+v¬
+èð((
+h—d
+)->
+lh_fœ¡
+); \
+
+136 (
+v¬
+); \
+
+137 (
+v¬
+èð((v¬)->
+f›ld
+.
+Ë_Ãxt
+))
+
+	)
+
+142 
+	#LIST_EMPTY
+(
+h—d
+è((h—d)->
+lh_fœ¡
+ =ð
+NULL
+)
+
+	)
+
+143 
+	#LIST_FIRST
+(
+h—d
+è((h—d)->
+lh_fœ¡
+)
+
+	)
+
+144 
+	#LIST_NEXT
+(
+–m
+, 
+f›ld
+è(Ólm)->f›ld.
+Ë_Ãxt
+)
+
+	)
+
+150 
+	#SLIST_HEAD
+(
+Çme
+, 
+ty³
+) \
+
+151 
+	sÇme
+ { \
+
+152 
+ty³
+ *
+¦h_fœ¡
+; \
+
+153 }
+
+	)
+
+155 
+	#SLIST_HEAD_INITIALIZER
+(
+h—d
+) \
+
+156 { 
+NULL
+ }
+
+	)
+
+158 
+	#SLIST_ENTRY
+(
+ty³
+) \
+
+160 
+ty³
+ *
+¦e_Ãxt
+; \
+
+161 }
+
+	)
+
+166 
+	#SLIST_INIT
+(
+h—d
+) do { \
+
+167 (
+h—d
+)->
+¦h_fœ¡
+ = 
+NULL
+; \
+
+168 }  0)
+
+	)
+
+170 
+	#SLIST_INSERT_AFTER
+(
+¦i¡–m
+, 
+–m
+, 
+f›ld
+) do { \
+
+171 (
+–m
+)->
+f›ld
+.
+¦e_Ãxt
+ = (
+¦i¡–m
+)->field.sle_next; \
+
+172 (
+¦i¡–m
+)->
+f›ld
+.
+¦e_Ãxt
+ = (
+–m
+); \
+
+173 }  0)
+
+	)
+
+175 
+	#SLIST_INSERT_HEAD
+(
+h—d
+, 
+–m
+, 
+f›ld
+) do { \
+
+176 (
+–m
+)->
+f›ld
+.
+¦e_Ãxt
+ = (
+h—d
+)->
+¦h_fœ¡
+; \
+
+177 (
+h—d
+)->
+¦h_fœ¡
+ = (
+–m
+); \
+
+178 }  0)
+
+	)
+
+180 
+	#SLIST_REMOVE_HEAD
+(
+h—d
+, 
+f›ld
+) do { \
+
+181 (
+h—d
+)->
+¦h_fœ¡
+ = (h—d)->¦h_fœ¡->
+f›ld
+.
+¦e_Ãxt
+; \
+
+182 }  0)
+
+	)
+
+184 
+	#SLIST_REMOVE
+(
+h—d
+, 
+–m
+, 
+ty³
+, 
+f›ld
+) do { \
+
+185 ià((
+h—d
+)->
+¦h_fœ¡
+ =ð(
+–m
+)) { \
+
+186 
+	`SLIST_REMOVE_HEAD
+((
+h—d
+), 
+f›ld
+); \
+
+189 
+ty³
+ *
+cu»lm
+ = (
+h—d
+)->
+¦h_fœ¡
+; \
+
+190 
+cu»lm
+->
+f›ld
+.
+¦e_Ãxt
+ !ð(
+–m
+)) \
+
+191 
+cu»lm
+ = cu»lm->
+f›ld
+.
+¦e_Ãxt
+; \
+
+192 
+cu»lm
+->
+f›ld
+.
+¦e_Ãxt
+ = \
+
+193 
+cu»lm
+->
+f›ld
+.
+¦e_Ãxt
+->field.sle_next; \
+
+195 }  0)
+
+	)
+
+197 
+	#SLIST_FOREACH
+(
+v¬
+, 
+h—d
+, 
+f›ld
+) \
+
+198 (
+v¬
+èð(
+h—d
+)->
+¦h_fœ¡
+; (v¬); (v¬èð(v¬)->
+f›ld
+.
+¦e_Ãxt
+)
+
+	)
+
+203 
+	#SLIST_EMPTY
+(
+h—d
+è((h—d)->
+¦h_fœ¡
+ =ð
+NULL
+)
+
+	)
+
+204 
+	#SLIST_FIRST
+(
+h—d
+è((h—d)->
+¦h_fœ¡
+)
+
+	)
+
+205 
+	#SLIST_NEXT
+(
+–m
+, 
+f›ld
+è(Ólm)->f›ld.
+¦e_Ãxt
+)
+
+	)
+
+211 
+	#STAILQ_HEAD
+(
+Çme
+, 
+ty³
+) \
+
+212 
+	sÇme
+ { \
+
+213 
+ty³
+ *
+¡qh_fœ¡
+; \
+
+214 
+ty³
+ **
+¡qh_Ï¡
+; \
+
+215 }
+
+	)
+
+217 
+	#STAILQ_HEAD_INITIALIZER
+(
+h—d
+) \
+
+218 { 
+NULL
+, &(
+h—d
+).
+¡qh_fœ¡
+ }
+
+	)
+
+220 
+	#STAILQ_ENTRY
+(
+ty³
+) \
+
+222 
+ty³
+ *
+¡qe_Ãxt
+; \
+
+223 }
+
+	)
+
+228 
+	#STAILQ_INIT
+(
+h—d
+) do { \
+
+229 (
+h—d
+)->
+¡qh_fœ¡
+ = 
+NULL
+; \
+
+230 (
+h—d
+)->
+¡qh_Ï¡
+ = &(h—d)->
+¡qh_fœ¡
+; \
+
+231 }  0)
+
+	)
+
+233 
+	#STAILQ_INSERT_HEAD
+(
+h—d
+, 
+–m
+, 
+f›ld
+) do { \
+
+234 ià(((
+–m
+)->
+f›ld
+.
+¡qe_Ãxt
+ = (
+h—d
+)->
+¡qh_fœ¡
+è=ð
+NULL
+) \
+
+235 (
+h—d
+)->
+¡qh_Ï¡
+ = &(
+–m
+)->
+f›ld
+.
+¡qe_Ãxt
+; \
+
+236 (
+h—d
+)->
+¡qh_fœ¡
+ = (
+–m
+); \
+
+237 }  0)
+
+	)
+
+239 
+	#STAILQ_INSERT_TAIL
+(
+h—d
+, 
+–m
+, 
+f›ld
+) do { \
+
+240 (
+–m
+)->
+f›ld
+.
+¡qe_Ãxt
+ = 
+NULL
+; \
+
+241 *(
+h—d
+)->
+¡qh_Ï¡
+ = (
+–m
+); \
+
+242 (
+h—d
+)->
+¡qh_Ï¡
+ = &(
+–m
+)->
+f›ld
+.
+¡qe_Ãxt
+; \
+
+243 }  0)
+
+	)
+
+245 
+	#STAILQ_INSERT_AFTER
+(
+h—d
+, 
+li¡–m
+, 
+–m
+, 
+f›ld
+) do { \
+
+246 ià(((
+–m
+)->
+f›ld
+.
+¡qe_Ãxt
+ = (
+li¡–m
+)->f›ld.¡qe_Ãxtè=ð
+NULL
+)\
+
+247 (
+h—d
+)->
+¡qh_Ï¡
+ = &(
+–m
+)->
+f›ld
+.
+¡qe_Ãxt
+; \
+
+248 (
+li¡–m
+)->
+f›ld
+.
+¡qe_Ãxt
+ = (
+–m
+); \
+
+249 }  0)
+
+	)
+
+251 
+	#STAILQ_REMOVE_HEAD
+(
+h—d
+, 
+f›ld
+) do { \
+
+252 ià(((
+h—d
+)->
+¡qh_fœ¡
+ = (h—d)->¡qh_fœ¡->
+f›ld
+.
+¡qe_Ãxt
+è=ð
+NULL
+) \
+
+253 (
+h—d
+)->
+¡qh_Ï¡
+ = &(h—d)->
+¡qh_fœ¡
+; \
+
+254 }  0)
+
+	)
+
+256 
+	#STAILQ_REMOVE
+(
+h—d
+, 
+–m
+, 
+ty³
+, 
+f›ld
+) do { \
+
+257 ià((
+h—d
+)->
+¡qh_fœ¡
+ =ð(
+–m
+)) { \
+
+258 
+	`STAILQ_REMOVE_HEAD
+((
+h—d
+), 
+f›ld
+); \
+
+260 
+ty³
+ *
+cu»lm
+ = (
+h—d
+)->
+¡qh_fœ¡
+; \
+
+261 
+cu»lm
+->
+f›ld
+.
+¡qe_Ãxt
+ !ð(
+–m
+)) \
+
+262 
+cu»lm
+ = cu»lm->
+f›ld
+.
+¡qe_Ãxt
+; \
+
+263 ià((
+cu»lm
+->
+f›ld
+.
+¡qe_Ãxt
+ = \
+
+264 
+cu»lm
+->
+f›ld
+.
+¡qe_Ãxt
+->f›ld.¡qe_Ãxtè=ð
+NULL
+) \
+
+265 (
+h—d
+)->
+¡qh_Ï¡
+ = &(
+cu»lm
+)->
+f›ld
+.
+¡qe_Ãxt
+; \
+
+267 }  0)
+
+	)
+
+269 
+	#STAILQ_FOREACH
+(
+v¬
+, 
+h—d
+, 
+f›ld
+) \
+
+270 (
+v¬
+èð((
+h—d
+)->
+¡qh_fœ¡
+); \
+
+271 (
+v¬
+); \
+
+272 (
+v¬
+èð((v¬)->
+f›ld
+.
+¡qe_Ãxt
+))
+
+	)
+
+274 
+	#STAILQ_CONCAT
+(
+h—d1
+, 
+h—d2
+) do { \
+
+275 ià(!
+	`STAILQ_EMPTY
+((
+h—d2
+))) { \
+
+276 *(
+h—d1
+)->
+¡qh_Ï¡
+ = (
+h—d2
+)->
+¡qh_fœ¡
+; \
+
+277 (
+h—d1
+)->
+¡qh_Ï¡
+ = (
+h—d2
+)->stqh_last; \
+
+278 
+	`STAILQ_INIT
+((
+h—d2
+)); \
+
+280 }  0)
+
+	)
+
+285 
+	#STAILQ_EMPTY
+(
+h—d
+è((h—d)->
+¡qh_fœ¡
+ =ð
+NULL
+)
+
+	)
+
+286 
+	#STAILQ_FIRST
+(
+h—d
+è((h—d)->
+¡qh_fœ¡
+)
+
+	)
+
+287 
+	#STAILQ_NEXT
+(
+–m
+, 
+f›ld
+è(Ólm)->f›ld.
+¡qe_Ãxt
+)
+
+	)
+
+293 
+	#SIMPLEQ_HEAD
+(
+Çme
+, 
+ty³
+) \
+
+294 
+	sÇme
+ { \
+
+295 
+ty³
+ *
+sqh_fœ¡
+; \
+
+296 
+ty³
+ **
+sqh_Ï¡
+; \
+
+297 }
+
+	)
+
+299 
+	#SIMPLEQ_HEAD_INITIALIZER
+(
+h—d
+) \
+
+300 { 
+NULL
+, &(
+h—d
+).
+sqh_fœ¡
+ }
+
+	)
+
+302 
+	#SIMPLEQ_ENTRY
+(
+ty³
+) \
+
+304 
+ty³
+ *
+sqe_Ãxt
+; \
+
+305 }
+
+	)
+
+310 
+	#SIMPLEQ_INIT
+(
+h—d
+) do { \
+
+311 (
+h—d
+)->
+sqh_fœ¡
+ = 
+NULL
+; \
+
+312 (
+h—d
+)->
+sqh_Ï¡
+ = &(h—d)->
+sqh_fœ¡
+; \
+
+313 }  0)
+
+	)
+
+315 
+	#SIMPLEQ_INSERT_HEAD
+(
+h—d
+, 
+–m
+, 
+f›ld
+) do { \
+
+316 ià(((
+–m
+)->
+f›ld
+.
+sqe_Ãxt
+ = (
+h—d
+)->
+sqh_fœ¡
+è=ð
+NULL
+) \
+
+317 (
+h—d
+)->
+sqh_Ï¡
+ = &(
+–m
+)->
+f›ld
+.
+sqe_Ãxt
+; \
+
+318 (
+h—d
+)->
+sqh_fœ¡
+ = (
+–m
+); \
+
+319 }  0)
+
+	)
+
+321 
+	#SIMPLEQ_INSERT_TAIL
+(
+h—d
+, 
+–m
+, 
+f›ld
+) do { \
+
+322 (
+–m
+)->
+f›ld
+.
+sqe_Ãxt
+ = 
+NULL
+; \
+
+323 *(
+h—d
+)->
+sqh_Ï¡
+ = (
+–m
+); \
+
+324 (
+h—d
+)->
+sqh_Ï¡
+ = &(
+–m
+)->
+f›ld
+.
+sqe_Ãxt
+; \
+
+325 }  0)
+
+	)
+
+327 
+	#SIMPLEQ_INSERT_AFTER
+(
+h—d
+, 
+li¡–m
+, 
+–m
+, 
+f›ld
+) do { \
+
+328 ià(((
+–m
+)->
+f›ld
+.
+sqe_Ãxt
+ = (
+li¡–m
+)->f›ld.sqe_Ãxtè=ð
+NULL
+)\
+
+329 (
+h—d
+)->
+sqh_Ï¡
+ = &(
+–m
+)->
+f›ld
+.
+sqe_Ãxt
+; \
+
+330 (
+li¡–m
+)->
+f›ld
+.
+sqe_Ãxt
+ = (
+–m
+); \
+
+331 }  0)
+
+	)
+
+333 
+	#SIMPLEQ_REMOVE_HEAD
+(
+h—d
+, 
+f›ld
+) do { \
+
+334 ià(((
+h—d
+)->
+sqh_fœ¡
+ = (h—d)->sqh_fœ¡->
+f›ld
+.
+sqe_Ãxt
+è=ð
+NULL
+) \
+
+335 (
+h—d
+)->
+sqh_Ï¡
+ = &(h—d)->
+sqh_fœ¡
+; \
+
+336 }  0)
+
+	)
+
+338 
+	#SIMPLEQ_REMOVE
+(
+h—d
+, 
+–m
+, 
+ty³
+, 
+f›ld
+) do { \
+
+339 ià((
+h—d
+)->
+sqh_fœ¡
+ =ð(
+–m
+)) { \
+
+340 
+	`SIMPLEQ_REMOVE_HEAD
+((
+h—d
+), 
+f›ld
+); \
+
+342 
+ty³
+ *
+cu»lm
+ = (
+h—d
+)->
+sqh_fœ¡
+; \
+
+343 
+cu»lm
+->
+f›ld
+.
+sqe_Ãxt
+ !ð(
+–m
+)) \
+
+344 
+cu»lm
+ = cu»lm->
+f›ld
+.
+sqe_Ãxt
+; \
+
+345 ià((
+cu»lm
+->
+f›ld
+.
+sqe_Ãxt
+ = \
+
+346 
+cu»lm
+->
+f›ld
+.
+sqe_Ãxt
+->f›ld.sqe_Ãxtè=ð
+NULL
+) \
+
+347 (
+h—d
+)->
+sqh_Ï¡
+ = &(
+cu»lm
+)->
+f›ld
+.
+sqe_Ãxt
+; \
+
+349 }  0)
+
+	)
+
+351 
+	#SIMPLEQ_FOREACH
+(
+v¬
+, 
+h—d
+, 
+f›ld
+) \
+
+352 (
+v¬
+èð((
+h—d
+)->
+sqh_fœ¡
+); \
+
+353 (
+v¬
+); \
+
+354 (
+v¬
+èð((v¬)->
+f›ld
+.
+sqe_Ãxt
+))
+
+	)
+
+359 
+	#SIMPLEQ_EMPTY
+(
+h—d
+è((h—d)->
+sqh_fœ¡
+ =ð
+NULL
+)
+
+	)
+
+360 
+	#SIMPLEQ_FIRST
+(
+h—d
+è((h—d)->
+sqh_fœ¡
+)
+
+	)
+
+361 
+	#SIMPLEQ_NEXT
+(
+–m
+, 
+f›ld
+è(Ólm)->f›ld.
+sqe_Ãxt
+)
+
+	)
+
+367 
+	#_TAILQ_HEAD
+(
+Çme
+, 
+ty³
+, 
+qu®
+) \
+
+368 
+	sÇme
+ { \
+
+369 
+qu®
+ 
+ty³
+ *
+tqh_fœ¡
+; \
+
+370 
+qu®
+ 
+ty³
+ *qu® *
+tqh_Ï¡
+; \
+
+371 }
+
+	)
+
+372 
+	#TAILQ_HEAD
+(
+Çme
+, 
+ty³
+è
+	`_TAILQ_HEAD
+Òame, ty³,)
+
+	)
+
+374 
+	#TAILQ_HEAD_INITIALIZER
+(
+h—d
+) \
+
+375 { 
+NULL
+, &(
+h—d
+).
+tqh_fœ¡
+ }
+
+	)
+
+377 
+	#_TAILQ_ENTRY
+(
+ty³
+, 
+qu®
+) \
+
+379 
+qu®
+ 
+ty³
+ *
+tqe_Ãxt
+; \
+
+380 
+qu®
+ 
+ty³
+ *qu® *
+tqe_´ev
+; \
+
+381 }
+
+	)
+
+382 
+	#TAILQ_ENTRY
+(
+ty³
+è
+	`_TAILQ_ENTRY
+(ty³,)
+
+	)
+
+387 
+	#TAILQ_INIT
+(
+h—d
+) do { \
+
+388 (
+h—d
+)->
+tqh_fœ¡
+ = 
+NULL
+; \
+
+389 (
+h—d
+)->
+tqh_Ï¡
+ = &(h—d)->
+tqh_fœ¡
+; \
+
+390 }  0)
+
+	)
+
+392 
+	#TAILQ_INSERT_HEAD
+(
+h—d
+, 
+–m
+, 
+f›ld
+) do { \
+
+393 ià(((
+–m
+)->
+f›ld
+.
+tqe_Ãxt
+ = (
+h—d
+)->
+tqh_fœ¡
+è!ð
+NULL
+) \
+
+394 (
+h—d
+)->
+tqh_fœ¡
+->
+f›ld
+.
+tqe_´ev
+ = \
+
+395 &(
+–m
+)->
+f›ld
+.
+tqe_Ãxt
+; \
+
+397 (
+h—d
+)->
+tqh_Ï¡
+ = &(
+–m
+)->
+f›ld
+.
+tqe_Ãxt
+; \
+
+398 (
+h—d
+)->
+tqh_fœ¡
+ = (
+–m
+); \
+
+399 (
+–m
+)->
+f›ld
+.
+tqe_´ev
+ = &(
+h—d
+)->
+tqh_fœ¡
+; \
+
+400 }  0)
+
+	)
+
+402 
+	#TAILQ_INSERT_TAIL
+(
+h—d
+, 
+–m
+, 
+f›ld
+) do { \
+
+403 (
+–m
+)->
+f›ld
+.
+tqe_Ãxt
+ = 
+NULL
+; \
+
+404 (
+–m
+)->
+f›ld
+.
+tqe_´ev
+ = (
+h—d
+)->
+tqh_Ï¡
+; \
+
+405 *(
+h—d
+)->
+tqh_Ï¡
+ = (
+–m
+); \
+
+406 (
+h—d
+)->
+tqh_Ï¡
+ = &(
+–m
+)->
+f›ld
+.
+tqe_Ãxt
+; \
+
+407 }  0)
+
+	)
+
+409 
+	#TAILQ_INSERT_AFTER
+(
+h—d
+, 
+li¡–m
+, 
+–m
+, 
+f›ld
+) do { \
+
+410 ià(((
+–m
+)->
+f›ld
+.
+tqe_Ãxt
+ = (
+li¡–m
+)->f›ld.tqe_Ãxtè!ð
+NULL
+)\
+
+411 (
+–m
+)->
+f›ld
+.
+tqe_Ãxt
+->f›ld.
+tqe_´ev
+ = \
+
+412 &(
+–m
+)->
+f›ld
+.
+tqe_Ãxt
+; \
+
+414 (
+h—d
+)->
+tqh_Ï¡
+ = &(
+–m
+)->
+f›ld
+.
+tqe_Ãxt
+; \
+
+415 (
+li¡–m
+)->
+f›ld
+.
+tqe_Ãxt
+ = (
+–m
+); \
+
+416 (
+–m
+)->
+f›ld
+.
+tqe_´ev
+ = &(
+li¡–m
+)->f›ld.
+tqe_Ãxt
+; \
+
+417 }  0)
+
+	)
+
+419 
+	#TAILQ_INSERT_BEFORE
+(
+li¡–m
+, 
+–m
+, 
+f›ld
+) do { \
+
+420 (
+–m
+)->
+f›ld
+.
+tqe_´ev
+ = (
+li¡–m
+)->field.tqe_prev; \
+
+421 (
+–m
+)->
+f›ld
+.
+tqe_Ãxt
+ = (
+li¡–m
+); \
+
+422 *(
+li¡–m
+)->
+f›ld
+.
+tqe_´ev
+ = (
+–m
+); \
+
+423 (
+li¡–m
+)->
+f›ld
+.
+tqe_´ev
+ = &(
+–m
+)->f›ld.
+tqe_Ãxt
+; \
+
+424 }  0)
+
+	)
+
+426 
+	#TAILQ_REMOVE
+(
+h—d
+, 
+–m
+, 
+f›ld
+) do { \
+
+427 ià(((
+–m
+)->
+f›ld
+.
+tqe_Ãxt
+è!ð
+NULL
+) \
+
+428 (
+–m
+)->
+f›ld
+.
+tqe_Ãxt
+->f›ld.
+tqe_´ev
+ = \
+
+429 (
+–m
+)->
+f›ld
+.
+tqe_´ev
+; \
+
+431 (
+h—d
+)->
+tqh_Ï¡
+ = (
+–m
+)->
+f›ld
+.
+tqe_´ev
+; \
+
+432 *(
+–m
+)->
+f›ld
+.
+tqe_´ev
+ = (–m)->f›ld.
+tqe_Ãxt
+; \
+
+433 }  0)
+
+	)
+
+435 
+	#TAILQ_FOREACH
+(
+v¬
+, 
+h—d
+, 
+f›ld
+) \
+
+436 (
+v¬
+èð((
+h—d
+)->
+tqh_fœ¡
+); \
+
+437 (
+v¬
+); \
+
+438 (
+v¬
+èð((v¬)->
+f›ld
+.
+tqe_Ãxt
+))
+
+	)
+
+440 
+	#TAILQ_FOREACH_REVERSE
+(
+v¬
+, 
+h—d
+, 
+h—dÇme
+, 
+f›ld
+) \
+
+441 (
+v¬
+èð(*(((
+h—dÇme
+ *)((
+h—d
+)->
+tqh_Ï¡
+))->tqh_last)); \
+
+442 (
+v¬
+); \
+
+443 (
+v¬
+èð(*(((
+h—dÇme
+ *)((v¬)->
+f›ld
+.
+tqe_´ev
+))->
+tqh_Ï¡
+)))
+
+	)
+
+445 
+	#TAILQ_CONCAT
+(
+h—d1
+, 
+h—d2
+, 
+f›ld
+) do { \
+
+446 ià(!
+	`TAILQ_EMPTY
+(
+h—d2
+)) { \
+
+447 *(
+h—d1
+)->
+tqh_Ï¡
+ = (
+h—d2
+)->
+tqh_fœ¡
+; \
+
+448 (
+h—d2
+)->
+tqh_fœ¡
+->
+f›ld
+.
+tqe_´ev
+ = (
+h—d1
+)->
+tqh_Ï¡
+; \
+
+449 (
+h—d1
+)->
+tqh_Ï¡
+ = (
+h—d2
+)->tqh_last; \
+
+450 
+	`TAILQ_INIT
+((
+h—d2
+)); \
+
+452 }  0)
+
+	)
+
+457 
+	#TAILQ_EMPTY
+(
+h—d
+è((h—d)->
+tqh_fœ¡
+ =ð
+NULL
+)
+
+	)
+
+458 
+	#TAILQ_FIRST
+(
+h—d
+è((h—d)->
+tqh_fœ¡
+)
+
+	)
+
+459 
+	#TAILQ_NEXT
+(
+–m
+, 
+f›ld
+è(Ólm)->f›ld.
+tqe_Ãxt
+)
+
+	)
+
+461 
+	#TAILQ_LAST
+(
+h—d
+, 
+h—dÇme
+) \
+
+462 (*(((
+h—dÇme
+ *)((
+h—d
+)->
+tqh_Ï¡
+))->tqh_Ï¡))
+
+	)
+
+463 
+	#TAILQ_PREV
+(
+–m
+, 
+h—dÇme
+, 
+f›ld
+) \
+
+464 (*(((
+h—dÇme
+ *)((
+–m
+)->
+f›ld
+.
+tqe_´ev
+))->
+tqh_Ï¡
+))
+
+	)
+
+470 
+	#CIRCLEQ_HEAD
+(
+Çme
+, 
+ty³
+) \
+
+471 
+	sÇme
+ { \
+
+472 
+ty³
+ *
+cqh_fœ¡
+; \
+
+473 
+ty³
+ *
+cqh_Ï¡
+; \
+
+474 }
+
+	)
+
+476 
+	#CIRCLEQ_HEAD_INITIALIZER
+(
+h—d
+) \
+
+477 { (*)&
+h—d
+, (*)&h—d }
+
+	)
+
+479 
+	#CIRCLEQ_ENTRY
+(
+ty³
+) \
+
+481 
+ty³
+ *
+cqe_Ãxt
+; \
+
+482 
+ty³
+ *
+cqe_´ev
+; \
+
+483 }
+
+	)
+
+488 
+	#CIRCLEQ_INIT
+(
+h—d
+) do { \
+
+489 (
+h—d
+)->
+cqh_fœ¡
+ = (*)(head); \
+
+490 (
+h—d
+)->
+cqh_Ï¡
+ = (*)(head); \
+
+491 }  0)
+
+	)
+
+493 
+	#CIRCLEQ_INSERT_AFTER
+(
+h—d
+, 
+li¡–m
+, 
+–m
+, 
+f›ld
+) do { \
+
+494 (
+–m
+)->
+f›ld
+.
+cqe_Ãxt
+ = (
+li¡–m
+)->field.cqe_next; \
+
+495 (
+–m
+)->
+f›ld
+.
+cqe_´ev
+ = (
+li¡–m
+); \
+
+496 ià((
+li¡–m
+)->
+f›ld
+.
+cqe_Ãxt
+ =ð(*)(
+h—d
+)) \
+
+497 (
+h—d
+)->
+cqh_Ï¡
+ = (
+–m
+); \
+
+499 (
+li¡–m
+)->
+f›ld
+.
+cqe_Ãxt
+->f›ld.
+cqe_´ev
+ = (
+–m
+); \
+
+500 (
+li¡–m
+)->
+f›ld
+.
+cqe_Ãxt
+ = (
+–m
+); \
+
+501 }  0)
+
+	)
+
+503 
+	#CIRCLEQ_INSERT_BEFORE
+(
+h—d
+, 
+li¡–m
+, 
+–m
+, 
+f›ld
+) do { \
+
+504 (
+–m
+)->
+f›ld
+.
+cqe_Ãxt
+ = (
+li¡–m
+); \
+
+505 (
+–m
+)->
+f›ld
+.
+cqe_´ev
+ = (
+li¡–m
+)->field.cqe_prev; \
+
+506 ià((
+li¡–m
+)->
+f›ld
+.
+cqe_´ev
+ =ð(*)(
+h—d
+)) \
+
+507 (
+h—d
+)->
+cqh_fœ¡
+ = (
+–m
+); \
+
+509 (
+li¡–m
+)->
+f›ld
+.
+cqe_´ev
+->f›ld.
+cqe_Ãxt
+ = (
+–m
+); \
+
+510 (
+li¡–m
+)->
+f›ld
+.
+cqe_´ev
+ = (
+–m
+); \
+
+511 }  0)
+
+	)
+
+513 
+	#CIRCLEQ_INSERT_HEAD
+(
+h—d
+, 
+–m
+, 
+f›ld
+) do { \
+
+514 (
+–m
+)->
+f›ld
+.
+cqe_Ãxt
+ = (
+h—d
+)->
+cqh_fœ¡
+; \
+
+515 (
+–m
+)->
+f›ld
+.
+cqe_´ev
+ = (*)(
+h—d
+); \
+
+516 ià((
+h—d
+)->
+cqh_Ï¡
+ == (*)(head)) \
+
+517 (
+h—d
+)->
+cqh_Ï¡
+ = (
+–m
+); \
+
+519 (
+h—d
+)->
+cqh_fœ¡
+->
+f›ld
+.
+cqe_´ev
+ = (
+–m
+); \
+
+520 (
+h—d
+)->
+cqh_fœ¡
+ = (
+–m
+); \
+
+521 }  0)
+
+	)
+
+523 
+	#CIRCLEQ_INSERT_TAIL
+(
+h—d
+, 
+–m
+, 
+f›ld
+) do { \
+
+524 (
+–m
+)->
+f›ld
+.
+cqe_Ãxt
+ = (*)(
+h—d
+); \
+
+525 (
+–m
+)->
+f›ld
+.
+cqe_´ev
+ = (
+h—d
+)->
+cqh_Ï¡
+; \
+
+526 ià((
+h—d
+)->
+cqh_fœ¡
+ == (*)(head)) \
+
+527 (
+h—d
+)->
+cqh_fœ¡
+ = (
+–m
+); \
+
+529 (
+h—d
+)->
+cqh_Ï¡
+->
+f›ld
+.
+cqe_Ãxt
+ = (
+–m
+); \
+
+530 (
+h—d
+)->
+cqh_Ï¡
+ = (
+–m
+); \
+
+531 }  0)
+
+	)
+
+533 
+	#CIRCLEQ_REMOVE
+(
+h—d
+, 
+–m
+, 
+f›ld
+) do { \
+
+534 ià((
+–m
+)->
+f›ld
+.
+cqe_Ãxt
+ =ð(*)(
+h—d
+)) \
+
+535 (
+h—d
+)->
+cqh_Ï¡
+ = (
+–m
+)->
+f›ld
+.
+cqe_´ev
+; \
+
+537 (
+–m
+)->
+f›ld
+.
+cqe_Ãxt
+->f›ld.
+cqe_´ev
+ = \
+
+538 (
+–m
+)->
+f›ld
+.
+cqe_´ev
+; \
+
+539 ià((
+–m
+)->
+f›ld
+.
+cqe_´ev
+ =ð(*)(
+h—d
+)) \
+
+540 (
+h—d
+)->
+cqh_fœ¡
+ = (
+–m
+)->
+f›ld
+.
+cqe_Ãxt
+; \
+
+542 (
+–m
+)->
+f›ld
+.
+cqe_´ev
+->f›ld.
+cqe_Ãxt
+ = \
+
+543 (
+–m
+)->
+f›ld
+.
+cqe_Ãxt
+; \
+
+544 }  0)
+
+	)
+
+546 
+	#CIRCLEQ_FOREACH
+(
+v¬
+, 
+h—d
+, 
+f›ld
+) \
+
+547 (
+v¬
+èð((
+h—d
+)->
+cqh_fœ¡
+); \
+
+548 (
+v¬
+è!ð(cÚ¡ *)(
+h—d
+); \
+
+549 (
+v¬
+èð((v¬)->
+f›ld
+.
+cqe_Ãxt
+))
+
+	)
+
+551 
+	#CIRCLEQ_FOREACH_REVERSE
+(
+v¬
+, 
+h—d
+, 
+f›ld
+) \
+
+552 (
+v¬
+èð((
+h—d
+)->
+cqh_Ï¡
+); \
+
+553 (
+v¬
+è!ð(cÚ¡ *)(
+h—d
+); \
+
+554 (
+v¬
+èð((v¬)->
+f›ld
+.
+cqe_´ev
+))
+
+	)
+
+559 
+	#CIRCLEQ_EMPTY
+(
+h—d
+è((h—d)->
+cqh_fœ¡
+ =ð(*)(h—d))
+
+	)
+
+560 
+	#CIRCLEQ_FIRST
+(
+h—d
+è((h—d)->
+cqh_fœ¡
+)
+
+	)
+
+561 
+	#CIRCLEQ_LAST
+(
+h—d
+è((h—d)->
+cqh_Ï¡
+)
+
+	)
+
+562 
+	#CIRCLEQ_NEXT
+(
+–m
+, 
+f›ld
+è(Ólm)->f›ld.
+cqe_Ãxt
+)
+
+	)
+
+563 
+	#CIRCLEQ_PREV
+(
+–m
+, 
+f›ld
+è(Ólm)->f›ld.
+cqe_´ev
+)
+
+	)
+
+565 
+	#CIRCLEQ_LOOP_NEXT
+(
+h—d
+, 
+–m
+, 
+f›ld
+) \
+
+566 (((
+–m
+)->
+f›ld
+.
+cqe_Ãxt
+ =ð(*)(
+h—d
+)) \
+
+567 ? ((
+h—d
+)->
+cqh_fœ¡
+) \
+
+568 : (
+–m
+->
+f›ld
+.
+cqe_Ãxt
+))
+
+	)
+
+569 
+	#CIRCLEQ_LOOP_PREV
+(
+h—d
+, 
+–m
+, 
+f›ld
+) \
+
+570 (((
+–m
+)->
+f›ld
+.
+cqe_´ev
+ =ð(*)(
+h—d
+)) \
+
+571 ? ((
+h—d
+)->
+cqh_Ï¡
+) \
+
+572 : (
+–m
+->
+f›ld
+.
+cqe_´ev
+))
+
+	)
+
+	@/usr/include/sys/socket.h
+
+19 #iâdef 
+_SYS_SOCKET_H
+
+
+20 
+	#_SYS_SOCKET_H
+ 1
+
+	)
+
+22 
+	~<ã©u»s.h
+>
+
+24 
+	g__BEGIN_DECLS
+
+
+26 
+	~<sys/uio.h
+>
+
+27 
+	#__Ãed_size_t
+
+
+	)
+
+28 
+	~<¡ddef.h
+>
+
+29 #ifdeà
+__USE_GNU
+
+
+31 
+	~<b™s/sig£t.h
+>
+
+38 
+	~<b™s/sock‘.h
+>
+
+40 #ifdeà
+__USE_MISC
+
+
+43 
+	sosockaddr
+
+
+45 
+	m§_çmžy
+;
+
+46 
+	m§_d©a
+[14];
+
+54 
+	mSHUT_RD
+ = 0,
+
+55 
+	#SHUT_RD
+ 
+SHUT_RD
+
+
+	)
+
+56 
+	mSHUT_WR
+,
+
+57 
+	#SHUT_WR
+ 
+SHUT_WR
+
+
+	)
+
+58 
+	mSHUT_RDWR
+
+
+59 
+	#SHUT_RDWR
+ 
+SHUT_RDWR
+
+
+	)
+
+68 #ià
+defšed
+ 
+__ýlu¥lus
+ || !
+__GNUC_PREREQ
+ (2, 7è|| !defšed 
+__USE_GNU
+
+
+69 
+	#__SOCKADDR_ARG
+ 
+sockaddr
+ *
+__»¡riù
+
+
+	)
+
+70 
+	#__CONST_SOCKADDR_ARG
+ cÚ¡ 
+sockaddr
+ *
+
+	)
+
+74 
+	#__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_š
+) \
+
+81 
+	`__SOCKADDR_ONETYPE
+ (
+sockaddr_š6
+) \
+
+82 
+	`__SOCKADDR_ONETYPE
+ (
+sockaddr_š¬p
+) \
+
+83 
+	`__SOCKADDR_ONETYPE
+ (
+sockaddr_x
+) \
+
+84 
+	`__SOCKADDR_ONETYPE
+ (
+sockaddr_iso
+) \
+
+85 
+	`__SOCKADDR_ONETYPE
+ (
+sockaddr_ns
+) \
+
+86 
+	`__SOCKADDR_ONETYPE
+ (
+sockaddr_un
+) \
+
+87 
+	`__SOCKADDR_ONETYPE
+ (
+sockaddr_x25
+)
+
+	)
+
+89 
+	#__SOCKADDR_ONETYPE
+(
+ty³
+èty³ *
+__»¡riù
+ 
+__
+##ty³##__;
+
+	)
+
+90 uniÚ { 
+	m__SOCKADDR_ALLTYPES
+
+
+91 } 
+	t__SOCKADDR_ARG
+ 
+	t__©Œibu‹__
+ ((
+	t__Œª¥¬’t_uniÚ__
+));
+
+92 #undeà
+__SOCKADDR_ONETYPE
+
+
+93 
+	#__SOCKADDR_ONETYPE
+(
+ty³
+ècÚ¡ ty³ *
+__»¡riù
+ 
+__
+##ty³##__;
+
+	)
+
+94 uniÚ { 
+	m__SOCKADDR_ALLTYPES
+
+
+95 } 
+	t__CONST_SOCKADDR_ARG
+ 
+	t__©Œibu‹__
+ ((
+	t__Œª¥¬’t_uniÚ__
+));
+
+96 #undeà
+__SOCKADDR_ONETYPE
+
+
+99 #ifdeà
+__USE_GNU
+
+
+101 
+	smmsghdr
+
+
+103 
+msghdr
+ 
+	mmsg_hdr
+;
+
+104 
+	mmsg_Ën
+;
+
+113 

+	$sock‘
+ (
+__domaš
+, 
+__ty³
+, 
+__´ÙocÞ
+è
+__THROW
+;
+
+119 

+	$sock‘·œ
+ (
+__domaš
+, 
+__ty³
+, 
+__´ÙocÞ
+,
+
+120 
+__fds
+[2]è
+__THROW
+;
+
+123 

+	$bšd
+ (
+__fd
+, 
+__CONST_SOCKADDR_ARG
+ 
+__addr
+, 
+sockËn_t
+ 
+__Ën
+)
+
+124 
+__THROW
+;
+
+127 

+	$g‘sockÇme
+ (
+__fd
+, 
+__SOCKADDR_ARG
+ 
+__addr
+,
+
+128 
+sockËn_t
+ *
+__»¡riù
+ 
+__Ën
+è
+__THROW
+;
+
+137 

+	`cÚÃù
+ (
+__fd
+, 
+__CONST_SOCKADDR_ARG
+ 
+__addr
+, 
+sockËn_t
+ 
+__Ën
+);
+
+141 

+	$g‘³”Çme
+ (
+__fd
+, 
+__SOCKADDR_ARG
+ 
+__addr
+,
+
+142 
+sockËn_t
+ *
+__»¡riù
+ 
+__Ën
+è
+__THROW
+;
+
+149 
+ssize_t
+ 
+	`£nd
+ (
+__fd
+, cÚ¡ *
+__buf
+, 
+size_t
+ 
+__n
+, 
+__æags
+);
+
+156 
+ssize_t
+ 
+	`»cv
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__n
+, 
+__æags
+);
+
+163 
+ssize_t
+ 
+	`£ndto
+ (
+__fd
+, cÚ¡ *
+__buf
+, 
+size_t
+ 
+__n
+,
+
+164 
+__æags
+, 
+__CONST_SOCKADDR_ARG
+ 
+__addr
+,
+
+165 
+sockËn_t
+ 
+__addr_Ën
+);
+
+174 
+ssize_t
+ 
+	`»cväom
+ (
+__fd
+, *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__n
+,
+
+175 
+__æags
+, 
+__SOCKADDR_ARG
+ 
+__addr
+,
+
+176 
+sockËn_t
+ *
+__»¡riù
+ 
+__addr_Ën
+);
+
+184 
+ssize_t
+ 
+	`£ndmsg
+ (
+__fd
+, cÚ¡ 
+msghdr
+ *
+__mes§ge
+,
+
+185 
+__æags
+);
+
+187 #ifdeà
+__USE_GNU
+
+
+193 

+	`£ndmmsg
+ (
+__fd
+, 
+mmsghdr
+ *
+__vmes§ges
+,
+
+194 
+__vËn
+, 
+__æags
+);
+
+202 
+ssize_t
+ 
+	`»cvmsg
+ (
+__fd
+, 
+msghdr
+ *
+__mes§ge
+, 
+__æags
+);
+
+204 #ifdeà
+__USE_GNU
+
+
+210 

+	`»cvmmsg
+ (
+__fd
+, 
+mmsghdr
+ *
+__vmes§ges
+,
+
+211 
+__vËn
+, 
+__æags
+,
+
+212 
+time¥ec
+ *
+__tmo
+);
+
+219 

+	$g‘sockÝt
+ (
+__fd
+, 
+__Ëv–
+, 
+__݊ame
+,
+
+220 *
+__»¡riù
+ 
+__Ýtv®
+,
+
+221 
+sockËn_t
+ *
+__»¡riù
+ 
+__ݎ’
+è
+__THROW
+;
+
+226 

+	$£tsockÝt
+ (
+__fd
+, 
+__Ëv–
+, 
+__݊ame
+,
+
+227 cÚ¡ *
+__Ýtv®
+, 
+sockËn_t
+ 
+__ݎ’
+è
+__THROW
+;
+
+233 

+	$li¡’
+ (
+__fd
+, 
+__n
+è
+__THROW
+;
+
+243 

+	`acû±
+ (
+__fd
+, 
+__SOCKADDR_ARG
+ 
+__addr
+,
+
+244 
+sockËn_t
+ *
+__»¡riù
+ 
+__addr_Ën
+);
+
+246 #ifdeà
+__USE_GNU
+
+
+251 

+	`acû±4
+ (
+__fd
+, 
+__SOCKADDR_ARG
+ 
+__addr
+,
+
+252 
+sockËn_t
+ *
+__»¡riù
+ 
+__addr_Ën
+, 
+__æags
+);
+
+261 

+	$shutdown
+ (
+__fd
+, 
+__how
+è
+__THROW
+;
+
+264 #ifdeà
+__USE_XOPEN2K
+
+
+266 

+	$sock©m¬k
+ (
+__fd
+è
+__THROW
+;
+
+270 #ifdeà
+__USE_MISC
+
+
+274 

+	$isfdty³
+ (
+__fd
+, 
+__fdty³
+è
+__THROW
+;
+
+279 #ià
+__USE_FORTIFY_LEVEL
+ > 0 && 
+defšed
+ 
+__fÜtify_funùiÚ
+
+
+280 
+	~<b™s/sock‘2.h
+>
+
+283 
+__END_DECLS
+
+
+	@/usr/include/sys/types.h
+
+22 #iâdef 
+_SYS_TYPES_H
+
+
+23 
+	#_SYS_TYPES_H
+ 1
+
+	)
+
+25 
+	~<ã©u»s.h
+>
+
+27 
+	g__BEGIN_DECLS
+
+
+29 
+	~<b™s/ty³s.h
+>
+
+31 #ifdef 
+__USE_MISC
+
+
+32 #iâdeà
+__u_ch¬_defšed
+
+
+33 
+__u_ch¬
+ 
+	tu_ch¬
+;
+
+34 
+__u_shÜt
+ 
+	tu_shÜt
+;
+
+35 
+__u_št
+ 
+	tu_št
+;
+
+36 
+__u_lÚg
+ 
+	tu_lÚg
+;
+
+37 
+__quad_t
+ 
+	tquad_t
+;
+
+38 
+__u_quad_t
+ 
+	tu_quad_t
+;
+
+39 
+__fsid_t
+ 
+	tfsid_t
+;
+
+40 
+	#__u_ch¬_defšed
+
+
+	)
+
+44 
+__loff_t
+ 
+	tloff_t
+;
+
+46 #iâdeà
+__šo_t_defšed
+
+
+47 #iâdeà
+__USE_FILE_OFFSET64
+
+
+48 
+__šo_t
+ 
+	tšo_t
+;
+
+50 
+__šo64_t
+ 
+	tšo_t
+;
+
+52 
+	#__šo_t_defšed
+
+
+	)
+
+54 #ià
+defšed
+ 
+__USE_LARGEFILE64
+ && !defšed 
+__šo64_t_defšed
+
+
+55 
+__šo64_t
+ 
+	tšo64_t
+;
+
+56 
+	#__šo64_t_defšed
+
+
+	)
+
+59 #iâdeà
+__dev_t_defšed
+
+
+60 
+__dev_t
+ 
+	tdev_t
+;
+
+61 
+	#__dev_t_defšed
+
+
+	)
+
+64 #iâdeà
+__gid_t_defšed
+
+
+65 
+__gid_t
+ 
+	tgid_t
+;
+
+66 
+	#__gid_t_defšed
+
+
+	)
+
+69 #iâdeà
+__mode_t_defšed
+
+
+70 
+__mode_t
+ 
+	tmode_t
+;
+
+71 
+	#__mode_t_defšed
+
+
+	)
+
+74 #iâdeà
+__ƚk_t_defšed
+
+
+75 
+__ƚk_t
+ 
+	tƚk_t
+;
+
+76 
+	#__ƚk_t_defšed
+
+
+	)
+
+79 #iâdeà
+__uid_t_defšed
+
+
+80 
+__uid_t
+ 
+	tuid_t
+;
+
+81 
+	#__uid_t_defšed
+
+
+	)
+
+84 #iâdeà
+__off_t_defšed
+
+
+85 #iâdeà
+__USE_FILE_OFFSET64
+
+
+86 
+__off_t
+ 
+	toff_t
+;
+
+88 
+__off64_t
+ 
+	toff_t
+;
+
+90 
+	#__off_t_defšed
+
+
+	)
+
+92 #ià
+defšed
+ 
+__USE_LARGEFILE64
+ && !defšed 
+__off64_t_defšed
+
+
+93 
+__off64_t
+ 
+	toff64_t
+;
+
+94 
+	#__off64_t_defšed
+
+
+	)
+
+97 #iâdeà
+__pid_t_defšed
+
+
+98 
+__pid_t
+ 
+	tpid_t
+;
+
+99 
+	#__pid_t_defšed
+
+
+	)
+
+102 #ià(
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_XOPEN2K8
+) \
+
+103 && !
+defšed
+ 
+__id_t_defšed
+
+
+104 
+__id_t
+ 
+	tid_t
+;
+
+105 
+	#__id_t_defšed
+
+
+	)
+
+108 #iâdeà
+__ssize_t_defšed
+
+
+109 
+__ssize_t
+ 
+	tssize_t
+;
+
+110 
+	#__ssize_t_defšed
+
+
+	)
+
+113 #ifdef 
+__USE_MISC
+
+
+114 #iâdeà
+__daddr_t_defšed
+
+
+115 
+__daddr_t
+ 
+	tdaddr_t
+;
+
+116 
+__ÿddr_t
+ 
+	tÿddr_t
+;
+
+117 
+	#__daddr_t_defšed
+
+
+	)
+
+121 #ià(
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+è&& !defšed 
+__key_t_defšed
+
+
+122 
+__key_t
+ 
+	tkey_t
+;
+
+123 
+	#__key_t_defšed
+
+
+	)
+
+126 #ià
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_XOPEN2K8
+
+
+127 
+	#__Ãed_þock_t
+
+
+	)
+
+129 
+	#__Ãed_time_t
+
+
+	)
+
+130 
+	#__Ãed_tim”_t
+
+
+	)
+
+131 
+	#__Ãed_þockid_t
+
+
+	)
+
+132 
+	~<time.h
+>
+
+134 #ifdeà
+__USE_XOPEN
+
+
+135 #iâdeà
+__u£cÚds_t_defšed
+
+
+136 
+__u£cÚds_t
+ 
+	tu£cÚds_t
+;
+
+137 
+	#__u£cÚds_t_defšed
+
+
+	)
+
+139 #iâdeà
+__su£cÚds_t_defšed
+
+
+140 
+__su£cÚds_t
+ 
+	tsu£cÚds_t
+;
+
+141 
+	#__su£cÚds_t_defšed
+
+
+	)
+
+145 
+	#__Ãed_size_t
+
+
+	)
+
+146 
+	~<¡ddef.h
+>
+
+148 #ifdeà
+__USE_MISC
+
+
+150 
+	tulÚg
+;
+
+151 
+	tushÜt
+;
+
+152 
+	tušt
+;
+
+157 #ià!
+__GNUC_PREREQ
+ (2, 7)
+
+160 #iâdeà
+__št8_t_defšed
+
+
+161 
+	#__št8_t_defšed
+
+
+	)
+
+162 
+	tšt8_t
+;
+
+163 
+	tšt16_t
+;
+
+164 
+	tšt32_t
+;
+
+165 #ià
+__WORDSIZE
+ == 64
+
+166 
+	tšt64_t
+;
+
+168 
+__ex‹nsiÚ__
+ 
+	tšt64_t
+;
+
+173 
+	tu_št8_t
+;
+
+174 
+	tu_št16_t
+;
+
+175 
+	tu_št32_t
+;
+
+176 #ià
+__WORDSIZE
+ == 64
+
+177 
+	tu_št64_t
+;
+
+179 
+__ex‹nsiÚ__
+ 
+	tu_št64_t
+;
+
+182 
+	t»gi¡”_t
+;
+
+187 
+	#__štN_t
+(
+N
+, 
+MODE
+) \
+
+188 ##
+	tN
+##
+	t_t
+ 
+	t__©Œibu‹__
+ ((
+	t__mode__
+ (
+	tMODE
+)))
+
+	)
+
+189 
+	t__u_štN_t
+(
+	tN
+, 
+	tMODE
+) \
+
+190 
+	tu_št
+##
+	tN
+##
+	t_t
+ 
+	t__©Œibu‹__
+ ((
+	t__mode__
+ (
+	tMODE
+)))
+
+	)
+
+192 #iâdeà
+	t__št8_t_defšed
+
+
+193 
+	t__št8_t_defšed
+
+
+	)
+
+194 
+	t__štN_t
+ (8, 
+	t__QI__
+);
+
+195 
+__štN_t
+ (16, 
+__HI__
+);
+
+196 
+__štN_t
+ (32, 
+__SI__
+);
+
+197 
+__štN_t
+ (64, 
+__DI__
+);
+
+200 
+__u_štN_t
+ (8, 
+__QI__
+);
+
+201 
+__u_štN_t
+ (16, 
+__HI__
+);
+
+202 
+__u_štN_t
+ (32, 
+__SI__
+);
+
+203 
+__u_štN_t
+ (64, 
+__DI__
+);
+
+205 
+	t»gi¡”_t
+ 
+	t__©Œibu‹__
+ ((
+	t__mode__
+ (
+	t__wÜd__
+)));
+
+211 
+	#__BIT_TYPES_DEFINED__
+ 1
+
+	)
+
+214 #ifdef 
+__USE_MISC
+
+
+216 
+	~<’dŸn.h
+>
+
+219 
+	~<sys/£Ëù.h
+>
+
+222 
+	~<sys/sysmaüos.h
+>
+
+226 #ià(
+defšed
+ 
+__USE_UNIX98
+ || defšed 
+__USE_XOPEN2K8
+) \
+
+227 && !
+defšed
+ 
+__blksize_t_defšed
+
+
+228 
+__blksize_t
+ 
+	tblksize_t
+;
+
+229 
+	#__blksize_t_defšed
+
+
+	)
+
+233 #iâdeà
+__USE_FILE_OFFSET64
+
+
+234 #iâdeà
+__blkút_t_defšed
+
+
+235 
+__blkút_t
+ 
+	tblkút_t
+;
+
+236 
+	#__blkút_t_defšed
+
+
+	)
+
+238 #iâdeà
+__fsblkút_t_defšed
+
+
+239 
+__fsblkút_t
+ 
+	tfsblkút_t
+;
+
+240 
+	#__fsblkút_t_defšed
+
+
+	)
+
+242 #iâdeà
+__fsfžút_t_defšed
+
+
+243 
+__fsfžút_t
+ 
+	tfsfžút_t
+;
+
+244 
+	#__fsfžút_t_defšed
+
+
+	)
+
+247 #iâdeà
+__blkút_t_defšed
+
+
+248 
+__blkút64_t
+ 
+	tblkút_t
+;
+
+249 
+	#__blkút_t_defšed
+
+
+	)
+
+251 #iâdeà
+__fsblkút_t_defšed
+
+
+252 
+__fsblkút64_t
+ 
+	tfsblkút_t
+;
+
+253 
+	#__fsblkút_t_defšed
+
+
+	)
+
+255 #iâdeà
+__fsfžút_t_defšed
+
+
+256 
+__fsfžút64_t
+ 
+	tfsfžút_t
+;
+
+257 
+	#__fsfžút_t_defšed
+
+
+	)
+
+261 #ifdeà
+__USE_LARGEFILE64
+
+
+262 
+__blkút64_t
+ 
+	tblkút64_t
+;
+
+263 
+__fsblkút64_t
+ 
+	tfsblkút64_t
+;
+
+264 
+__fsfžút64_t
+ 
+	tfsfžút64_t
+;
+
+269 #ià
+defšed
+ 
+__USE_POSIX199506
+ || defšed 
+__USE_UNIX98
+
+
+270 
+	~<b™s/±h»adty³s.h
+>
+
+273 
+	g__END_DECLS
+
+
+	@/usr/include/sys/wait.h
+
+22 #iâdef 
+_SYS_WAIT_H
+
+
+23 
+	#_SYS_WAIT_H
+ 1
+
+	)
+
+25 
+	~<ã©u»s.h
+>
+
+27 
+	g__BEGIN_DECLS
+
+
+29 
+	~<sigÇl.h
+>
+
+32 #ià!
+defšed
+ 
+_STDLIB_H
+ || (!defšed 
+__USE_XOPEN
+ && !defšed 
+__USE_XOPEN2K8
+)
+
+35 
+	~<b™s/wa™æags.h
+>
+
+37 #ifdef 
+__USE_MISC
+
+
+42 #ià
+defšed
+ 
+__GNUC__
+ && !defšed 
+__ýlu¥lus
+
+
+43 
+	#__WAIT_INT
+(
+¡©us
+) \
+
+44 (
+	`__ex‹nsiÚ__
+ (((uniÚ { 
+	`__ty³of
+(
+¡©us
+è
+__š
+; 
+__i
+; }) \
+
+45 { .
+__š
+ = (
+¡©us
+è}).
+__i
+))
+
+	)
+
+47 
+	#__WAIT_INT
+(
+¡©us
+è(*(cÚ¡ *è&(¡©us))
+
+	)
+
+55 #ià!
+defšed
+ 
+__GNUC__
+ || __GNUC__ < 2 || defšed 
+__ýlu¥lus
+
+
+56 
+	#__WAIT_STATUS
+ *
+
+	)
+
+57 
+	#__WAIT_STATUS_DEFN
+ *
+
+	)
+
+62 
+wa™
+ *
+	m__u±r
+;
+
+63 *
+	m__Œ
+;
+
+64 } 
+	t__WAIT_STATUS
+ 
+	t__©Œibu‹__
+ ((
+	t__Œª¥¬’t_uniÚ__
+));
+
+65 
+	#__WAIT_STATUS_DEFN
+ *
+
+	)
+
+70 
+	#__WAIT_INT
+(
+¡©us
+è(¡©us)
+
+	)
+
+71 
+	#__WAIT_STATUS
+ *
+
+	)
+
+72 
+	#__WAIT_STATUS_DEFN
+ *
+
+	)
+
+77 
+	~<b™s/wa™¡©us.h
+>
+
+79 
+	#WEXITSTATUS
+(
+¡©us
+è
+	`__WEXITSTATUS
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+80 
+	#WTERMSIG
+(
+¡©us
+è
+	`__WTERMSIG
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+81 
+	#WSTOPSIG
+(
+¡©us
+è
+	`__WSTOPSIG
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+82 
+	#WIFEXITED
+(
+¡©us
+è
+	`__WIFEXITED
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+83 
+	#WIFSIGNALED
+(
+¡©us
+è
+	`__WIFSIGNALED
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+84 
+	#WIFSTOPPED
+(
+¡©us
+è
+	`__WIFSTOPPED
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+85 #ifdeà
+__WIFCONTINUED
+
+
+86 
+	#WIFCONTINUED
+(
+¡©us
+è
+	`__WIFCONTINUED
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+90 #ifdef 
+__USE_MISC
+
+
+91 
+	#WCOREFLAG
+ 
+__WCOREFLAG
+
+
+	)
+
+92 
+	#WCOREDUMP
+(
+¡©us
+è
+	`__WCOREDUMP
+ (
+	`__WAIT_INT
+ (¡©us))
+
+	)
+
+93 
+	#W_EXITCODE
+(
+»t
+, 
+sig
+è
+	`__W_EXITCODE
+ (»t, sig)
+
+	)
+
+94 
+	#W_STOPCODE
+(
+sig
+è
+	`__W_STOPCODE
+ (sig)
+
+	)
+
+102 
+__pid_t
+ 
+wa™
+ (
+__WAIT_STATUS
+ 
+__¡©_loc
+);
+
+104 #ifdef 
+__USE_MISC
+
+
+106 
+	#WAIT_ANY
+ (-1è
+
+	)
+
+107 
+	#WAIT_MYPGRP
+ 0
+
+	)
+
+125 
+__pid_t
+ 
+wa™pid
+ (__pid_ˆ
+__pid
+, *
+__¡©_loc
+, 
+__ÝtiÚs
+);
+
+127 #ià
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_XOPEN2K8
+
+
+128 #iâdeà
+__id_t_defšed
+
+
+129 
+	~<b™s/ty³s.h
+>
+
+130 
+__id_t
+ 
+	tid_t
+;
+
+131 
+	#__id_t_defšed
+
+
+	)
+
+134 
+	#__Ãed_sigšfo_t
+
+
+	)
+
+135 
+	~<b™s/sigšfo.h
+>
+
+148 

+wa™id
+ (
+idty³_t
+ 
+__idty³
+, 
+__id_t
+ 
+__id
+, 
+sigšfo_t
+ *
+__šfÝ
+,
+
+149 
+__ÝtiÚs
+);
+
+152 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN_EXTENDED
+
+
+155 
+	gru§ge
+;
+
+162 
+__pid_t
+ 
+	$wa™3
+ (
+__WAIT_STATUS
+ 
+__¡©_loc
+, 
+__ÝtiÚs
+,
+
+163 
+ru§ge
+ * 
+__u§ge
+è
+__THROWNL
+;
+
+166 #ifdeà
+__USE_MISC
+
+
+168 
+__pid_t
+ 
+	$wa™4
+ (
+__pid_t
+ 
+__pid
+, 
+__WAIT_STATUS
+ 
+__¡©_loc
+, 
+__ÝtiÚs
+,
+
+169 
+ru§ge
+ *
+__u§ge
+è
+__THROWNL
+;
+
+173 
+__END_DECLS
+
+
+	@/usr/include/time.h
+
+22 #iâdef 
+_TIME_H
+
+
+24 #ià(! 
+defšed
+ 
+__Ãed_time_t
+ && !defšed 
+__Ãed_þock_t
+ && \
+
+25 ! 
+defšed
+ 
+	g__Ãed_time¥ec
+)
+
+26 
+	#_TIME_H
+ 1
+
+	)
+
+27 
+	~<ã©u»s.h
+>
+
+29 
+	g__BEGIN_DECLS
+
+
+33 #ifdef 
+_TIME_H
+
+
+35 
+	#__Ãed_size_t
+
+
+	)
+
+36 
+	#__Ãed_NULL
+
+
+	)
+
+37 
+	~<¡ddef.h
+>
+
+41 
+	~<b™s/time.h
+>
+
+44 #ià!
+defšed
+ 
+__STRICT_ANSI__
+ && !defšed 
+__USE_XOPEN2K
+
+
+45 #iâdeà
+CLK_TCK
+
+
+46 
+	#CLK_TCK
+ 
+CLOCKS_PER_SEC
+
+
+	)
+
+52 #ià!
+defšed
+ 
+__þock_t_defšed
+ && (defšed 
+_TIME_H
+ || defšed 
+__Ãed_þock_t
+)
+
+53 
+	#__þock_t_defšed
+ 1
+
+	)
+
+55 
+	~<b™s/ty³s.h
+>
+
+57 
+__BEGIN_NAMESPACE_STD
+
+
+59 
+__þock_t
+ 
+	tþock_t
+;
+
+60 
+	g__END_NAMESPACE_STD
+
+
+61 #ià
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_POSIX
+
+
+62 
+	$__USING_NAMESPACE_STD
+(
+þock_t
+)
+
+66 #undeà
+__Ãed_þock_t
+
+
+68 #ià!
+defšed
+ 
+__time_t_defšed
+ && (defšed 
+_TIME_H
+ || defšed 
+__Ãed_time_t
+)
+
+69 
+	#__time_t_defšed
+ 1
+
+	)
+
+71 
+	~<b™s/ty³s.h
+>
+
+73 
+__BEGIN_NAMESPACE_STD
+
+
+75 
+__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šed
+ 
+__þockid_t_defšed
+ && \
+
+85 ((
+defšed
+ 
+_TIME_H
+ && defšed 
+__USE_POSIX199309
+è|| defšed 
+__Ãed_þockid_t
+)
+
+86 
+	#__þockid_t_defšed
+ 1
+
+	)
+
+88 
+	~<b™s/ty³s.h
+>
+
+91 
+__þockid_t
+ 
+	tþockid_t
+;
+
+94 #undeà
+__þockid_time_t
+
+
+96 #ià!
+defšed
+ 
+__tim”_t_defšed
+ && \
+
+97 ((
+defšed
+ 
+_TIME_H
+ && defšed 
+__USE_POSIX199309
+è|| defšed 
+__Ãed_tim”_t
+)
+
+98 
+	#__tim”_t_defšed
+ 1
+
+	)
+
+100 
+	~<b™s/ty³s.h
+>
+
+103 
+__tim”_t
+ 
+	ttim”_t
+;
+
+106 #undeà
+__Ãed_tim”_t
+
+
+109 #ià(!
+defšed
+ 
+__time¥ec_defšed
+ \
+
+110 && ((
+defšed
+ 
+_TIME_H
+ \
+
+111 && (
+defšed
+ 
+__USE_POSIX199309
+ \
+
+112 || 
+defšed
+ 
+__USE_ISOC11
+)) \
+
+113 || 
+defšed
+ 
+__Ãed_time¥ec
+))
+
+114 
+	#__time¥ec_defšed
+ 1
+
+	)
+
+116 
+	~<b™s/ty³s.h
+>
+
+120 
+	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 
+	stm
+
+
+135 
+tm_£c
+;
+
+136 
+tm_mš
+;
+
+137 
+tm_hour
+;
+
+138 
+tm_mday
+;
+
+139 
+tm_mÚ
+;
+
+140 
+tm_y—r
+;
+
+141 
+tm_wday
+;
+
+142 
+tm_yday
+;
+
+143 
+tm_isd¡
+;
+
+145 #ifdef 
+__USE_MISC
+
+
+146 
+tm_gmtoff
+;
+
+147 cÚ¡ *
+tm_zÚe
+;
+
+149 
+__tm_gmtoff
+;
+
+150 cÚ¡ *
+__tm_zÚe
+;
+
+153 
+__END_NAMESPACE_STD
+
+
+154 #ià
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_POSIX
+
+
+155 
+	$__USING_NAMESPACE_STD
+(
+tm
+)
+
+159 #ifdeà
+__USE_POSIX199309
+
+
+161 
+	s™im”¥ec
+
+
+163 
+time¥ec
+ 
+™_š‹rv®
+;
+
+164 
+time¥ec
+ 
+™_v®ue
+;
+
+168 
+sigev’t
+;
+
+172 #ifdeà
+__USE_XOPEN2K
+
+
+173 #iâdeà
+__pid_t_defšed
+
+
+174 
+__pid_t
+ 
+	tpid_t
+;
+
+175 
+	#__pid_t_defšed
+
+
+	)
+
+180 #ifdeà
+__USE_ISOC11
+
+
+182 
+	#TIME_UTC
+ 1
+
+	)
+
+186 
+__BEGIN_NAMESPACE_STD
+
+
+189 
+þock_t
+ 
+	$þock
+ (è
+__THROW
+;
+
+192 
+time_t
+ 
+	$time
+ (
+time_t
+ *
+__tim”
+è
+__THROW
+;
+
+195 

+	$difáime
+ (
+time_t
+ 
+__time1
+,ime_ˆ
+__time0
+)
+
+196 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+199 
+time_t
+ 
+	$mktime
+ (
+tm
+ *
+__
+è
+__THROW
+;
+
+205 
+size_t
+ 
+	$¡ráime
+ (*
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__maxsize
+,
+
+206 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+,
+
+207 cÚ¡ 
+tm
+ *
+__»¡riù
+ 
+__
+è
+__THROW
+;
+
+208 
+__END_NAMESPACE_STD
+
+
+210 #ifdeà
+__USE_XOPEN
+
+
+213 
*
+	$¡½time
+ (cÚ¡ *
+__»¡riù
+ 
+__s
+,
+
+214 cÚ¡ *
+__»¡riù
+ 
+__fmt
+, 
+tm
+ *
+__
+)
+
+215 
+__THROW
+;
+
+218 #ifdeà
+__USE_XOPEN2K8
+
+
+221 
+	~<xloÿË.h
+>
+
+223 
+size_t
+ 
+	$¡ráime_l
+ (*
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__maxsize
+,
+
+224 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+,
+
+225 cÚ¡ 
+tm
+ *
+__»¡riù
+ 
+__
+,
+
+226 
+__loÿË_t
+ 
+__loc
+è
+__THROW
+;
+
+229 #ifdeà
+__USE_GNU
+
+
+230 
*
+	$¡½time_l
+ (cÚ¡ *
+__»¡riù
+ 
+__s
+,
+
+231 cÚ¡ *
+__»¡riù
+ 
+__fmt
+, 
+tm
+ *
+__
+,
+
+232 
+__loÿË_t
+ 
+__loc
+è
+__THROW
+;
+
+236 
+__BEGIN_NAMESPACE_STD
+
+
+239 

+tm
+ *
+	$gmtime
+ (cÚ¡ 
+time_t
+ *
+__tim”
+è
+__THROW
+;
+
+243 

+tm
+ *
+	$loÿÉime
+ (cÚ¡ 
+time_t
+ *
+__tim”
+è
+__THROW
+;
+
+244 
+__END_NAMESPACE_STD
+
+
+246 #ifdeà
+__USE_POSIX
+
+
+249 

+tm
+ *
+	$gmtime_r
+ (cÚ¡ 
+time_t
+ *
+__»¡riù
+ 
+__tim”
+,
+
+250 
+tm
+ *
+__»¡riù
+ 
+__
+è
+__THROW
+;
+
+254 

+tm
+ *
+	$loÿÉime_r
+ (cÚ¡ 
+time_t
+ *
+__»¡riù
+ 
+__tim”
+,
+
+255 
+tm
+ *
+__»¡riù
+ 
+__
+è
+__THROW
+;
+
+258 
+__BEGIN_NAMESPACE_STD
+
+
+261 
*
+	$asùime
+ (cÚ¡ 
+tm
+ *
+__
+è
+__THROW
+;
+
+264 
*
+	$ùime
+ (cÚ¡ 
+time_t
+ *
+__tim”
+è
+__THROW
+;
+
+265 
+__END_NAMESPACE_STD
+
+
+267 #ifdeà
+__USE_POSIX
+
+
+272 
*
+	$asùime_r
+ (cÚ¡ 
+tm
+ *
+__»¡riù
+ 
+__
+,
+
+273 *
+__»¡riù
+ 
+__buf
+è
+__THROW
+;
+
+276 
*
+	$ùime_r
+ (cÚ¡ 
+time_t
+ *
+__»¡riù
+ 
+__tim”
+,
+
+277 *
+__»¡riù
+ 
+__buf
+è
+__THROW
+;
+
+282 
*
+__tzÇme
+[2];
+
+283 

+__daylight
+;
+
+284 

+__timezÚe
+;
+
+287 #ifdef 
+__USE_POSIX
+
+
+289 
*
+tzÇme
+[2];
+
+293 

+	$tz£t
+ (è
+__THROW
+;
+
+296 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+297 

+daylight
+;
+
+298 

+timezÚe
+;
+
+301 #ifdeà
+__USE_MISC
+
+
+304 

+	$¡ime
+ (cÚ¡ 
+time_t
+ *
+__wh’
+è
+__THROW
+;
+
+310 
+	#__i¦—p
+(
+y—r
+) \
+
+311 ((
+y—r
+è% 4 =ð0 && ((y—rè% 100 !ð0 || (y—rè% 400 =ð0))
+
+	)
+
+314 #ifdeà
+__USE_MISC
+
+
+319 
+time_t
+ 
+	$timegm
+ (
+tm
+ *
+__
+è
+__THROW
+;
+
+322 
+time_t
+ 
+	$tim–oÿl
+ (
+tm
+ *
+__
+è
+__THROW
+;
+
+325 

+	$dysize
+ (
+__y—r
+è
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+329 #ifdeà
+__USE_POSIX199309
+
+
+334 

+	`Çno¦“p
+ (cÚ¡ 
+time¥ec
+ *
+__»que¡ed_time
+,
+
+335 
+time¥ec
+ *
+__»maššg
+);
+
+339 

+	$þock_g‘»s
+ (
+þockid_t
+ 
+__þock_id
+, 
+time¥ec
+ *
+__»s
+è
+__THROW
+;
+
+342 

+	$þock_g‘time
+ (
+þockid_t
+ 
+__þock_id
+, 
+time¥ec
+ *
+__
+è
+__THROW
+;
+
+345 

+	$þock_£‰ime
+ (
+þockid_t
+ 
+__þock_id
+, cÚ¡ 
+time¥ec
+ *
+__
+)
+
+346 
+__THROW
+;
+
+348 #ifdeà
+__USE_XOPEN2K
+
+
+353 

+	`þock_Çno¦“p
+ (
+þockid_t
+ 
+__þock_id
+, 
+__æags
+,
+
+354 cÚ¡ 
+time¥ec
+ *
+__»q
+,
+
+355 
+time¥ec
+ *
+__»m
+);
+
+358 

+	$þock_g‘ýuþockid
+ (
+pid_t
+ 
+__pid
+, 
+þockid_t
+ *
+__þock_id
+è
+__THROW
+;
+
+363 

+	$tim”_ü—‹
+ (
+þockid_t
+ 
+__þock_id
+,
+
+364 
+sigev’t
+ *
+__»¡riù
+ 
+__evp
+,
+
+365 
+tim”_t
+ *
+__»¡riù
+ 
+__tim”id
+è
+__THROW
+;
+
+368 

+	$tim”_d–‘e
+ (
+tim”_t
+ 
+__tim”id
+è
+__THROW
+;
+
+371 

+	$tim”_£‰ime
+ (
+tim”_t
+ 
+__tim”id
+, 
+__æags
+,
+
+372 cÚ¡ 
+™im”¥ec
+ *
+__»¡riù
+ 
+__v®ue
+,
+
+373 
+™im”¥ec
+ *
+__»¡riù
+ 
+__ov®ue
+è
+__THROW
+;
+
+376 

+	$tim”_g‘time
+ (
+tim”_t
+ 
+__tim”id
+, 
+™im”¥ec
+ *
+__v®ue
+)
+
+377 
+__THROW
+;
+
+380 

+	$tim”_g‘ov”run
+ (
+tim”_t
+ 
+__tim”id
+è
+__THROW
+;
+
+384 #ifdeà
+__USE_ISOC11
+
+
+386 

+	$time¥ec_g‘
+ (
+time¥ec
+ *
+__ts
+, 
+__ba£
+)
+
+387 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+391 #ifdeà
+__USE_XOPEN_EXTENDED
+
+
+403 

+g‘d©e_”r
+;
+
+412 

+tm
+ *
+	`g‘d©e
+ (cÚ¡ *
+__¡ršg
+);
+
+415 #ifdeà
+__USE_GNU
+
+
+426 

+	`g‘d©e_r
+ (cÚ¡ *
+__»¡riù
+ 
+__¡ršg
+,
+
+427 
+tm
+ *
+__»¡riù
+ 
+__»sbuå
+);
+
+430 
+__END_DECLS
+
+
+	@/usr/include/unistd.h
+
+22 #iâdef 
+_UNISTD_H
+
+
+23 
+	#_UNISTD_H
+ 1
+
+	)
+
+25 
+	~<ã©u»s.h
+>
+
+27 
+	g__BEGIN_DECLS
+
+
+32 #ifdeà
+__USE_XOPEN2K8
+
+
+34 
+	#_POSIX_VERSION
+ 200809L
+
+	)
+
+35 #–ià
+defšed
+ 
+__USE_XOPEN2K
+
+
+37 
+	#_POSIX_VERSION
+ 200112L
+
+	)
+
+38 #–ià
+defšed
+ 
+__USE_POSIX199506
+
+
+40 
+	#_POSIX_VERSION
+ 199506L
+
+	)
+
+41 #–ià
+defšed
+ 
+__USE_POSIX199309
+
+
+43 
+	#_POSIX_VERSION
+ 199309L
+
+	)
+
+46 
+	#_POSIX_VERSION
+ 199009L
+
+	)
+
+52 #ifdeà
+__USE_XOPEN2K8
+
+
+53 
+	#__POSIX2_THIS_VERSION
+ 200809L
+
+	)
+
+55 #–ià
+defšed
+ 
+__USE_XOPEN2K
+
+
+57 
+	#__POSIX2_THIS_VERSION
+ 200112L
+
+	)
+
+58 #–ià
+defšed
+ 
+__USE_POSIX199506
+
+
+60 
+	#__POSIX2_THIS_VERSION
+ 199506L
+
+	)
+
+63 
+	#__POSIX2_THIS_VERSION
+ 199209L
+
+	)
+
+67 
+	#_POSIX2_VERSION
+ 
+__POSIX2_THIS_VERSION
+
+
+	)
+
+70 
+	#_POSIX2_C_VERSION
+ 
+__POSIX2_THIS_VERSION
+
+
+	)
+
+74 
+	#_POSIX2_C_BIND
+ 
+__POSIX2_THIS_VERSION
+
+
+	)
+
+78 
+	#_POSIX2_C_DEV
+ 
+__POSIX2_THIS_VERSION
+
+
+	)
+
+82 
+	#_POSIX2_SW_DEV
+ 
+__POSIX2_THIS_VERSION
+
+
+	)
+
+86 
+	#_POSIX2_LOCALEDEF
+ 
+__POSIX2_THIS_VERSION
+
+
+	)
+
+89 #ifdeà
+__USE_XOPEN2K8
+
+
+90 
+	#_XOPEN_VERSION
+ 700
+
+	)
+
+91 #–ià
+defšed
+ 
+__USE_XOPEN2K
+
+
+92 
+	#_XOPEN_VERSION
+ 600
+
+	)
+
+93 #–ià
+defšed
+ 
+__USE_UNIX98
+
+
+94 
+	#_XOPEN_VERSION
+ 500
+
+	)
+
+96 
+	#_XOPEN_VERSION
+ 4
+
+	)
+
+100 
+	#_XOPEN_XCU_VERSION
+ 4
+
+	)
+
+103 
+	#_XOPEN_XPG2
+ 1
+
+	)
+
+104 
+	#_XOPEN_XPG3
+ 1
+
+	)
+
+105 
+	#_XOPEN_XPG4
+ 1
+
+	)
+
+108 
+	#_XOPEN_UNIX
+ 1
+
+	)
+
+111 
+	#_XOPEN_CRYPT
+ 1
+
+	)
+
+115 
+	#_XOPEN_ENH_I18N
+ 1
+
+	)
+
+118 
+	#_XOPEN_LEGACY
+ 1
+
+	)
+
+205 
+	~<b™s/posix_Ýt.h
+>
+
+208 #ià
+defšed
+ 
+__USE_UNIX98
+ || defšed 
+__USE_XOPEN2K
+
+
+209 
+	~<b™s/’vœÚm’ts.h
+>
+
+213 
+	#STDIN_FILENO
+ 0
+
+	)
+
+214 
+	#STDOUT_FILENO
+ 1
+
+	)
+
+215 
+	#STDERR_FILENO
+ 2
+
+	)
+
+220 
+	~<b™s/ty³s.h
+>
+
+222 #iâdef 
+__ssize_t_defšed
+
+
+223 
+__ssize_t
+ 
+	tssize_t
+;
+
+224 
+	#__ssize_t_defšed
+
+
+	)
+
+227 
+	#__Ãed_size_t
+
+
+	)
+
+228 
+	#__Ãed_NULL
+
+
+	)
+
+229 
+	~<¡ddef.h
+>
+
+231 #ià
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_XOPEN2K
+
+
+234 #iâdeà
+__gid_t_defšed
+
+
+235 
+__gid_t
+ 
+	tgid_t
+;
+
+236 
+	#__gid_t_defšed
+
+
+	)
+
+239 #iâdeà
+__uid_t_defšed
+
+
+240 
+__uid_t
+ 
+	tuid_t
+;
+
+241 
+	#__uid_t_defšed
+
+
+	)
+
+244 #iâdeà
+__off_t_defšed
+
+
+245 #iâdeà
+__USE_FILE_OFFSET64
+
+
+246 
+__off_t
+ 
+	toff_t
+;
+
+248 
+__off64_t
+ 
+	toff_t
+;
+
+250 
+	#__off_t_defšed
+
+
+	)
+
+252 #ià
+defšed
+ 
+__USE_LARGEFILE64
+ && !defšed 
+__off64_t_defšed
+
+
+253 
+__off64_t
+ 
+	toff64_t
+;
+
+254 
+	#__off64_t_defšed
+
+
+	)
+
+257 #iâdeà
+__u£cÚds_t_defšed
+
+
+258 
+__u£cÚds_t
+ 
+	tu£cÚds_t
+;
+
+259 
+	#__u£cÚds_t_defšed
+
+
+	)
+
+262 #iâdeà
+__pid_t_defšed
+
+
+263 
+__pid_t
+ 
+	tpid_t
+;
+
+264 
+	#__pid_t_defšed
+
+
+	)
+
+268 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K
+
+
+269 #iâdeà
+__šŒ_t_defšed
+
+
+270 
+__šŒ_t
+ 
+	tšŒ_t
+;
+
+271 
+	#__šŒ_t_defšed
+
+
+	)
+
+275 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+276 #iâdeà
+__sockËn_t_defšed
+
+
+277 
+__sockËn_t
+ 
+	tsockËn_t
+;
+
+278 
+	#__sockËn_t_defšed
+
+
+	)
+
+284 
+	#R_OK
+ 4
+
+	)
+
+285 
+	#W_OK
+ 2
+
+	)
+
+286 
+	#X_OK
+ 1
+
+	)
+
+287 
+	#F_OK
+ 0
+
+	)
+
+290 

+	$acûss
+ (cÚ¡ *
+__Çme
+, 
+__ty³
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+292 #ifdeà
+__USE_GNU
+
+
+295 

+	$euidacûss
+ (cÚ¡ *
+__Çme
+, 
+__ty³
+)
+
+296 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+299 

+	$—cûss
+ (cÚ¡ *
+__Çme
+, 
+__ty³
+)
+
+300 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+303 #ifdeà
+__USE_ATFILE
+
+
+307 

+	$çcûs§t
+ (
+__fd
+, cÚ¡ *
+__fže
+, 
+__ty³
+, 
+__æag
+)
+
+308 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2)è
+__wur
+;
+
+313 #iâdef 
+_STDIO_H
+
+
+314 
+	#SEEK_SET
+ 0
+
+	)
+
+315 
+	#SEEK_CUR
+ 1
+
+	)
+
+316 
+	#SEEK_END
+ 2
+
+	)
+
+317 #ifdeà
+__USE_GNU
+
+
+318 
+	#SEEK_DATA
+ 3
+
+	)
+
+319 
+	#SEEK_HOLE
+ 4
+
+	)
+
+323 #ià
+defšed
+ 
+__USE_MISC
+ && !defšed 
+L_SET
+
+
+325 
+	#L_SET
+ 
+SEEK_SET
+
+
+	)
+
+326 
+	#L_INCR
+ 
+SEEK_CUR
+
+
+	)
+
+327 
+	#L_XTND
+ 
+SEEK_END
+
+
+	)
+
+336 #iâdeà
+__USE_FILE_OFFSET64
+
+
+337 
+__off_t
+ 
+	$l£ek
+ (
+__fd
+, 
+__off_t
+ 
+__off£t
+, 
+__wh’û
+è
+__THROW
+;
+
+339 #ifdeà
+__REDIRECT_NTH
+
+
+340 
+__off64_t
+ 
+	`__REDIRECT_NTH
+ (
+l£ek
+,
+
+341 (
+__fd
+, 
+__off64_t
+ 
+__off£t
+, 
+__wh’û
+),
+
+342 
+l£ek64
+);
+
+344 
+	#l£ek
+ 
+l£ek64
+
+
+	)
+
+347 #ifdeà
+__USE_LARGEFILE64
+
+
+348 
+__off64_t
+ 
+	$l£ek64
+ (
+__fd
+, 
+__off64_t
+ 
+__off£t
+, 
+__wh’û
+)
+
+349 
+__THROW
+;
+
+356 

+	`þo£
+ (
+__fd
+);
+
+363 
+ssize_t
+ 
+	$»ad
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+è
+__wur
+;
+
+369 
+ssize_t
+ 
+	$wr™e
+ (
+__fd
+, cÚ¡ *
+__buf
+, 
+size_t
+ 
+__n
+è
+__wur
+;
+
+371 #ià
+defšed
+ 
+__USE_UNIX98
+ || defšed 
+__USE_XOPEN2K8
+
+
+372 #iâdeà
+__USE_FILE_OFFSET64
+
+
+379 
+ssize_t
+ 
+	$´—d
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+,
+
+380 
+__off_t
+ 
+__off£t
+è
+__wur
+;
+
+387 
+ssize_t
+ 
+	$pwr™e
+ (
+__fd
+, cÚ¡ *
+__buf
+, 
+size_t
+ 
+__n
+,
+
+388 
+__off_t
+ 
+__off£t
+è
+__wur
+;
+
+390 #ifdeà
+__REDIRECT
+
+
+391 
+ssize_t
+ 
+	`__REDIRECT
+ (
+´—d
+, (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+,
+
+392 
+__off64_t
+ 
+__off£t
+),
+
+393 
+´—d64
+è
+__wur
+;
+
+394 
+ssize_t
+ 
+	`__REDIRECT
+ (
+pwr™e
+, (
+__fd
+, cÚ¡ *
+__buf
+,
+
+395 
+size_t
+ 
+__nby‹s
+, 
+__off64_t
+ 
+__off£t
+),
+
+396 
+pwr™e64
+è
+__wur
+;
+
+398 
+	#´—d
+ 
+´—d64
+
+
+	)
+
+399 
+	#pwr™e
+ 
+pwr™e64
+
+
+	)
+
+403 #ifdeà
+__USE_LARGEFILE64
+
+
+407 
+ssize_t
+ 
+	$´—d64
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+,
+
+408 
+__off64_t
+ 
+__off£t
+è
+__wur
+;
+
+411 
+ssize_t
+ 
+	$pwr™e64
+ (
+__fd
+, cÚ¡ *
+__buf
+, 
+size_t
+ 
+__n
+,
+
+412 
+__off64_t
+ 
+__off£t
+è
+__wur
+;
+
+420 

+	$pe
+ (
+__pedes
+[2]è
+__THROW
+ 
+__wur
+;
+
+422 #ifdeà
+__USE_GNU
+
+
+425 

+	$pe2
+ (
+__pedes
+[2], 
+__æags
+è
+__THROW
+ 
+__wur
+;
+
+435 

+	$®¬m
+ (
+__£cÚds
+è
+__THROW
+;
+
+447 

+	`¦“p
+ (
+__£cÚds
+);
+
+449 #ià(
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ && !defšed 
+__USE_XOPEN2K8
+) \
+
+450 || 
+defšed
+ 
+__USE_MISC
+
+
+455 
+__u£cÚds_t
+ 
+	$u®¬m
+ (
+__u£cÚds_t
+ 
+__v®ue
+, __u£cÚds_ˆ
+__š‹rv®
+)
+
+456 
+__THROW
+;
+
+463 

+	`u¦“p
+ (
+__u£cÚds_t
+ 
+__u£cÚds
+);
+
+472 

+	`·u£
+ ();
+
+476 

+	$chown
+ (cÚ¡ *
+__fže
+, 
+__uid_t
+ 
+__owÃr
+, 
+__gid_t
+ 
+__group
+)
+
+477 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+479 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K8
+
+
+481 

+	$fchown
+ (
+__fd
+, 
+__uid_t
+ 
+__owÃr
+, 
+__gid_t
+ 
+__group
+è
+__THROW
+ 
+__wur
+;
+
+486 

+	$lchown
+ (cÚ¡ *
+__fže
+, 
+__uid_t
+ 
+__owÃr
+, 
+__gid_t
+ 
+__group
+)
+
+487 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+491 #ifdeà
+__USE_ATFILE
+
+
+494 

+	$fchowÇt
+ (
+__fd
+, cÚ¡ *
+__fže
+, 
+__uid_t
+ 
+__owÃr
+,
+
+495 
+__gid_t
+ 
+__group
+, 
+__æag
+)
+
+496 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2)è
+__wur
+;
+
+500 

+	$chdœ
+ (cÚ¡ *
+__·th
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+502 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K8
+
+
+504 

+	$fchdœ
+ (
+__fd
+è
+__THROW
+ 
+__wur
+;
+
+514 
*
+	$g‘cwd
+ (*
+__buf
+, 
+size_t
+ 
+__size
+è
+__THROW
+ 
+__wur
+;
+
+516 #ifdef 
+__USE_GNU
+
+
+520 
*
+	$g‘_cu¼’t_dœ_Çme
+ (è
+__THROW
+;
+
+523 #ià(
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ && !defšed 
+__USE_XOPEN2K8
+) \
+
+524 || 
+defšed
+ 
+__USE_MISC
+
+
+528 
*
+	$g‘wd
+ (*
+__buf
+)
+
+529 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__©Œibu‹_d•»ÿ‹d__
+ 
+__wur
+;
+
+534 

+	$dup
+ (
+__fd
+è
+__THROW
+ 
+__wur
+;
+
+537 

+	$dup2
+ (
+__fd
+, 
+__fd2
+è
+__THROW
+;
+
+539 #ifdeà
+__USE_GNU
+
+
+542 

+	$dup3
+ (
+__fd
+, 
+__fd2
+, 
+__æags
+è
+__THROW
+;
+
+546 
**
+__’vœÚ
+;
+
+547 #ifdeà
+__USE_GNU
+
+
+548 
**
+’vœÚ
+;
+
+554 

+	$execve
+ (cÚ¡ *
+__·th
+, *cÚ¡ 
+__¬gv
+[],
+
+555 *cÚ¡ 
+__’vp
+[]è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+557 #ifdeà
+__USE_XOPEN2K8
+
+
+560 

+	$ãxecve
+ (
+__fd
+, *cÚ¡ 
+__¬gv
+[], *cÚ¡ 
+__’vp
+[])
+
+561 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2));
+
+566 

+	$execv
+ (cÚ¡ *
+__·th
+, *cÚ¡ 
+__¬gv
+[])
+
+567 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+571 

+	$exeþe
+ (cÚ¡ *
+__·th
+, cÚ¡ *
+__¬g
+, ...)
+
+572 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+576 

+	$exeþ
+ (cÚ¡ *
+__·th
+, cÚ¡ *
+__¬g
+, ...)
+
+577 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+581 

+	$execvp
+ (cÚ¡ *
+__fže
+, *cÚ¡ 
+__¬gv
+[])
+
+582 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+587 

+	$exeþp
+ (cÚ¡ *
+__fže
+, cÚ¡ *
+__¬g
+, ...)
+
+588 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+590 #ifdeà
+__USE_GNU
+
+
+593 

+	$execv³
+ (cÚ¡ *
+__fže
+, *cÚ¡ 
+__¬gv
+[],
+
+594 *cÚ¡ 
+__’vp
+[])
+
+595 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+599 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+601 

+	$niû
+ (
+__šc
+è
+__THROW
+ 
+__wur
+;
+
+606 

+	$_ex™
+ (
+__¡©us
+è
+	`__©Œibu‹__
+ ((
+__nܑuº__
+));
+
+612 
+	~<b™s/cÚâame.h
+>
+
+615 

+	$·thcÚf
+ (cÚ¡ *
+__·th
+, 
+__Çme
+)
+
+616 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+619 

+	$å©hcÚf
+ (
+__fd
+, 
+__Çme
+è
+__THROW
+;
+
+622 

+	$syscÚf
+ (
+__Çme
+è
+__THROW
+;
+
+624 #ifdef 
+__USE_POSIX2
+
+
+626 
+size_t
+ 
+	$cÚf¡r
+ (
+__Çme
+, *
+__buf
+, 
+size_t
+ 
+__Ën
+è
+__THROW
+;
+
+631 
+__pid_t
+ 
+	$g‘pid
+ (è
+__THROW
+;
+
+634 
+__pid_t
+ 
+	$g‘µid
+ (è
+__THROW
+;
+
+637 
+__pid_t
+ 
+	$g‘pg½
+ (è
+__THROW
+;
+
+640 
+__pid_t
+ 
+	$__g‘pgid
+ (
+__pid_t
+ 
+__pid
+è
+__THROW
+;
+
+641 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K8
+
+
+642 
+__pid_t
+ 
+	$g‘pgid
+ (
+__pid_t
+ 
+__pid
+è
+__THROW
+;
+
+649 

+	$£gid
+ (
+__pid_t
+ 
+__pid
+, __pid_ˆ
+__pgid
+è
+__THROW
+;
+
+651 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN_EXTENDED
+
+
+663 

+	$£g½
+ (è
+__THROW
+;
+
+670 
+__pid_t
+ 
+	$£tsid
+ (è
+__THROW
+;
+
+672 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K8
+
+
+674 
+__pid_t
+ 
+	$g‘sid
+ (
+__pid_t
+ 
+__pid
+è
+__THROW
+;
+
+678 
+__uid_t
+ 
+	$g‘uid
+ (è
+__THROW
+;
+
+681 
+__uid_t
+ 
+	$g‘euid
+ (è
+__THROW
+;
+
+684 
+__gid_t
+ 
+	$g‘gid
+ (è
+__THROW
+;
+
+687 
+__gid_t
+ 
+	$g‘egid
+ (è
+__THROW
+;
+
+692 

+	$g‘groups
+ (
+__size
+, 
+__gid_t
+ 
+__li¡
+[]è
+__THROW
+ 
+__wur
+;
+
+694 #ifdef 
+__USE_GNU
+
+
+696 

+	$group_memb”
+ (
+__gid_t
+ 
+__gid
+è
+__THROW
+;
+
+703 

+	$£tuid
+ (
+__uid_t
+ 
+__uid
+è
+__THROW
+ 
+__wur
+;
+
+705 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN_EXTENDED
+
+
+708 

+	$£Œeuid
+ (
+__uid_t
+ 
+__ruid
+, __uid_ˆ
+__euid
+è
+__THROW
+ 
+__wur
+;
+
+711 #ifdeà
+__USE_XOPEN2K
+
+
+713 

+	$£‹uid
+ (
+__uid_t
+ 
+__uid
+è
+__THROW
+ 
+__wur
+;
+
+720 

+	$£tgid
+ (
+__gid_t
+ 
+__gid
+è
+__THROW
+ 
+__wur
+;
+
+722 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN_EXTENDED
+
+
+725 

+	$£Œegid
+ (
+__gid_t
+ 
+__rgid
+, __gid_ˆ
+__egid
+è
+__THROW
+ 
+__wur
+;
+
+728 #ifdeà
+__USE_XOPEN2K
+
+
+730 

+	$£‹gid
+ (
+__gid_t
+ 
+__gid
+è
+__THROW
+ 
+__wur
+;
+
+733 #ifdeà
+__USE_GNU
+
+
+736 

+	$g‘»suid
+ (
+__uid_t
+ *
+__ruid
+, __uid_ˆ*
+__euid
+, __uid_ˆ*
+__suid
+)
+
+737 
+__THROW
+;
+
+741 

+	$g‘»sgid
+ (
+__gid_t
+ *
+__rgid
+, __gid_ˆ*
+__egid
+, __gid_ˆ*
+__sgid
+)
+
+742 
+__THROW
+;
+
+746 

+	$£Œesuid
+ (
+__uid_t
+ 
+__ruid
+, __uid_ˆ
+__euid
+, __uid_ˆ
+__suid
+)
+
+747 
+__THROW
+ 
+__wur
+;
+
+751 

+	$£Œesgid
+ (
+__gid_t
+ 
+__rgid
+, __gid_ˆ
+__egid
+, __gid_ˆ
+__sgid
+)
+
+752 
+__THROW
+ 
+__wur
+;
+
+759 
+__pid_t
+ 
+	$fÜk
+ (è
+__THROWNL
+;
+
+761 #ià(
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ && !defšed 
+__USE_XOPEN2K8
+) \
+
+762 || 
+defšed
+ 
+__USE_MISC
+
+
+767 
+__pid_t
+ 
+	$vfÜk
+ (è
+__THROW
+;
+
+773 
*
+	$‰yÇme
+ (
+__fd
+è
+__THROW
+;
+
+777 

+	$‰yÇme_r
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__buæ’
+)
+
+778 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2)è
+__wur
+;
+
+782 

+	$i§‰y
+ (
+__fd
+è
+__THROW
+;
+
+784 #ià
+defšed
+ 
+__USE_MISC
+ \
+
+785 || (
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ && !defšed 
+__USE_UNIX98
+)
+
+788 

+	$‰y¦Ù
+ (è
+__THROW
+;
+
+793 

+	$lšk
+ (cÚ¡ *
+__äom
+, cÚ¡ *
+__to
+)
+
+794 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2)è
+__wur
+;
+
+796 #ifdeà
+__USE_ATFILE
+
+
+799 

+	$lšk©
+ (
+__äomfd
+, cÚ¡ *
+__äom
+, 
+__tofd
+,
+
+800 cÚ¡ *
+__to
+, 
+__æags
+)
+
+801 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2, 4)è
+__wur
+;
+
+804 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K
+
+
+806 

+	$symlšk
+ (cÚ¡ *
+__äom
+, cÚ¡ *
+__to
+)
+
+807 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2)è
+__wur
+;
+
+812 
+ssize_t
+ 
+	$»adlšk
+ (cÚ¡ *
+__»¡riù
+ 
+__·th
+,
+
+813 *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__Ën
+)
+
+814 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2)è
+__wur
+;
+
+817 #ifdeà
+__USE_ATFILE
+
+
+819 

+	$symlšk©
+ (cÚ¡ *
+__äom
+, 
+__tofd
+,
+
+820 cÚ¡ *
+__to
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 3)è
+__wur
+;
+
+823 
+ssize_t
+ 
+	$»adlšk©
+ (
+__fd
+, cÚ¡ *
+__»¡riù
+ 
+__·th
+,
+
+824 *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__Ën
+)
+
+825 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2, 3)è
+__wur
+;
+
+829 

+	$uƚk
+ (cÚ¡ *
+__Çme
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+831 #ifdeà
+__USE_ATFILE
+
+
+833 

+	$uƚk©
+ (
+__fd
+, cÚ¡ *
+__Çme
+, 
+__æag
+)
+
+834 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2));
+
+838 

+	$rmdœ
+ (cÚ¡ *
+__·th
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+842 
+__pid_t
+ 
+	$tcg‘pg½
+ (
+__fd
+è
+__THROW
+;
+
+845 

+	$tc£g½
+ (
+__fd
+, 
+__pid_t
+ 
+__pg½_id
+è
+__THROW
+;
+
+852 
*
+	`g‘logš
+ ();
+
+853 #ià
+defšed
+ 
+__USE_REENTRANT
+ || defšed 
+__USE_POSIX199506
+
+
+860 

+	$g‘logš_r
+ (*
+__Çme
+, 
+size_t
+ 
+__Çme_Ën
+è
+	`__nÚnuÎ
+ ((1));
+
+863 #ifdef 
+__USE_MISC
+
+
+865 

+	$£Žogš
+ (cÚ¡ *
+__Çme
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+869 #ifdef 
+__USE_POSIX2
+
+
+873 
+	#__Ãed_g‘Ýt
+
+
+	)
+
+874 
+	~<g‘Ýt.h
+>
+
+878 #ià
+defšed
+ 
+__USE_UNIX98
+ || defšed 
+__USE_XOPEN2K
+
+
+882 

+	$g‘ho¡Çme
+ (*
+__Çme
+, 
+size_t
+ 
+__Ën
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+886 #ià
+defšed
+ 
+__USE_MISC
+
+
+889 

+	$£tho¡Çme
+ (cÚ¡ *
+__Çme
+, 
+size_t
+ 
+__Ën
+)
+
+890 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+894 

+	$£tho¡id
+ (
+__id
+è
+__THROW
+ 
+__wur
+;
+
+900 

+	$g‘domašÇme
+ (*
+__Çme
+, 
+size_t
+ 
+__Ën
+)
+
+901 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+902 

+	$£tdomašÇme
+ (cÚ¡ *
+__Çme
+, 
+size_t
+ 
+__Ën
+)
+
+903 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+909 

+	$vhªgup
+ (è
+__THROW
+;
+
+912 

+	$»voke
+ (cÚ¡ *
+__fže
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+920 

+	$´ofž
+ (*
+__§m¶e_bufãr
+, 
+size_t
+ 
+__size
+,
+
+921 
+size_t
+ 
+__off£t
+, 
+__sÿË
+)
+
+922 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+928 

+	$acù
+ (cÚ¡ *
+__Çme
+è
+__THROW
+;
+
+932 
*
+	$g‘u£rsh–l
+ (è
+__THROW
+;
+
+933 

+	$’du£rsh–l
+ (è
+__THROW
+;
+
+934 

+	$£tu£rsh–l
+ (è
+__THROW
+;
+
+940 

+	$d«mÚ
+ (
+__nochdœ
+, 
+__noþo£
+è
+__THROW
+ 
+__wur
+;
+
+944 #ià
+defšed
+ 
+__USE_MISC
+ || (defšed 
+__USE_XOPEN
+ && !defšed 
+__USE_XOPEN2K
+)
+
+947 

+	$chroÙ
+ (cÚ¡ *
+__·th
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+951 
*
+	$g‘·ss
+ (cÚ¡ *
+__´om±
+è
+	`__nÚnuÎ
+ ((1));
+
+959 

+	`fsync
+ (
+__fd
+);
+
+962 #ifdeà
+__USE_GNU
+
+
+965 

+	$syncfs
+ (
+__fd
+è
+__THROW
+;
+
+969 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN_EXTENDED
+
+
+972 

+	`g‘ho¡id
+ ();
+
+975 

+	$sync
+ (è
+__THROW
+;
+
+978 #ià
+defšed
+ 
+__USE_MISC
+ || !defšed 
+__USE_XOPEN2K
+
+
+981 

+	$g‘·gesize
+ (è
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+986 

+	$g‘dbËsize
+ (è
+__THROW
+;
+
+992 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K8
+
+
+995 #iâdeà
+__USE_FILE_OFFSET64
+
+
+996 

+	$Œunÿ‹
+ (cÚ¡ *
+__fže
+, 
+__off_t
+ 
+__Ëngth
+)
+
+997 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+999 #ifdeà
+__REDIRECT_NTH
+
+
+1000 

+	`__REDIRECT_NTH
+ (
+Œunÿ‹
+,
+
+1001 (cÚ¡ *
+__fže
+, 
+__off64_t
+ 
+__Ëngth
+),
+
+1002 
+Œunÿ‹64
+è
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+1004 
+	#Œunÿ‹
+ 
+Œunÿ‹64
+
+
+	)
+
+1007 #ifdeà
+__USE_LARGEFILE64
+
+
+1008 

+	$Œunÿ‹64
+ (cÚ¡ *
+__fže
+, 
+__off64_t
+ 
+__Ëngth
+)
+
+1009 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+1014 #ià
+defšed
+ 
+__USE_POSIX199309
+ \
+
+1015 || 
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K
+
+
+1018 #iâdeà
+__USE_FILE_OFFSET64
+
+
+1019 

+	$árunÿ‹
+ (
+__fd
+, 
+__off_t
+ 
+__Ëngth
+è
+__THROW
+ 
+__wur
+;
+
+1021 #ifdeà
+__REDIRECT_NTH
+
+
+1022 

+	`__REDIRECT_NTH
+ (
+árunÿ‹
+, (
+__fd
+, 
+__off64_t
+ 
+__Ëngth
+),
+
+1023 
+árunÿ‹64
+è
+__wur
+;
+
+1025 
+	#árunÿ‹
+ 
+árunÿ‹64
+
+
+	)
+
+1028 #ifdeà
+__USE_LARGEFILE64
+
+
+1029 

+	$árunÿ‹64
+ (
+__fd
+, 
+__off64_t
+ 
+__Ëngth
+è
+__THROW
+ 
+__wur
+;
+
+1035 #ià(
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ && !defšed 
+__USE_XOPEN2K
+) \
+
+1036 || 
+defšed
+ 
+__USE_MISC
+
+
+1040 

+	$brk
+ (*
+__addr
+è
+__THROW
+ 
+__wur
+;
+
+1046 
*
+	$sbrk
+ (
+šŒ_t
+ 
+__d–
+è
+__THROW
+;
+
+1050 #ifdeà
+__USE_MISC
+
+
+1061 

+	$sysÿÎ
+ (
+__sy¢o
+, ...è
+__THROW
+;
+
+1066 #ià(
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN_EXTENDED
+è&& !defšed 
+F_LOCK
+
+
+1078 
+	#F_ULOCK
+ 0
+
+	)
+
+1079 
+	#F_LOCK
+ 1
+
+	)
+
+1080 
+	#F_TLOCK
+ 2
+
+	)
+
+1081 
+	#F_TEST
+ 3
+
+	)
+
+1083 #iâdeà
+__USE_FILE_OFFSET64
+
+
+1084 

+	$lockf
+ (
+__fd
+, 
+__cmd
+, 
+__off_t
+ 
+__Ën
+è
+__wur
+;
+
+1086 #ifdeà
+__REDIRECT
+
+
+1087 

+	`__REDIRECT
+ (
+lockf
+, (
+__fd
+, 
+__cmd
+, 
+__off64_t
+ 
+__Ën
+),
+
+1088 
+lockf64
+è
+__wur
+;
+
+1090 
+	#lockf
+ 
+lockf64
+
+
+	)
+
+1093 #ifdeà
+__USE_LARGEFILE64
+
+
+1094 

+	$lockf64
+ (
+__fd
+, 
+__cmd
+, 
+__off64_t
+ 
+__Ën
+è
+__wur
+;
+
+1099 #ifdeà
+__USE_GNU
+
+
+1104 
+	#TEMP_FAILURE_RETRY
+(
+ex´essiÚ
+) \
+
+1105 (
+__ex‹nsiÚ__
+ \
+
+1106 ({ 
+__»suÉ
+; \
+
+1107 dØ
+__»suÉ
+ = (è(
+ex´essiÚ
+); \
+
+1108 
+__»suÉ
+ =ð-1L && 
+Ӽo
+ =ð
+EINTR
+); \
+
+1109 
+__»suÉ
+; 
+	}
+}))
+
+	)
+
+1112 #ià
+defšed
+ 
+__USE_POSIX199309
+ || defšed 
+__USE_UNIX98
+
+
+1115 

+fd©async
+ (
+__fždes
+);
+
+1121 #ifdef 
+__USE_XOPEN
+
+
+1123 
*
+	$üy±
+ (cÚ¡ *
+__key
+, cÚ¡ *
+__§É
+)
+
+1124 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+1128 

+	$’üy±
+ (*
+__glibc_block
+, 
+__edæag
+)
+
+1129 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+1136 

+	$swab
+ (cÚ¡ *
+__»¡riù
+ 
+__äom
+, *__»¡riù 
+__to
+,
+
+1137 
+ssize_t
+ 
+__n
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+1143 #ià
+defšed
+ 
+__USE_XOPEN
+ && !defšed 
+__USE_XOPEN2K
+
+
+1145 
*
+	$ù”mid
+ (*
+__s
+è
+__THROW
+;
+
+1150 #ià
+__USE_FORTIFY_LEVEL
+ > 0 && 
+defšed
+ 
+__fÜtify_funùiÚ
+
+
+1151 
+	~<b™s/uni¡d.h
+>
+
+1154 
+__END_DECLS
+
+
+	@/usr/include/alloca.h
+
+18 #iâdef 
+_ALLOCA_H
+
+
+19 
+	#_ALLOCA_H
+ 1
+
+	)
+
+21 
+	~<ã©u»s.h
+>
+
+23 
+	#__Ãed_size_t
+
+
+	)
+
+24 
+	~<¡ddef.h
+>
+
+26 
+	g__BEGIN_DECLS
+
+
+29 #undeà
+®loÿ
+
+
+32 
*
+	$®loÿ
+ (
+size_t
+ 
+__size
+è
+__THROW
+;
+
+34 #ifdef 
+__GNUC__
+
+
+35 
+	#®loÿ
+(
+size
+è
+	`__bužtš_®loÿ
+ (size)
+
+	)
+
+38 
+__END_DECLS
+
+
+	@/usr/include/bits/byteswap.h
+
+19 #ià!
+defšed
+ 
+_BYTESWAP_H
+ && !defšed 
+_NETINET_IN_H
+ && !defšed 
+_ENDIAN_H
+
+
+23 #iâdeà
+_BITS_BYTESWAP_H
+
+
+24 
+	#_BITS_BYTESWAP_H
+ 1
+
+	)
+
+26 
+	~<ã©u»s.h
+>
+
+27 
+	~<b™s/ty³s.h
+>
+
+28 
+	~<b™s/wÜdsize.h
+>
+
+31 
+	#__bsw­_cÚ¡ªt_16
+(
+x
+) \
+
+32 ((è((((
+x
+è>> 8è& 0xffè| (((xè& 0xffè<< 8)))
+
+	)
+
+35 
+	~<b™s/by‹sw­-16.h
+>
+
+38 
+	#__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 
+__šlše
+ 
+
+45 
+	$__bsw­_32
+ (
+__bsx
+)
+
+47  
+	`__bužtš_bsw­32
+ (
+__bsx
+);
+
+48 
+	}
+}
+
+49 #–ià
+__GNUC__
+ >= 2
+
+50 #ià
+__WORDSIZE
+ =ð64 || (
+defšed
+ 
+__i486__
+ || defšed 
+__³Áium__
+ \
+
+51 || 
+defšed
+ 
+	g__³Áium´o__
+ || defšed 
+	g__³Áium4__
+ \
+
+52 || 
+defšed
+ 
+	g__k8__
+ || defšed 
+	g__©hlÚ__
+ \
+
+53 || 
+defšed
+ 
+	g__k6__
+ || defšed 
+	g__nocÚa__
+ \
+
+54 || 
+defšed
+ 
+	g__cÜe2__
+ || defšed 
+	g__geode__
+ \
+
+55 || 
+defšed
+ 
+	g__amdçm10__
+)
+
+58 
+	#__bsw­_32
+(
+x
+) \
+
+59 (
+__ex‹nsiÚ__
+ \
+
+60 ({ 
+__v
+, 
+__x
+ = (
+x
+); \
+
+61 ià(
+	`__bužtš_cÚ¡ªt_p
+ (
+__x
+)) \
+
+62 
+__v
+ = 
+	`__bsw­_cÚ¡ªt_32
+ (
+__x
+); \
+
+64 
+	`__asm__
+ ("bsw­ %0" : "ô" (
+__v
+è: "0" (
+__x
+)); \
+
+65 
+__v
+; }))
+
+	)
+
+67 
+	#__bsw­_32
+(
+x
+) \
+
+68 (
+__ex‹nsiÚ__
+ \
+
+69 ({ 
+__v
+, 
+__x
+ = (
+x
+); \
+
+70 ià(
+	`__bužtš_cÚ¡ªt_p
+ (
+__x
+)) \
+
+71 
+__v
+ = 
+	`__bsw­_cÚ¡ªt_32
+ (
+__x
+); \
+
+73 
+	`__asm__
+ ("rorw $8, %w0;" \
+
+76 : "ô" (
+__v
+) \
+
+77 : "0" (
+__x
+) \
+
+79 
+__v
+; }))
+
+	)
+
+82 
+	#__bsw­_32
+(
+x
+) \
+
+83 (
+__ex‹nsiÚ__
+ \
+
+84 ({ 
+__x
+ = (
+x
+); 
+	`__bsw­_cÚ¡ªt_32
+ (__x); }))
+
+	)
+
+87 
+__šlše
+ 
+
+88 
+	$__bsw­_32
+ (
+__bsx
+)
+
+90  
+	`__bsw­_cÚ¡ªt_32
+ (
+__bsx
+);
+
+91 
+	}
+}
+
+95 #ià
+__GNUC_PREREQ
+ (2, 0)
+
+97 
+	#__bsw­_cÚ¡ªt_64
+(
+x
+) \
+
+98 (
+	`__ex‹nsiÚ__
+ ((((
+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 
+__šlše
+ 
+__ušt64_t
+
+
+109 
+	$__bsw­_64
+ (
+__ušt64_t
+ 
+__bsx
+)
+
+111  
+	`__bužtš_bsw­64
+ (
+__bsx
+);
+
+112 
+	}
+}
+
+113 #–ià
+__WORDSIZE
+ == 64
+
+114 
+	#__bsw­_64
+(
+x
+) \
+
+115 (
+__ex‹nsiÚ__
+ \
+
+116 ({ 
+__ušt64_t
+ 
+__v
+, 
+__x
+ = (
+x
+); \
+
+117 ià(
+	`__bužtš_cÚ¡ªt_p
+ (
+__x
+)) \
+
+118 
+__v
+ = 
+	`__bsw­_cÚ¡ªt_64
+ (
+__x
+); \
+
+120 
+	`__asm__
+ ("bsw­ %q0" : "ô" (
+__v
+è: "0" (
+__x
+)); \
+
+121 
+__v
+; }))
+
+	)
+
+123 
+	#__bsw­_64
+(
+x
+) \
+
+124 (
+__ex‹nsiÚ__
+ \
+
+125 ({ uniÚ { 
+__ex‹nsiÚ__
+ 
+__ušt64_t
+ 
+__Î
+; \
+
+126 
+__l
+[2]; } 
+__w
+, 
+__r
+; \
+
+127 ià(
+	`__bužtš_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 
+	#__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 
+__šlše
+ 
+__ušt64_t
+
+
+149 
+	$__bsw­_64
+ (
+__ušt64_t
+ 
+__bsx
+)
+
+151  
+	`__bsw­_cÚ¡ªt_64
+ (
+__bsx
+);
+
+152 
+	}
+}
+
+	@/usr/include/bits/confname.h
+
+19 #iâdeà
+_UNISTD_H
+
+
+26 
+	m_PC_LINK_MAX
+,
+
+27 
+	#_PC_LINK_MAX
+ 
+_PC_LINK_MAX
+
+
+	)
+
+28 
+	m_PC_MAX_CANON
+,
+
+29 
+	#_PC_MAX_CANON
+ 
+_PC_MAX_CANON
+
+
+	)
+
+30 
+	m_PC_MAX_INPUT
+,
+
+31 
+	#_PC_MAX_INPUT
+ 
+_PC_MAX_INPUT
+
+
+	)
+
+32 
+	m_PC_NAME_MAX
+,
+
+33 
+	#_PC_NAME_MAX
+ 
+_PC_NAME_MAX
+
+
+	)
+
+34 
+	m_PC_PATH_MAX
+,
+
+35 
+	#_PC_PATH_MAX
+ 
+_PC_PATH_MAX
+
+
+	)
+
+36 
+	m_PC_PIPE_BUF
+,
+
+37 
+	#_PC_PIPE_BUF
+ 
+_PC_PIPE_BUF
+
+
+	)
+
+38 
+	m_PC_CHOWN_RESTRICTED
+,
+
+39 
+	#_PC_CHOWN_RESTRICTED
+ 
+_PC_CHOWN_RESTRICTED
+
+
+	)
+
+40 
+	m_PC_NO_TRUNC
+,
+
+41 
+	#_PC_NO_TRUNC
+ 
+_PC_NO_TRUNC
+
+
+	)
+
+42 
+	m_PC_VDISABLE
+,
+
+43 
+	#_PC_VDISABLE
+ 
+_PC_VDISABLE
+
+
+	)
+
+44 
+	m_PC_SYNC_IO
+,
+
+45 
+	#_PC_SYNC_IO
+ 
+_PC_SYNC_IO
+
+
+	)
+
+46 
+	m_PC_ASYNC_IO
+,
+
+47 
+	#_PC_ASYNC_IO
+ 
+_PC_ASYNC_IO
+
+
+	)
+
+48 
+	m_PC_PRIO_IO
+,
+
+49 
+	#_PC_PRIO_IO
+ 
+_PC_PRIO_IO
+
+
+	)
+
+50 
+	m_PC_SOCK_MAXBUF
+,
+
+51 
+	#_PC_SOCK_MAXBUF
+ 
+_PC_SOCK_MAXBUF
+
+
+	)
+
+52 
+	m_PC_FILESIZEBITS
+,
+
+53 
+	#_PC_FILESIZEBITS
+ 
+_PC_FILESIZEBITS
+
+
+	)
+
+54 
+	m_PC_REC_INCR_XFER_SIZE
+,
+
+55 
+	#_PC_REC_INCR_XFER_SIZE
+ 
+_PC_REC_INCR_XFER_SIZE
+
+
+	)
+
+56 
+	m_PC_REC_MAX_XFER_SIZE
+,
+
+57 
+	#_PC_REC_MAX_XFER_SIZE
+ 
+_PC_REC_MAX_XFER_SIZE
+
+
+	)
+
+58 
+	m_PC_REC_MIN_XFER_SIZE
+,
+
+59 
+	#_PC_REC_MIN_XFER_SIZE
+ 
+_PC_REC_MIN_XFER_SIZE
+
+
+	)
+
+60 
+	m_PC_REC_XFER_ALIGN
+,
+
+61 
+	#_PC_REC_XFER_ALIGN
+ 
+_PC_REC_XFER_ALIGN
+
+
+	)
+
+62 
+	m_PC_ALLOC_SIZE_MIN
+,
+
+63 
+	#_PC_ALLOC_SIZE_MIN
+ 
+_PC_ALLOC_SIZE_MIN
+
+
+	)
+
+64 
+	m_PC_SYMLINK_MAX
+,
+
+65 
+	#_PC_SYMLINK_MAX
+ 
+_PC_SYMLINK_MAX
+
+
+	)
+
+66 
+	m_PC_2_SYMLINKS
+
+
+67 
+	#_PC_2_SYMLINKS
+ 
+_PC_2_SYMLINKS
+
+
+	)
+
+73 
+	m_SC_ARG_MAX
+,
+
+74 
+	#_SC_ARG_MAX
+ 
+_SC_ARG_MAX
+
+
+	)
+
+75 
+	m_SC_CHILD_MAX
+,
+
+76 
+	#_SC_CHILD_MAX
+ 
+_SC_CHILD_MAX
+
+
+	)
+
+77 
+	m_SC_CLK_TCK
+,
+
+78 
+	#_SC_CLK_TCK
+ 
+_SC_CLK_TCK
+
+
+	)
+
+79 
+	m_SC_NGROUPS_MAX
+,
+
+80 
+	#_SC_NGROUPS_MAX
+ 
+_SC_NGROUPS_MAX
+
+
+	)
+
+81 
+	m_SC_OPEN_MAX
+,
+
+82 
+	#_SC_OPEN_MAX
+ 
+_SC_OPEN_MAX
+
+
+	)
+
+83 
+	m_SC_STREAM_MAX
+,
+
+84 
+	#_SC_STREAM_MAX
+ 
+_SC_STREAM_MAX
+
+
+	)
+
+85 
+	m_SC_TZNAME_MAX
+,
+
+86 
+	#_SC_TZNAME_MAX
+ 
+_SC_TZNAME_MAX
+
+
+	)
+
+87 
+	m_SC_JOB_CONTROL
+,
+
+88 
+	#_SC_JOB_CONTROL
+ 
+_SC_JOB_CONTROL
+
+
+	)
+
+89 
+	m_SC_SAVED_IDS
+,
+
+90 
+	#_SC_SAVED_IDS
+ 
+_SC_SAVED_IDS
+
+
+	)
+
+91 
+	m_SC_REALTIME_SIGNALS
+,
+
+92 
+	#_SC_REALTIME_SIGNALS
+ 
+_SC_REALTIME_SIGNALS
+
+
+	)
+
+93 
+	m_SC_PRIORITY_SCHEDULING
+,
+
+94 
+	#_SC_PRIORITY_SCHEDULING
+ 
+_SC_PRIORITY_SCHEDULING
+
+
+	)
+
+95 
+	m_SC_TIMERS
+,
+
+96 
+	#_SC_TIMERS
+ 
+_SC_TIMERS
+
+
+	)
+
+97 
+	m_SC_ASYNCHRONOUS_IO
+,
+
+98 
+	#_SC_ASYNCHRONOUS_IO
+ 
+_SC_ASYNCHRONOUS_IO
+
+
+	)
+
+99 
+	m_SC_PRIORITIZED_IO
+,
+
+100 
+	#_SC_PRIORITIZED_IO
+ 
+_SC_PRIORITIZED_IO
+
+
+	)
+
+101 
+	m_SC_SYNCHRONIZED_IO
+,
+
+102 
+	#_SC_SYNCHRONIZED_IO
+ 
+_SC_SYNCHRONIZED_IO
+
+
+	)
+
+103 
+	m_SC_FSYNC
+,
+
+104 
+	#_SC_FSYNC
+ 
+_SC_FSYNC
+
+
+	)
+
+105 
+	m_SC_MAPPED_FILES
+,
+
+106 
+	#_SC_MAPPED_FILES
+ 
+_SC_MAPPED_FILES
+
+
+	)
+
+107 
+	m_SC_MEMLOCK
+,
+
+108 
+	#_SC_MEMLOCK
+ 
+_SC_MEMLOCK
+
+
+	)
+
+109 
+	m_SC_MEMLOCK_RANGE
+,
+
+110 
+	#_SC_MEMLOCK_RANGE
+ 
+_SC_MEMLOCK_RANGE
+
+
+	)
+
+111 
+	m_SC_MEMORY_PROTECTION
+,
+
+112 
+	#_SC_MEMORY_PROTECTION
+ 
+_SC_MEMORY_PROTECTION
+
+
+	)
+
+113 
+	m_SC_MESSAGE_PASSING
+,
+
+114 
+	#_SC_MESSAGE_PASSING
+ 
+_SC_MESSAGE_PASSING
+
+
+	)
+
+115 
+	m_SC_SEMAPHORES
+,
+
+116 
+	#_SC_SEMAPHORES
+ 
+_SC_SEMAPHORES
+
+
+	)
+
+117 
+	m_SC_SHARED_MEMORY_OBJECTS
+,
+
+118 
+	#_SC_SHARED_MEMORY_OBJECTS
+ 
+_SC_SHARED_MEMORY_OBJECTS
+
+
+	)
+
+119 
+	m_SC_AIO_LISTIO_MAX
+,
+
+120 
+	#_SC_AIO_LISTIO_MAX
+ 
+_SC_AIO_LISTIO_MAX
+
+
+	)
+
+121 
+	m_SC_AIO_MAX
+,
+
+122 
+	#_SC_AIO_MAX
+ 
+_SC_AIO_MAX
+
+
+	)
+
+123 
+	m_SC_AIO_PRIO_DELTA_MAX
+,
+
+124 
+	#_SC_AIO_PRIO_DELTA_MAX
+ 
+_SC_AIO_PRIO_DELTA_MAX
+
+
+	)
+
+125 
+	m_SC_DELAYTIMER_MAX
+,
+
+126 
+	#_SC_DELAYTIMER_MAX
+ 
+_SC_DELAYTIMER_MAX
+
+
+	)
+
+127 
+	m_SC_MQ_OPEN_MAX
+,
+
+128 
+	#_SC_MQ_OPEN_MAX
+ 
+_SC_MQ_OPEN_MAX
+
+
+	)
+
+129 
+	m_SC_MQ_PRIO_MAX
+,
+
+130 
+	#_SC_MQ_PRIO_MAX
+ 
+_SC_MQ_PRIO_MAX
+
+
+	)
+
+131 
+	m_SC_VERSION
+,
+
+132 
+	#_SC_VERSION
+ 
+_SC_VERSION
+
+
+	)
+
+133 
+	m_SC_PAGESIZE
+,
+
+134 
+	#_SC_PAGESIZE
+ 
+_SC_PAGESIZE
+
+
+	)
+
+135 
+	#_SC_PAGE_SIZE
+ 
+_SC_PAGESIZE
+
+
+	)
+
+136 
+	m_SC_RTSIG_MAX
+,
+
+137 
+	#_SC_RTSIG_MAX
+ 
+_SC_RTSIG_MAX
+
+
+	)
+
+138 
+	m_SC_SEM_NSEMS_MAX
+,
+
+139 
+	#_SC_SEM_NSEMS_MAX
+ 
+_SC_SEM_NSEMS_MAX
+
+
+	)
+
+140 
+	m_SC_SEM_VALUE_MAX
+,
+
+141 
+	#_SC_SEM_VALUE_MAX
+ 
+_SC_SEM_VALUE_MAX
+
+
+	)
+
+142 
+	m_SC_SIGQUEUE_MAX
+,
+
+143 
+	#_SC_SIGQUEUE_MAX
+ 
+_SC_SIGQUEUE_MAX
+
+
+	)
+
+144 
+	m_SC_TIMER_MAX
+,
+
+145 
+	#_SC_TIMER_MAX
+ 
+_SC_TIMER_MAX
+
+
+	)
+
+149 
+	m_SC_BC_BASE_MAX
+,
+
+150 
+	#_SC_BC_BASE_MAX
+ 
+_SC_BC_BASE_MAX
+
+
+	)
+
+151 
+	m_SC_BC_DIM_MAX
+,
+
+152 
+	#_SC_BC_DIM_MAX
+ 
+_SC_BC_DIM_MAX
+
+
+	)
+
+153 
+	m_SC_BC_SCALE_MAX
+,
+
+154 
+	#_SC_BC_SCALE_MAX
+ 
+_SC_BC_SCALE_MAX
+
+
+	)
+
+155 
+	m_SC_BC_STRING_MAX
+,
+
+156 
+	#_SC_BC_STRING_MAX
+ 
+_SC_BC_STRING_MAX
+
+
+	)
+
+157 
+	m_SC_COLL_WEIGHTS_MAX
+,
+
+158 
+	#_SC_COLL_WEIGHTS_MAX
+ 
+_SC_COLL_WEIGHTS_MAX
+
+
+	)
+
+159 
+	m_SC_EQUIV_CLASS_MAX
+,
+
+160 
+	#_SC_EQUIV_CLASS_MAX
+ 
+_SC_EQUIV_CLASS_MAX
+
+
+	)
+
+161 
+	m_SC_EXPR_NEST_MAX
+,
+
+162 
+	#_SC_EXPR_NEST_MAX
+ 
+_SC_EXPR_NEST_MAX
+
+
+	)
+
+163 
+	m_SC_LINE_MAX
+,
+
+164 
+	#_SC_LINE_MAX
+ 
+_SC_LINE_MAX
+
+
+	)
+
+165 
+	m_SC_RE_DUP_MAX
+,
+
+166 
+	#_SC_RE_DUP_MAX
+ 
+_SC_RE_DUP_MAX
+
+
+	)
+
+167 
+	m_SC_CHARCLASS_NAME_MAX
+,
+
+168 
+	#_SC_CHARCLASS_NAME_MAX
+ 
+_SC_CHARCLASS_NAME_MAX
+
+
+	)
+
+170 
+	m_SC_2_VERSION
+,
+
+171 
+	#_SC_2_VERSION
+ 
+_SC_2_VERSION
+
+
+	)
+
+172 
+	m_SC_2_C_BIND
+,
+
+173 
+	#_SC_2_C_BIND
+ 
+_SC_2_C_BIND
+
+
+	)
+
+174 
+	m_SC_2_C_DEV
+,
+
+175 
+	#_SC_2_C_DEV
+ 
+_SC_2_C_DEV
+
+
+	)
+
+176 
+	m_SC_2_FORT_DEV
+,
+
+177 
+	#_SC_2_FORT_DEV
+ 
+_SC_2_FORT_DEV
+
+
+	)
+
+178 
+	m_SC_2_FORT_RUN
+,
+
+179 
+	#_SC_2_FORT_RUN
+ 
+_SC_2_FORT_RUN
+
+
+	)
+
+180 
+	m_SC_2_SW_DEV
+,
+
+181 
+	#_SC_2_SW_DEV
+ 
+_SC_2_SW_DEV
+
+
+	)
+
+182 
+	m_SC_2_LOCALEDEF
+,
+
+183 
+	#_SC_2_LOCALEDEF
+ 
+_SC_2_LOCALEDEF
+
+
+	)
+
+185 
+	m_SC_PII
+,
+
+186 
+	#_SC_PII
+ 
+_SC_PII
+
+
+	)
+
+187 
+	m_SC_PII_XTI
+,
+
+188 
+	#_SC_PII_XTI
+ 
+_SC_PII_XTI
+
+
+	)
+
+189 
+	m_SC_PII_SOCKET
+,
+
+190 
+	#_SC_PII_SOCKET
+ 
+_SC_PII_SOCKET
+
+
+	)
+
+191 
+	m_SC_PII_INTERNET
+,
+
+192 
+	#_SC_PII_INTERNET
+ 
+_SC_PII_INTERNET
+
+
+	)
+
+193 
+	m_SC_PII_OSI
+,
+
+194 
+	#_SC_PII_OSI
+ 
+_SC_PII_OSI
+
+
+	)
+
+195 
+	m_SC_POLL
+,
+
+196 
+	#_SC_POLL
+ 
+_SC_POLL
+
+
+	)
+
+197 
+	m_SC_SELECT
+,
+
+198 
+	#_SC_SELECT
+ 
+_SC_SELECT
+
+
+	)
+
+199 
+	m_SC_UIO_MAXIOV
+,
+
+200 
+	#_SC_UIO_MAXIOV
+ 
+_SC_UIO_MAXIOV
+
+
+	)
+
+201 
+	m_SC_IOV_MAX
+ = 
+_SC_UIO_MAXIOV
+,
+
+202 
+	#_SC_IOV_MAX
+ 
+_SC_IOV_MAX
+
+
+	)
+
+203 
+	m_SC_PII_INTERNET_STREAM
+,
+
+204 
+	#_SC_PII_INTERNET_STREAM
+ 
+_SC_PII_INTERNET_STREAM
+
+
+	)
+
+205 
+	m_SC_PII_INTERNET_DGRAM
+,
+
+206 
+	#_SC_PII_INTERNET_DGRAM
+ 
+_SC_PII_INTERNET_DGRAM
+
+
+	)
+
+207 
+	m_SC_PII_OSI_COTS
+,
+
+208 
+	#_SC_PII_OSI_COTS
+ 
+_SC_PII_OSI_COTS
+
+
+	)
+
+209 
+	m_SC_PII_OSI_CLTS
+,
+
+210 
+	#_SC_PII_OSI_CLTS
+ 
+_SC_PII_OSI_CLTS
+
+
+	)
+
+211 
+	m_SC_PII_OSI_M
+,
+
+212 
+	#_SC_PII_OSI_M
+ 
+_SC_PII_OSI_M
+
+
+	)
+
+213 
+	m_SC_T_IOV_MAX
+,
+
+214 
+	#_SC_T_IOV_MAX
+ 
+_SC_T_IOV_MAX
+
+
+	)
+
+217 
+	m_SC_THREADS
+,
+
+218 
+	#_SC_THREADS
+ 
+_SC_THREADS
+
+
+	)
+
+219 
+	m_SC_THREAD_SAFE_FUNCTIONS
+,
+
+220 
+	#_SC_THREAD_SAFE_FUNCTIONS
+ 
+_SC_THREAD_SAFE_FUNCTIONS
+
+
+	)
+
+221 
+	m_SC_GETGR_R_SIZE_MAX
+,
+
+222 
+	#_SC_GETGR_R_SIZE_MAX
+ 
+_SC_GETGR_R_SIZE_MAX
+
+
+	)
+
+223 
+	m_SC_GETPW_R_SIZE_MAX
+,
+
+224 
+	#_SC_GETPW_R_SIZE_MAX
+ 
+_SC_GETPW_R_SIZE_MAX
+
+
+	)
+
+225 
+	m_SC_LOGIN_NAME_MAX
+,
+
+226 
+	#_SC_LOGIN_NAME_MAX
+ 
+_SC_LOGIN_NAME_MAX
+
+
+	)
+
+227 
+	m_SC_TTY_NAME_MAX
+,
+
+228 
+	#_SC_TTY_NAME_MAX
+ 
+_SC_TTY_NAME_MAX
+
+
+	)
+
+229 
+	m_SC_THREAD_DESTRUCTOR_ITERATIONS
+,
+
+230 
+	#_SC_THREAD_DESTRUCTOR_ITERATIONS
+ 
+_SC_THREAD_DESTRUCTOR_ITERATIONS
+
+
+	)
+
+231 
+	m_SC_THREAD_KEYS_MAX
+,
+
+232 
+	#_SC_THREAD_KEYS_MAX
+ 
+_SC_THREAD_KEYS_MAX
+
+
+	)
+
+233 
+	m_SC_THREAD_STACK_MIN
+,
+
+234 
+	#_SC_THREAD_STACK_MIN
+ 
+_SC_THREAD_STACK_MIN
+
+
+	)
+
+235 
+	m_SC_THREAD_THREADS_MAX
+,
+
+236 
+	#_SC_THREAD_THREADS_MAX
+ 
+_SC_THREAD_THREADS_MAX
+
+
+	)
+
+237 
+	m_SC_THREAD_ATTR_STACKADDR
+,
+
+238 
+	#_SC_THREAD_ATTR_STACKADDR
+ 
+_SC_THREAD_ATTR_STACKADDR
+
+
+	)
+
+239 
+	m_SC_THREAD_ATTR_STACKSIZE
+,
+
+240 
+	#_SC_THREAD_ATTR_STACKSIZE
+ 
+_SC_THREAD_ATTR_STACKSIZE
+
+
+	)
+
+241 
+	m_SC_THREAD_PRIORITY_SCHEDULING
+,
+
+242 
+	#_SC_THREAD_PRIORITY_SCHEDULING
+ 
+_SC_THREAD_PRIORITY_SCHEDULING
+
+
+	)
+
+243 
+	m_SC_THREAD_PRIO_INHERIT
+,
+
+244 
+	#_SC_THREAD_PRIO_INHERIT
+ 
+_SC_THREAD_PRIO_INHERIT
+
+
+	)
+
+245 
+	m_SC_THREAD_PRIO_PROTECT
+,
+
+246 
+	#_SC_THREAD_PRIO_PROTECT
+ 
+_SC_THREAD_PRIO_PROTECT
+
+
+	)
+
+247 
+	m_SC_THREAD_PROCESS_SHARED
+,
+
+248 
+	#_SC_THREAD_PROCESS_SHARED
+ 
+_SC_THREAD_PROCESS_SHARED
+
+
+	)
+
+250 
+	m_SC_NPROCESSORS_CONF
+,
+
+251 
+	#_SC_NPROCESSORS_CONF
+ 
+_SC_NPROCESSORS_CONF
+
+
+	)
+
+252 
+	m_SC_NPROCESSORS_ONLN
+,
+
+253 
+	#_SC_NPROCESSORS_ONLN
+ 
+_SC_NPROCESSORS_ONLN
+
+
+	)
+
+254 
+	m_SC_PHYS_PAGES
+,
+
+255 
+	#_SC_PHYS_PAGES
+ 
+_SC_PHYS_PAGES
+
+
+	)
+
+256 
+	m_SC_AVPHYS_PAGES
+,
+
+257 
+	#_SC_AVPHYS_PAGES
+ 
+_SC_AVPHYS_PAGES
+
+
+	)
+
+258 
+	m_SC_ATEXIT_MAX
+,
+
+259 
+	#_SC_ATEXIT_MAX
+ 
+_SC_ATEXIT_MAX
+
+
+	)
+
+260 
+	m_SC_PASS_MAX
+,
+
+261 
+	#_SC_PASS_MAX
+ 
+_SC_PASS_MAX
+
+
+	)
+
+263 
+	m_SC_XOPEN_VERSION
+,
+
+264 
+	#_SC_XOPEN_VERSION
+ 
+_SC_XOPEN_VERSION
+
+
+	)
+
+265 
+	m_SC_XOPEN_XCU_VERSION
+,
+
+266 
+	#_SC_XOPEN_XCU_VERSION
+ 
+_SC_XOPEN_XCU_VERSION
+
+
+	)
+
+267 
+	m_SC_XOPEN_UNIX
+,
+
+268 
+	#_SC_XOPEN_UNIX
+ 
+_SC_XOPEN_UNIX
+
+
+	)
+
+269 
+	m_SC_XOPEN_CRYPT
+,
+
+270 
+	#_SC_XOPEN_CRYPT
+ 
+_SC_XOPEN_CRYPT
+
+
+	)
+
+271 
+	m_SC_XOPEN_ENH_I18N
+,
+
+272 
+	#_SC_XOPEN_ENH_I18N
+ 
+_SC_XOPEN_ENH_I18N
+
+
+	)
+
+273 
+	m_SC_XOPEN_SHM
+,
+
+274 
+	#_SC_XOPEN_SHM
+ 
+_SC_XOPEN_SHM
+
+
+	)
+
+276 
+	m_SC_2_CHAR_TERM
+,
+
+277 
+	#_SC_2_CHAR_TERM
+ 
+_SC_2_CHAR_TERM
+
+
+	)
+
+278 
+	m_SC_2_C_VERSION
+,
+
+279 
+	#_SC_2_C_VERSION
+ 
+_SC_2_C_VERSION
+
+
+	)
+
+280 
+	m_SC_2_UPE
+,
+
+281 
+	#_SC_2_UPE
+ 
+_SC_2_UPE
+
+
+	)
+
+283 
+	m_SC_XOPEN_XPG2
+,
+
+284 
+	#_SC_XOPEN_XPG2
+ 
+_SC_XOPEN_XPG2
+
+
+	)
+
+285 
+	m_SC_XOPEN_XPG3
+,
+
+286 
+	#_SC_XOPEN_XPG3
+ 
+_SC_XOPEN_XPG3
+
+
+	)
+
+287 
+	m_SC_XOPEN_XPG4
+,
+
+288 
+	#_SC_XOPEN_XPG4
+ 
+_SC_XOPEN_XPG4
+
+
+	)
+
+290 
+	m_SC_CHAR_BIT
+,
+
+291 
+	#_SC_CHAR_BIT
+ 
+_SC_CHAR_BIT
+
+
+	)
+
+292 
+	m_SC_CHAR_MAX
+,
+
+293 
+	#_SC_CHAR_MAX
+ 
+_SC_CHAR_MAX
+
+
+	)
+
+294 
+	m_SC_CHAR_MIN
+,
+
+295 
+	#_SC_CHAR_MIN
+ 
+_SC_CHAR_MIN
+
+
+	)
+
+296 
+	m_SC_INT_MAX
+,
+
+297 
+	#_SC_INT_MAX
+ 
+_SC_INT_MAX
+
+
+	)
+
+298 
+	m_SC_INT_MIN
+,
+
+299 
+	#_SC_INT_MIN
+ 
+_SC_INT_MIN
+
+
+	)
+
+300 
+	m_SC_LONG_BIT
+,
+
+301 
+	#_SC_LONG_BIT
+ 
+_SC_LONG_BIT
+
+
+	)
+
+302 
+	m_SC_WORD_BIT
+,
+
+303 
+	#_SC_WORD_BIT
+ 
+_SC_WORD_BIT
+
+
+	)
+
+304 
+	m_SC_MB_LEN_MAX
+,
+
+305 
+	#_SC_MB_LEN_MAX
+ 
+_SC_MB_LEN_MAX
+
+
+	)
+
+306 
+	m_SC_NZERO
+,
+
+307 
+	#_SC_NZERO
+ 
+_SC_NZERO
+
+
+	)
+
+308 
+	m_SC_SSIZE_MAX
+,
+
+309 
+	#_SC_SSIZE_MAX
+ 
+_SC_SSIZE_MAX
+
+
+	)
+
+310 
+	m_SC_SCHAR_MAX
+,
+
+311 
+	#_SC_SCHAR_MAX
+ 
+_SC_SCHAR_MAX
+
+
+	)
+
+312 
+	m_SC_SCHAR_MIN
+,
+
+313 
+	#_SC_SCHAR_MIN
+ 
+_SC_SCHAR_MIN
+
+
+	)
+
+314 
+	m_SC_SHRT_MAX
+,
+
+315 
+	#_SC_SHRT_MAX
+ 
+_SC_SHRT_MAX
+
+
+	)
+
+316 
+	m_SC_SHRT_MIN
+,
+
+317 
+	#_SC_SHRT_MIN
+ 
+_SC_SHRT_MIN
+
+
+	)
+
+318 
+	m_SC_UCHAR_MAX
+,
+
+319 
+	#_SC_UCHAR_MAX
+ 
+_SC_UCHAR_MAX
+
+
+	)
+
+320 
+	m_SC_UINT_MAX
+,
+
+321 
+	#_SC_UINT_MAX
+ 
+_SC_UINT_MAX
+
+
+	)
+
+322 
+	m_SC_ULONG_MAX
+,
+
+323 
+	#_SC_ULONG_MAX
+ 
+_SC_ULONG_MAX
+
+
+	)
+
+324 
+	m_SC_USHRT_MAX
+,
+
+325 
+	#_SC_USHRT_MAX
+ 
+_SC_USHRT_MAX
+
+
+	)
+
+327 
+	m_SC_NL_ARGMAX
+,
+
+328 
+	#_SC_NL_ARGMAX
+ 
+_SC_NL_ARGMAX
+
+
+	)
+
+329 
+	m_SC_NL_LANGMAX
+,
+
+330 
+	#_SC_NL_LANGMAX
+ 
+_SC_NL_LANGMAX
+
+
+	)
+
+331 
+	m_SC_NL_MSGMAX
+,
+
+332 
+	#_SC_NL_MSGMAX
+ 
+_SC_NL_MSGMAX
+
+
+	)
+
+333 
+	m_SC_NL_NMAX
+,
+
+334 
+	#_SC_NL_NMAX
+ 
+_SC_NL_NMAX
+
+
+	)
+
+335 
+	m_SC_NL_SETMAX
+,
+
+336 
+	#_SC_NL_SETMAX
+ 
+_SC_NL_SETMAX
+
+
+	)
+
+337 
+	m_SC_NL_TEXTMAX
+,
+
+338 
+	#_SC_NL_TEXTMAX
+ 
+_SC_NL_TEXTMAX
+
+
+	)
+
+340 
+	m_SC_XBS5_ILP32_OFF32
+,
+
+341 
+	#_SC_XBS5_ILP32_OFF32
+ 
+_SC_XBS5_ILP32_OFF32
+
+
+	)
+
+342 
+	m_SC_XBS5_ILP32_OFFBIG
+,
+
+343 
+	#_SC_XBS5_ILP32_OFFBIG
+ 
+_SC_XBS5_ILP32_OFFBIG
+
+
+	)
+
+344 
+	m_SC_XBS5_LP64_OFF64
+,
+
+345 
+	#_SC_XBS5_LP64_OFF64
+ 
+_SC_XBS5_LP64_OFF64
+
+
+	)
+
+346 
+	m_SC_XBS5_LPBIG_OFFBIG
+,
+
+347 
+	#_SC_XBS5_LPBIG_OFFBIG
+ 
+_SC_XBS5_LPBIG_OFFBIG
+
+
+	)
+
+349 
+	m_SC_XOPEN_LEGACY
+,
+
+350 
+	#_SC_XOPEN_LEGACY
+ 
+_SC_XOPEN_LEGACY
+
+
+	)
+
+351 
+	m_SC_XOPEN_REALTIME
+,
+
+352 
+	#_SC_XOPEN_REALTIME
+ 
+_SC_XOPEN_REALTIME
+
+
+	)
+
+353 
+	m_SC_XOPEN_REALTIME_THREADS
+,
+
+354 
+	#_SC_XOPEN_REALTIME_THREADS
+ 
+_SC_XOPEN_REALTIME_THREADS
+
+
+	)
+
+356 
+	m_SC_ADVISORY_INFO
+,
+
+357 
+	#_SC_ADVISORY_INFO
+ 
+_SC_ADVISORY_INFO
+
+
+	)
+
+358 
+	m_SC_BARRIERS
+,
+
+359 
+	#_SC_BARRIERS
+ 
+_SC_BARRIERS
+
+
+	)
+
+360 
+	m_SC_BASE
+,
+
+361 
+	#_SC_BASE
+ 
+_SC_BASE
+
+
+	)
+
+362 
+	m_SC_C_LANG_SUPPORT
+,
+
+363 
+	#_SC_C_LANG_SUPPORT
+ 
+_SC_C_LANG_SUPPORT
+
+
+	)
+
+364 
+	m_SC_C_LANG_SUPPORT_R
+,
+
+365 
+	#_SC_C_LANG_SUPPORT_R
+ 
+_SC_C_LANG_SUPPORT_R
+
+
+	)
+
+366 
+	m_SC_CLOCK_SELECTION
+,
+
+367 
+	#_SC_CLOCK_SELECTION
+ 
+_SC_CLOCK_SELECTION
+
+
+	)
+
+368 
+	m_SC_CPUTIME
+,
+
+369 
+	#_SC_CPUTIME
+ 
+_SC_CPUTIME
+
+
+	)
+
+370 
+	m_SC_THREAD_CPUTIME
+,
+
+371 
+	#_SC_THREAD_CPUTIME
+ 
+_SC_THREAD_CPUTIME
+
+
+	)
+
+372 
+	m_SC_DEVICE_IO
+,
+
+373 
+	#_SC_DEVICE_IO
+ 
+_SC_DEVICE_IO
+
+
+	)
+
+374 
+	m_SC_DEVICE_SPECIFIC
+,
+
+375 
+	#_SC_DEVICE_SPECIFIC
+ 
+_SC_DEVICE_SPECIFIC
+
+
+	)
+
+376 
+	m_SC_DEVICE_SPECIFIC_R
+,
+
+377 
+	#_SC_DEVICE_SPECIFIC_R
+ 
+_SC_DEVICE_SPECIFIC_R
+
+
+	)
+
+378 
+	m_SC_FD_MGMT
+,
+
+379 
+	#_SC_FD_MGMT
+ 
+_SC_FD_MGMT
+
+
+	)
+
+380 
+	m_SC_FIFO
+,
+
+381 
+	#_SC_FIFO
+ 
+_SC_FIFO
+
+
+	)
+
+382 
+	m_SC_PIPE
+,
+
+383 
+	#_SC_PIPE
+ 
+_SC_PIPE
+
+
+	)
+
+384 
+	m_SC_FILE_ATTRIBUTES
+,
+
+385 
+	#_SC_FILE_ATTRIBUTES
+ 
+_SC_FILE_ATTRIBUTES
+
+
+	)
+
+386 
+	m_SC_FILE_LOCKING
+,
+
+387 
+	#_SC_FILE_LOCKING
+ 
+_SC_FILE_LOCKING
+
+
+	)
+
+388 
+	m_SC_FILE_SYSTEM
+,
+
+389 
+	#_SC_FILE_SYSTEM
+ 
+_SC_FILE_SYSTEM
+
+
+	)
+
+390 
+	m_SC_MONOTONIC_CLOCK
+,
+
+391 
+	#_SC_MONOTONIC_CLOCK
+ 
+_SC_MONOTONIC_CLOCK
+
+
+	)
+
+392 
+	m_SC_MULTI_PROCESS
+,
+
+393 
+	#_SC_MULTI_PROCESS
+ 
+_SC_MULTI_PROCESS
+
+
+	)
+
+394 
+	m_SC_SINGLE_PROCESS
+,
+
+395 
+	#_SC_SINGLE_PROCESS
+ 
+_SC_SINGLE_PROCESS
+
+
+	)
+
+396 
+	m_SC_NETWORKING
+,
+
+397 
+	#_SC_NETWORKING
+ 
+_SC_NETWORKING
+
+
+	)
+
+398 
+	m_SC_READER_WRITER_LOCKS
+,
+
+399 
+	#_SC_READER_WRITER_LOCKS
+ 
+_SC_READER_WRITER_LOCKS
+
+
+	)
+
+400 
+	m_SC_SPIN_LOCKS
+,
+
+401 
+	#_SC_SPIN_LOCKS
+ 
+_SC_SPIN_LOCKS
+
+
+	)
+
+402 
+	m_SC_REGEXP
+,
+
+403 
+	#_SC_REGEXP
+ 
+_SC_REGEXP
+
+
+	)
+
+404 
+	m_SC_REGEX_VERSION
+,
+
+405 
+	#_SC_REGEX_VERSION
+ 
+_SC_REGEX_VERSION
+
+
+	)
+
+406 
+	m_SC_SHELL
+,
+
+407 
+	#_SC_SHELL
+ 
+_SC_SHELL
+
+
+	)
+
+408 
+	m_SC_SIGNALS
+,
+
+409 
+	#_SC_SIGNALS
+ 
+_SC_SIGNALS
+
+
+	)
+
+410 
+	m_SC_SPAWN
+,
+
+411 
+	#_SC_SPAWN
+ 
+_SC_SPAWN
+
+
+	)
+
+412 
+	m_SC_SPORADIC_SERVER
+,
+
+413 
+	#_SC_SPORADIC_SERVER
+ 
+_SC_SPORADIC_SERVER
+
+
+	)
+
+414 
+	m_SC_THREAD_SPORADIC_SERVER
+,
+
+415 
+	#_SC_THREAD_SPORADIC_SERVER
+ 
+_SC_THREAD_SPORADIC_SERVER
+
+
+	)
+
+416 
+	m_SC_SYSTEM_DATABASE
+,
+
+417 
+	#_SC_SYSTEM_DATABASE
+ 
+_SC_SYSTEM_DATABASE
+
+
+	)
+
+418 
+	m_SC_SYSTEM_DATABASE_R
+,
+
+419 
+	#_SC_SYSTEM_DATABASE_R
+ 
+_SC_SYSTEM_DATABASE_R
+
+
+	)
+
+420 
+	m_SC_TIMEOUTS
+,
+
+421 
+	#_SC_TIMEOUTS
+ 
+_SC_TIMEOUTS
+
+
+	)
+
+422 
+	m_SC_TYPED_MEMORY_OBJECTS
+,
+
+423 
+	#_SC_TYPED_MEMORY_OBJECTS
+ 
+_SC_TYPED_MEMORY_OBJECTS
+
+
+	)
+
+424 
+	m_SC_USER_GROUPS
+,
+
+425 
+	#_SC_USER_GROUPS
+ 
+_SC_USER_GROUPS
+
+
+	)
+
+426 
+	m_SC_USER_GROUPS_R
+,
+
+427 
+	#_SC_USER_GROUPS_R
+ 
+_SC_USER_GROUPS_R
+
+
+	)
+
+428 
+	m_SC_2_PBS
+,
+
+429 
+	#_SC_2_PBS
+ 
+_SC_2_PBS
+
+
+	)
+
+430 
+	m_SC_2_PBS_ACCOUNTING
+,
+
+431 
+	#_SC_2_PBS_ACCOUNTING
+ 
+_SC_2_PBS_ACCOUNTING
+
+
+	)
+
+432 
+	m_SC_2_PBS_LOCATE
+,
+
+433 
+	#_SC_2_PBS_LOCATE
+ 
+_SC_2_PBS_LOCATE
+
+
+	)
+
+434 
+	m_SC_2_PBS_MESSAGE
+,
+
+435 
+	#_SC_2_PBS_MESSAGE
+ 
+_SC_2_PBS_MESSAGE
+
+
+	)
+
+436 
+	m_SC_2_PBS_TRACK
+,
+
+437 
+	#_SC_2_PBS_TRACK
+ 
+_SC_2_PBS_TRACK
+
+
+	)
+
+438 
+	m_SC_SYMLOOP_MAX
+,
+
+439 
+	#_SC_SYMLOOP_MAX
+ 
+_SC_SYMLOOP_MAX
+
+
+	)
+
+440 
+	m_SC_STREAMS
+,
+
+441 
+	#_SC_STREAMS
+ 
+_SC_STREAMS
+
+
+	)
+
+442 
+	m_SC_2_PBS_CHECKPOINT
+,
+
+443 
+	#_SC_2_PBS_CHECKPOINT
+ 
+_SC_2_PBS_CHECKPOINT
+
+
+	)
+
+445 
+	m_SC_V6_ILP32_OFF32
+,
+
+446 
+	#_SC_V6_ILP32_OFF32
+ 
+_SC_V6_ILP32_OFF32
+
+
+	)
+
+447 
+	m_SC_V6_ILP32_OFFBIG
+,
+
+448 
+	#_SC_V6_ILP32_OFFBIG
+ 
+_SC_V6_ILP32_OFFBIG
+
+
+	)
+
+449 
+	m_SC_V6_LP64_OFF64
+,
+
+450 
+	#_SC_V6_LP64_OFF64
+ 
+_SC_V6_LP64_OFF64
+
+
+	)
+
+451 
+	m_SC_V6_LPBIG_OFFBIG
+,
+
+452 
+	#_SC_V6_LPBIG_OFFBIG
+ 
+_SC_V6_LPBIG_OFFBIG
+
+
+	)
+
+454 
+	m_SC_HOST_NAME_MAX
+,
+
+455 
+	#_SC_HOST_NAME_MAX
+ 
+_SC_HOST_NAME_MAX
+
+
+	)
+
+456 
+	m_SC_TRACE
+,
+
+457 
+	#_SC_TRACE
+ 
+_SC_TRACE
+
+
+	)
+
+458 
+	m_SC_TRACE_EVENT_FILTER
+,
+
+459 
+	#_SC_TRACE_EVENT_FILTER
+ 
+_SC_TRACE_EVENT_FILTER
+
+
+	)
+
+460 
+	m_SC_TRACE_INHERIT
+,
+
+461 
+	#_SC_TRACE_INHERIT
+ 
+_SC_TRACE_INHERIT
+
+
+	)
+
+462 
+	m_SC_TRACE_LOG
+,
+
+463 
+	#_SC_TRACE_LOG
+ 
+_SC_TRACE_LOG
+
+
+	)
+
+465 
+	m_SC_LEVEL1_ICACHE_SIZE
+,
+
+466 
+	#_SC_LEVEL1_ICACHE_SIZE
+ 
+_SC_LEVEL1_ICACHE_SIZE
+
+
+	)
+
+467 
+	m_SC_LEVEL1_ICACHE_ASSOC
+,
+
+468 
+	#_SC_LEVEL1_ICACHE_ASSOC
+ 
+_SC_LEVEL1_ICACHE_ASSOC
+
+
+	)
+
+469 
+	m_SC_LEVEL1_ICACHE_LINESIZE
+,
+
+470 
+	#_SC_LEVEL1_ICACHE_LINESIZE
+ 
+_SC_LEVEL1_ICACHE_LINESIZE
+
+
+	)
+
+471 
+	m_SC_LEVEL1_DCACHE_SIZE
+,
+
+472 
+	#_SC_LEVEL1_DCACHE_SIZE
+ 
+_SC_LEVEL1_DCACHE_SIZE
+
+
+	)
+
+473 
+	m_SC_LEVEL1_DCACHE_ASSOC
+,
+
+474 
+	#_SC_LEVEL1_DCACHE_ASSOC
+ 
+_SC_LEVEL1_DCACHE_ASSOC
+
+
+	)
+
+475 
+	m_SC_LEVEL1_DCACHE_LINESIZE
+,
+
+476 
+	#_SC_LEVEL1_DCACHE_LINESIZE
+ 
+_SC_LEVEL1_DCACHE_LINESIZE
+
+
+	)
+
+477 
+	m_SC_LEVEL2_CACHE_SIZE
+,
+
+478 
+	#_SC_LEVEL2_CACHE_SIZE
+ 
+_SC_LEVEL2_CACHE_SIZE
+
+
+	)
+
+479 
+	m_SC_LEVEL2_CACHE_ASSOC
+,
+
+480 
+	#_SC_LEVEL2_CACHE_ASSOC
+ 
+_SC_LEVEL2_CACHE_ASSOC
+
+
+	)
+
+481 
+	m_SC_LEVEL2_CACHE_LINESIZE
+,
+
+482 
+	#_SC_LEVEL2_CACHE_LINESIZE
+ 
+_SC_LEVEL2_CACHE_LINESIZE
+
+
+	)
+
+483 
+	m_SC_LEVEL3_CACHE_SIZE
+,
+
+484 
+	#_SC_LEVEL3_CACHE_SIZE
+ 
+_SC_LEVEL3_CACHE_SIZE
+
+
+	)
+
+485 
+	m_SC_LEVEL3_CACHE_ASSOC
+,
+
+486 
+	#_SC_LEVEL3_CACHE_ASSOC
+ 
+_SC_LEVEL3_CACHE_ASSOC
+
+
+	)
+
+487 
+	m_SC_LEVEL3_CACHE_LINESIZE
+,
+
+488 
+	#_SC_LEVEL3_CACHE_LINESIZE
+ 
+_SC_LEVEL3_CACHE_LINESIZE
+
+
+	)
+
+489 
+	m_SC_LEVEL4_CACHE_SIZE
+,
+
+490 
+	#_SC_LEVEL4_CACHE_SIZE
+ 
+_SC_LEVEL4_CACHE_SIZE
+
+
+	)
+
+491 
+	m_SC_LEVEL4_CACHE_ASSOC
+,
+
+492 
+	#_SC_LEVEL4_CACHE_ASSOC
+ 
+_SC_LEVEL4_CACHE_ASSOC
+
+
+	)
+
+493 
+	m_SC_LEVEL4_CACHE_LINESIZE
+,
+
+494 
+	#_SC_LEVEL4_CACHE_LINESIZE
+ 
+_SC_LEVEL4_CACHE_LINESIZE
+
+
+	)
+
+497 
+	m_SC_IPV6
+ = 
+_SC_LEVEL1_ICACHE_SIZE
+ + 50,
+
+498 
+	#_SC_IPV6
+ 
+_SC_IPV6
+
+
+	)
+
+499 
+	m_SC_RAW_SOCKETS
+,
+
+500 
+	#_SC_RAW_SOCKETS
+ 
+_SC_RAW_SOCKETS
+
+
+	)
+
+502 
+	m_SC_V7_ILP32_OFF32
+,
+
+503 
+	#_SC_V7_ILP32_OFF32
+ 
+_SC_V7_ILP32_OFF32
+
+
+	)
+
+504 
+	m_SC_V7_ILP32_OFFBIG
+,
+
+505 
+	#_SC_V7_ILP32_OFFBIG
+ 
+_SC_V7_ILP32_OFFBIG
+
+
+	)
+
+506 
+	m_SC_V7_LP64_OFF64
+,
+
+507 
+	#_SC_V7_LP64_OFF64
+ 
+_SC_V7_LP64_OFF64
+
+
+	)
+
+508 
+	m_SC_V7_LPBIG_OFFBIG
+,
+
+509 
+	#_SC_V7_LPBIG_OFFBIG
+ 
+_SC_V7_LPBIG_OFFBIG
+
+
+	)
+
+511 
+	m_SC_SS_REPL_MAX
+,
+
+512 
+	#_SC_SS_REPL_MAX
+ 
+_SC_SS_REPL_MAX
+
+
+	)
+
+514 
+	m_SC_TRACE_EVENT_NAME_MAX
+,
+
+515 
+	#_SC_TRACE_EVENT_NAME_MAX
+ 
+_SC_TRACE_EVENT_NAME_MAX
+
+
+	)
+
+516 
+	m_SC_TRACE_NAME_MAX
+,
+
+517 
+	#_SC_TRACE_NAME_MAX
+ 
+_SC_TRACE_NAME_MAX
+
+
+	)
+
+518 
+	m_SC_TRACE_SYS_MAX
+,
+
+519 
+	#_SC_TRACE_SYS_MAX
+ 
+_SC_TRACE_SYS_MAX
+
+
+	)
+
+520 
+	m_SC_TRACE_USER_EVENT_MAX
+,
+
+521 
+	#_SC_TRACE_USER_EVENT_MAX
+ 
+_SC_TRACE_USER_EVENT_MAX
+
+
+	)
+
+523 
+	m_SC_XOPEN_STREAMS
+,
+
+524 
+	#_SC_XOPEN_STREAMS
+ 
+_SC_XOPEN_STREAMS
+
+
+	)
+
+526 
+	m_SC_THREAD_ROBUST_PRIO_INHERIT
+,
+
+527 
+	#_SC_THREAD_ROBUST_PRIO_INHERIT
+ 
+_SC_THREAD_ROBUST_PRIO_INHERIT
+
+
+	)
+
+528 
+	m_SC_THREAD_ROBUST_PRIO_PROTECT
+
+
+529 
+	#_SC_THREAD_ROBUST_PRIO_PROTECT
+ 
+_SC_THREAD_ROBUST_PRIO_PROTECT
+
+
+	)
+
+535 
+	m_CS_PATH
+,
+
+536 
+	#_CS_PATH
+ 
+_CS_PATH
+
+
+	)
+
+538 
+	m_CS_V6_WIDTH_RESTRICTED_ENVS
+,
+
+539 
+	#_CS_V6_WIDTH_RESTRICTED_ENVS
+ 
+_CS_V6_WIDTH_RESTRICTED_ENVS
+
+
+	)
+
+540 
+	#_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS
+ 
+_CS_V6_WIDTH_RESTRICTED_ENVS
+
+
+	)
+
+542 
+	m_CS_GNU_LIBC_VERSION
+,
+
+543 
+	#_CS_GNU_LIBC_VERSION
+ 
+_CS_GNU_LIBC_VERSION
+
+
+	)
+
+544 
+	m_CS_GNU_LIBPTHREAD_VERSION
+,
+
+545 
+	#_CS_GNU_LIBPTHREAD_VERSION
+ 
+_CS_GNU_LIBPTHREAD_VERSION
+
+
+	)
+
+547 
+	m_CS_V5_WIDTH_RESTRICTED_ENVS
+,
+
+548 
+	#_CS_V5_WIDTH_RESTRICTED_ENVS
+ 
+_CS_V5_WIDTH_RESTRICTED_ENVS
+
+
+	)
+
+549 
+	#_CS_POSIX_V5_WIDTH_RESTRICTED_ENVS
+ 
+_CS_V5_WIDTH_RESTRICTED_ENVS
+
+
+	)
+
+551 
+	m_CS_V7_WIDTH_RESTRICTED_ENVS
+,
+
+552 
+	#_CS_V7_WIDTH_RESTRICTED_ENVS
+ 
+_CS_V7_WIDTH_RESTRICTED_ENVS
+
+
+	)
+
+553 
+	#_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
+ 
+_CS_V7_WIDTH_RESTRICTED_ENVS
+
+
+	)
+
+555 
+	m_CS_LFS_CFLAGS
+ = 1000,
+
+556 
+	#_CS_LFS_CFLAGS
+ 
+_CS_LFS_CFLAGS
+
+
+	)
+
+557 
+	m_CS_LFS_LDFLAGS
+,
+
+558 
+	#_CS_LFS_LDFLAGS
+ 
+_CS_LFS_LDFLAGS
+
+
+	)
+
+559 
+	m_CS_LFS_LIBS
+,
+
+560 
+	#_CS_LFS_LIBS
+ 
+_CS_LFS_LIBS
+
+
+	)
+
+561 
+	m_CS_LFS_LINTFLAGS
+,
+
+562 
+	#_CS_LFS_LINTFLAGS
+ 
+_CS_LFS_LINTFLAGS
+
+
+	)
+
+563 
+	m_CS_LFS64_CFLAGS
+,
+
+564 
+	#_CS_LFS64_CFLAGS
+ 
+_CS_LFS64_CFLAGS
+
+
+	)
+
+565 
+	m_CS_LFS64_LDFLAGS
+,
+
+566 
+	#_CS_LFS64_LDFLAGS
+ 
+_CS_LFS64_LDFLAGS
+
+
+	)
+
+567 
+	m_CS_LFS64_LIBS
+,
+
+568 
+	#_CS_LFS64_LIBS
+ 
+_CS_LFS64_LIBS
+
+
+	)
+
+569 
+	m_CS_LFS64_LINTFLAGS
+,
+
+570 
+	#_CS_LFS64_LINTFLAGS
+ 
+_CS_LFS64_LINTFLAGS
+
+
+	)
+
+572 
+	m_CS_XBS5_ILP32_OFF32_CFLAGS
+ = 1100,
+
+573 
+	#_CS_XBS5_ILP32_OFF32_CFLAGS
+ 
+_CS_XBS5_ILP32_OFF32_CFLAGS
+
+
+	)
+
+574 
+	m_CS_XBS5_ILP32_OFF32_LDFLAGS
+,
+
+575 
+	#_CS_XBS5_ILP32_OFF32_LDFLAGS
+ 
+_CS_XBS5_ILP32_OFF32_LDFLAGS
+
+
+	)
+
+576 
+	m_CS_XBS5_ILP32_OFF32_LIBS
+,
+
+577 
+	#_CS_XBS5_ILP32_OFF32_LIBS
+ 
+_CS_XBS5_ILP32_OFF32_LIBS
+
+
+	)
+
+578 
+	m_CS_XBS5_ILP32_OFF32_LINTFLAGS
+,
+
+579 
+	#_CS_XBS5_ILP32_OFF32_LINTFLAGS
+ 
+_CS_XBS5_ILP32_OFF32_LINTFLAGS
+
+
+	)
+
+580 
+	m_CS_XBS5_ILP32_OFFBIG_CFLAGS
+,
+
+581 
+	#_CS_XBS5_ILP32_OFFBIG_CFLAGS
+ 
+_CS_XBS5_ILP32_OFFBIG_CFLAGS
+
+
+	)
+
+582 
+	m_CS_XBS5_ILP32_OFFBIG_LDFLAGS
+,
+
+583 
+	#_CS_XBS5_ILP32_OFFBIG_LDFLAGS
+ 
+_CS_XBS5_ILP32_OFFBIG_LDFLAGS
+
+
+	)
+
+584 
+	m_CS_XBS5_ILP32_OFFBIG_LIBS
+,
+
+585 
+	#_CS_XBS5_ILP32_OFFBIG_LIBS
+ 
+_CS_XBS5_ILP32_OFFBIG_LIBS
+
+
+	)
+
+586 
+	m_CS_XBS5_ILP32_OFFBIG_LINTFLAGS
+,
+
+587 
+	#_CS_XBS5_ILP32_OFFBIG_LINTFLAGS
+ 
+_CS_XBS5_ILP32_OFFBIG_LINTFLAGS
+
+
+	)
+
+588 
+	m_CS_XBS5_LP64_OFF64_CFLAGS
+,
+
+589 
+	#_CS_XBS5_LP64_OFF64_CFLAGS
+ 
+_CS_XBS5_LP64_OFF64_CFLAGS
+
+
+	)
+
+590 
+	m_CS_XBS5_LP64_OFF64_LDFLAGS
+,
+
+591 
+	#_CS_XBS5_LP64_OFF64_LDFLAGS
+ 
+_CS_XBS5_LP64_OFF64_LDFLAGS
+
+
+	)
+
+592 
+	m_CS_XBS5_LP64_OFF64_LIBS
+,
+
+593 
+	#_CS_XBS5_LP64_OFF64_LIBS
+ 
+_CS_XBS5_LP64_OFF64_LIBS
+
+
+	)
+
+594 
+	m_CS_XBS5_LP64_OFF64_LINTFLAGS
+,
+
+595 
+	#_CS_XBS5_LP64_OFF64_LINTFLAGS
+ 
+_CS_XBS5_LP64_OFF64_LINTFLAGS
+
+
+	)
+
+596 
+	m_CS_XBS5_LPBIG_OFFBIG_CFLAGS
+,
+
+597 
+	#_CS_XBS5_LPBIG_OFFBIG_CFLAGS
+ 
+_CS_XBS5_LPBIG_OFFBIG_CFLAGS
+
+
+	)
+
+598 
+	m_CS_XBS5_LPBIG_OFFBIG_LDFLAGS
+,
+
+599 
+	#_CS_XBS5_LPBIG_OFFBIG_LDFLAGS
+ 
+_CS_XBS5_LPBIG_OFFBIG_LDFLAGS
+
+
+	)
+
+600 
+	m_CS_XBS5_LPBIG_OFFBIG_LIBS
+,
+
+601 
+	#_CS_XBS5_LPBIG_OFFBIG_LIBS
+ 
+_CS_XBS5_LPBIG_OFFBIG_LIBS
+
+
+	)
+
+602 
+	m_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
+,
+
+603 
+	#_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
+ 
+_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
+
+
+	)
+
+605 
+	m_CS_POSIX_V6_ILP32_OFF32_CFLAGS
+,
+
+606 
+	#_CS_POSIX_V6_ILP32_OFF32_CFLAGS
+ 
+_CS_POSIX_V6_ILP32_OFF32_CFLAGS
+
+
+	)
+
+607 
+	m_CS_POSIX_V6_ILP32_OFF32_LDFLAGS
+,
+
+608 
+	#_CS_POSIX_V6_ILP32_OFF32_LDFLAGS
+ 
+_CS_POSIX_V6_ILP32_OFF32_LDFLAGS
+
+
+	)
+
+609 
+	m_CS_POSIX_V6_ILP32_OFF32_LIBS
+,
+
+610 
+	#_CS_POSIX_V6_ILP32_OFF32_LIBS
+ 
+_CS_POSIX_V6_ILP32_OFF32_LIBS
+
+
+	)
+
+611 
+	m_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
+,
+
+612 
+	#_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
+ 
+_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
+
+
+	)
+
+613 
+	m_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
+,
+
+614 
+	#_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
+ 
+_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
+
+
+	)
+
+615 
+	m_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
+,
+
+616 
+	#_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
+ 
+_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
+
+
+	)
+
+617 
+	m_CS_POSIX_V6_ILP32_OFFBIG_LIBS
+,
+
+618 
+	#_CS_POSIX_V6_ILP32_OFFBIG_LIBS
+ 
+_CS_POSIX_V6_ILP32_OFFBIG_LIBS
+
+
+	)
+
+619 
+	m_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
+,
+
+620 
+	#_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
+ 
+_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
+
+
+	)
+
+621 
+	m_CS_POSIX_V6_LP64_OFF64_CFLAGS
+,
+
+622 
+	#_CS_POSIX_V6_LP64_OFF64_CFLAGS
+ 
+_CS_POSIX_V6_LP64_OFF64_CFLAGS
+
+
+	)
+
+623 
+	m_CS_POSIX_V6_LP64_OFF64_LDFLAGS
+,
+
+624 
+	#_CS_POSIX_V6_LP64_OFF64_LDFLAGS
+ 
+_CS_POSIX_V6_LP64_OFF64_LDFLAGS
+
+
+	)
+
+625 
+	m_CS_POSIX_V6_LP64_OFF64_LIBS
+,
+
+626 
+	#_CS_POSIX_V6_LP64_OFF64_LIBS
+ 
+_CS_POSIX_V6_LP64_OFF64_LIBS
+
+
+	)
+
+627 
+	m_CS_POSIX_V6_LP64_OFF64_LINTFLAGS
+,
+
+628 
+	#_CS_POSIX_V6_LP64_OFF64_LINTFLAGS
+ 
+_CS_POSIX_V6_LP64_OFF64_LINTFLAGS
+
+
+	)
+
+629 
+	m_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
+,
+
+630 
+	#_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
+ 
+_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
+
+
+	)
+
+631 
+	m_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
+,
+
+632 
+	#_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
+ 
+_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
+
+
+	)
+
+633 
+	m_CS_POSIX_V6_LPBIG_OFFBIG_LIBS
+,
+
+634 
+	#_CS_POSIX_V6_LPBIG_OFFBIG_LIBS
+ 
+_CS_POSIX_V6_LPBIG_OFFBIG_LIBS
+
+
+	)
+
+635 
+	m_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+,
+
+636 
+	#_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+ 
+_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+
+
+	)
+
+638 
+	m_CS_POSIX_V7_ILP32_OFF32_CFLAGS
+,
+
+639 
+	#_CS_POSIX_V7_ILP32_OFF32_CFLAGS
+ 
+_CS_POSIX_V7_ILP32_OFF32_CFLAGS
+
+
+	)
+
+640 
+	m_CS_POSIX_V7_ILP32_OFF32_LDFLAGS
+,
+
+641 
+	#_CS_POSIX_V7_ILP32_OFF32_LDFLAGS
+ 
+_CS_POSIX_V7_ILP32_OFF32_LDFLAGS
+
+
+	)
+
+642 
+	m_CS_POSIX_V7_ILP32_OFF32_LIBS
+,
+
+643 
+	#_CS_POSIX_V7_ILP32_OFF32_LIBS
+ 
+_CS_POSIX_V7_ILP32_OFF32_LIBS
+
+
+	)
+
+644 
+	m_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS
+,
+
+645 
+	#_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS
+ 
+_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS
+
+
+	)
+
+646 
+	m_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
+,
+
+647 
+	#_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
+ 
+_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
+
+
+	)
+
+648 
+	m_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
+,
+
+649 
+	#_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
+ 
+_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
+
+
+	)
+
+650 
+	m_CS_POSIX_V7_ILP32_OFFBIG_LIBS
+,
+
+651 
+	#_CS_POSIX_V7_ILP32_OFFBIG_LIBS
+ 
+_CS_POSIX_V7_ILP32_OFFBIG_LIBS
+
+
+	)
+
+652 
+	m_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS
+,
+
+653 
+	#_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS
+ 
+_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS
+
+
+	)
+
+654 
+	m_CS_POSIX_V7_LP64_OFF64_CFLAGS
+,
+
+655 
+	#_CS_POSIX_V7_LP64_OFF64_CFLAGS
+ 
+_CS_POSIX_V7_LP64_OFF64_CFLAGS
+
+
+	)
+
+656 
+	m_CS_POSIX_V7_LP64_OFF64_LDFLAGS
+,
+
+657 
+	#_CS_POSIX_V7_LP64_OFF64_LDFLAGS
+ 
+_CS_POSIX_V7_LP64_OFF64_LDFLAGS
+
+
+	)
+
+658 
+	m_CS_POSIX_V7_LP64_OFF64_LIBS
+,
+
+659 
+	#_CS_POSIX_V7_LP64_OFF64_LIBS
+ 
+_CS_POSIX_V7_LP64_OFF64_LIBS
+
+
+	)
+
+660 
+	m_CS_POSIX_V7_LP64_OFF64_LINTFLAGS
+,
+
+661 
+	#_CS_POSIX_V7_LP64_OFF64_LINTFLAGS
+ 
+_CS_POSIX_V7_LP64_OFF64_LINTFLAGS
+
+
+	)
+
+662 
+	m_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
+,
+
+663 
+	#_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
+ 
+_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
+
+
+	)
+
+664 
+	m_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
+,
+
+665 
+	#_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
+ 
+_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
+
+
+	)
+
+666 
+	m_CS_POSIX_V7_LPBIG_OFFBIG_LIBS
+,
+
+667 
+	#_CS_POSIX_V7_LPBIG_OFFBIG_LIBS
+ 
+_CS_POSIX_V7_LPBIG_OFFBIG_LIBS
+
+
+	)
+
+668 
+	m_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
+,
+
+669 
+	#_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
+ 
+_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
+
+
+	)
+
+671 
+	m_CS_V6_ENV
+,
+
+672 
+	#_CS_V6_ENV
+ 
+_CS_V6_ENV
+
+
+	)
+
+673 
+	m_CS_V7_ENV
+
+
+674 
+	#_CS_V7_ENV
+ 
+_CS_V7_ENV
+
+
+	)
+
+	@/usr/include/bits/environments.h
+
+18 #iâdeà
+_UNISTD_H
+
+
+22 
+	~<b™s/wÜdsize.h
+>
+
+42 #ià
+__WORDSIZE
+ == 64
+
+56 
+	#_POSIX_V7_LPBIG_OFFBIG
+ -1
+
+	)
+
+57 
+	#_POSIX_V6_LPBIG_OFFBIG
+ -1
+
+	)
+
+58 
+	#_XBS5_LPBIG_OFFBIG
+ -1
+
+	)
+
+61 
+	#_POSIX_V7_LP64_OFF64
+ 1
+
+	)
+
+62 
+	#_POSIX_V6_LP64_OFF64
+ 1
+
+	)
+
+63 
+	#_XBS5_LP64_OFF64
+ 1
+
+	)
+
+69 
+	#_POSIX_V7_ILP32_OFFBIG
+ 1
+
+	)
+
+70 
+	#_POSIX_V6_ILP32_OFFBIG
+ 1
+
+	)
+
+71 
+	#_XBS5_ILP32_OFFBIG
+ 1
+
+	)
+
+73 #iâdeà
+__x86_64__
+
+
+75 
+	#_POSIX_V7_ILP32_OFF32
+ 1
+
+	)
+
+76 
+	#_POSIX_V6_ILP32_OFF32
+ 1
+
+	)
+
+77 
+	#_XBS5_ILP32_OFF32
+ 1
+
+	)
+
+95 
+	#__ILP32_OFF32_CFLAGS
+ "-m32"
+
+	)
+
+96 
+	#__ILP32_OFF32_LDFLAGS
+ "-m32"
+
+	)
+
+97 #ià
+defšed
+ 
+__x86_64__
+ && defšed 
+__ILP32__
+
+
+98 
+	#__ILP32_OFFBIG_CFLAGS
+ "-mx32"
+
+	)
+
+99 
+	#__ILP32_OFFBIG_LDFLAGS
+ "-mx32"
+
+	)
+
+101 
+	#__ILP32_OFFBIG_CFLAGS
+ "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+
+	)
+
+102 
+	#__ILP32_OFFBIG_LDFLAGS
+ "-m32"
+
+	)
+
+104 
+	#__LP64_OFF64_CFLAGS
+ "-m64"
+
+	)
+
+105 
+	#__LP64_OFF64_LDFLAGS
+ "-m64"
+
+	)
+
+	@/usr/include/bits/errno.h
+
+19 #ifdeà
+_ERRNO_H
+
+
+21 #undeà
+EDOM
+
+
+22 #undeà
+EILSEQ
+
+
+23 #undeà
+ERANGE
+
+
+24 
+	~<lšux/”ºo.h
+>
+
+27 
+	#ENOTSUP
+ 
+EOPNOTSUPP
+
+
+	)
+
+30 #iâdeà
+ECANCELED
+
+
+31 
+	#ECANCELED
+ 125
+
+	)
+
+35 #iâdeà
+EOWNERDEAD
+
+
+36 
+	#EOWNERDEAD
+ 130
+
+	)
+
+37 
+	#ENOTRECOVERABLE
+ 131
+
+	)
+
+40 #iâdeà
+ERFKILL
+
+
+41 
+	#ERFKILL
+ 132
+
+	)
+
+44 #iâdeà
+EHWPOISON
+
+
+45 
+	#EHWPOISON
+ 133
+
+	)
+
+48 #iâdeà
+__ASSEMBLER__
+
+
+50 
*
+	$__”ºo_loÿtiÚ
+ (è
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+52 #ià!
+defšed
+ 
+_LIBC
+ || defšed 
+_LIBC_REENTRANT
+
+
+54 
+	#Ӽo
+ (*
+	`__”ºo_loÿtiÚ
+ ())
+
+	)
+
+59 #ià!
+defšed
+ 
+_ERRNO_H
+ && defšed 
+__Ãed_Em©h
+
+
+63 
+	#EDOM
+ 33
+
+	)
+
+64 
+	#EILSEQ
+ 84
+
+	)
+
+65 
+	#ERANGE
+ 34
+
+	)
+
+	@/usr/include/bits/fcntl.h
+
+19 #iâdeà
+_FCNTL_H
+
+
+23 #ifdeà
+__x86_64__
+
+
+24 
+	#__O_LARGEFILE
+ 0
+
+	)
+
+27 #ifdeà
+__x86_64__
+
+
+29 
+	#F_GETLK64
+ 5
+
+	)
+
+30 
+	#F_SETLK64
+ 6
+
+	)
+
+31 
+	#F_SETLKW64
+ 7
+
+	)
+
+35 
+	sæock
+
+
+37 
+	ml_ty³
+;
+
+38 
+	ml_wh’û
+;
+
+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 
+	sæock64
+
+
+52 
+	ml_ty³
+;
+
+53 
+	ml_wh’û
+;
+
+54 
+__off64_t
+ 
+	ml_¡¬t
+;
+
+55 
+__off64_t
+ 
+	ml_Ën
+;
+
+56 
+__pid_t
+ 
+	ml_pid
+;
+
+61 
+	~<b™s/fúŽ-lšux.h
+>
+
+	@/usr/include/bits/fcntl2.h
+
+19 #iâdef 
+_FCNTL_H
+
+
+25 #iâdeà
+__USE_FILE_OFFSET64
+
+
+26 

+	$__ݒ_2
+ (cÚ¡ *
+__·th
+, 
+__oæag
+è
+	`__nÚnuÎ
+ ((1));
+
+27 

+	`__REDIRECT
+ (
+__ݒ_®Ÿs
+, (cÚ¡ *
+__·th
+, 
+__oæag
+, ...),
+
+28 
+ݒ
+è
+	`__nÚnuÎ
+ ((1));
+
+30 

+	`__REDIRECT
+ (
+__ݒ_2
+, (cÚ¡ *
+__·th
+, 
+__oæag
+),
+
+31 
+__ݒ64_2
+è
+	`__nÚnuÎ
+ ((1));
+
+32 

+	`__REDIRECT
+ (
+__ݒ_®Ÿs
+, (cÚ¡ *
+__·th
+, 
+__oæag
+, ...),
+
+33 
+ݒ64
+è
+	`__nÚnuÎ
+ ((1));
+
+35 
+	`__”rÜdeþ
+ (
+__ݒ_too_mªy_¬gs
+,
+
+37 
+	`__”rÜdeþ
+ (
+__ݒ_missšg_mode
+,
+
+40 
+__fÜtify_funùiÚ
+ 
+
+41 
+	$ݒ
+ (cÚ¡ *
+__·th
+, 
+__oæag
+, ...)
+
+43 ià(
+	`__va_¬g_·ck_Ën
+ () > 1)
+
+44 
+	`__ݒ_too_mªy_¬gs
+ ();
+
+46 ià(
+	`__bužtš_cÚ¡ªt_p
+ (
+__oæag
+))
+
+48 ià(
+	`__OPEN_NEEDS_MODE
+ (
+__oæag
+è&& 
+	`__va_¬g_·ck_Ën
+ () < 1)
+
+50 
+	`__ݒ_missšg_mode
+ ();
+
+51  
+	`__ݒ_2
+ (
+__·th
+, 
+__oæag
+);
+
+53  
+	`__ݒ_®Ÿs
+ (
+__·th
+, 
+__oæag
+, 
+	`__va_¬g_·ck
+ ());
+
+56 ià(
+	`__va_¬g_·ck_Ën
+ () < 1)
+
+57  
+	`__ݒ_2
+ (
+__·th
+, 
+__oæag
+);
+
+59  
+	`__ݒ_®Ÿs
+ (
+__·th
+, 
+__oæag
+, 
+	`__va_¬g_·ck
+ ());
+
+60 
+	}
+}
+
+63 #ifdeà
+__USE_LARGEFILE64
+
+
+64 

+	$__ݒ64_2
+ (cÚ¡ *
+__·th
+, 
+__oæag
+è
+	`__nÚnuÎ
+ ((1));
+
+65 

+	`__REDIRECT
+ (
+__ݒ64_®Ÿs
+, (cÚ¡ *
+__·th
+, 
+__oæag
+,
+
+66 ...), 
+ݒ64
+è
+	`__nÚnuÎ
+ ((1));
+
+67 
+	`__”rÜdeþ
+ (
+__ݒ64_too_mªy_¬gs
+,
+
+69 
+	`__”rÜdeþ
+ (
+__ݒ64_missšg_mode
+,
+
+72 
+__fÜtify_funùiÚ
+ 
+
+73 
+	$ݒ64
+ (cÚ¡ *
+__·th
+, 
+__oæag
+, ...)
+
+75 ià(
+	`__va_¬g_·ck_Ën
+ () > 1)
+
+76 
+	`__ݒ64_too_mªy_¬gs
+ ();
+
+78 ià(
+	`__bužtš_cÚ¡ªt_p
+ (
+__oæag
+))
+
+80 ià(
+	`__OPEN_NEEDS_MODE
+ (
+__oæag
+è&& 
+	`__va_¬g_·ck_Ën
+ () < 1)
+
+82 
+	`__ݒ64_missšg_mode
+ ();
+
+83  
+	`__ݒ64_2
+ (
+__·th
+, 
+__oæag
+);
+
+85  
+	`__ݒ64_®Ÿs
+ (
+__·th
+, 
+__oæag
+, 
+	`__va_¬g_·ck
+ ());
+
+88 ià(
+	`__va_¬g_·ck_Ën
+ () < 1)
+
+89  
+	`__ݒ64_2
+ (
+__·th
+, 
+__oæag
+);
+
+91  
+	`__ݒ64_®Ÿs
+ (
+__·th
+, 
+__oæag
+, 
+	`__va_¬g_·ck
+ ());
+
+92 
+	}
+}
+
+96 #ifdeà
+__USE_ATFILE
+
+
+97 #iâdeà
+__USE_FILE_OFFSET64
+
+
+98 

+	$__ݒ©_2
+ (
+__fd
+, cÚ¡ *
+__·th
+, 
+__oæag
+)
+
+99 
+	`__nÚnuÎ
+ ((2));
+
+100 

+	`__REDIRECT
+ (
+__ݒ©_®Ÿs
+, (
+__fd
+, cÚ¡ *
+__·th
+,
+
+101 
+__oæag
+, ...), 
+ݒ©
+)
+
+102 
+	`__nÚnuÎ
+ ((2));
+
+104 

+	`__REDIRECT
+ (
+__ݒ©_2
+, (
+__fd
+, cÚ¡ *
+__·th
+,
+
+105 
+__oæag
+), 
+__ݒ©64_2
+)
+
+106 
+	`__nÚnuÎ
+ ((2));
+
+107 

+	`__REDIRECT
+ (
+__ݒ©_®Ÿs
+, (
+__fd
+, cÚ¡ *
+__·th
+,
+
+108 
+__oæag
+, ...), 
+ݒ©64
+)
+
+109 
+	`__nÚnuÎ
+ ((2));
+
+111 
+	`__”rÜdeþ
+ (
+__ݒ©_too_mªy_¬gs
+,
+
+113 
+	`__”rÜdeþ
+ (
+__ݒ©_missšg_mode
+,
+
+116 
+__fÜtify_funùiÚ
+ 
+
+117 
+	$ݒ©
+ (
+__fd
+, cÚ¡ *
+__·th
+, 
+__oæag
+, ...)
+
+119 ià(
+	`__va_¬g_·ck_Ën
+ () > 1)
+
+120 
+	`__ݒ©_too_mªy_¬gs
+ ();
+
+122 ià(
+	`__bužtš_cÚ¡ªt_p
+ (
+__oæag
+))
+
+124 ià(
+	`__OPEN_NEEDS_MODE
+ (
+__oæag
+è&& 
+	`__va_¬g_·ck_Ën
+ () < 1)
+
+126 
+	`__ݒ©_missšg_mode
+ ();
+
+127  
+	`__ݒ©_2
+ (
+__fd
+, 
+__·th
+, 
+__oæag
+);
+
+129  
+	`__ݒ©_®Ÿs
+ (
+__fd
+, 
+__·th
+, 
+__oæag
+, 
+	`__va_¬g_·ck
+ ());
+
+132 ià(
+	`__va_¬g_·ck_Ën
+ () < 1)
+
+133  
+	`__ݒ©_2
+ (
+__fd
+, 
+__·th
+, 
+__oæag
+);
+
+135  
+	`__ݒ©_®Ÿs
+ (
+__fd
+, 
+__·th
+, 
+__oæag
+, 
+	`__va_¬g_·ck
+ ());
+
+136 
+	}
+}
+
+139 #ifdeà
+__USE_LARGEFILE64
+
+
+140 

+	$__ݒ©64_2
+ (
+__fd
+, cÚ¡ *
+__·th
+, 
+__oæag
+)
+
+141 
+	`__nÚnuÎ
+ ((2));
+
+142 

+	`__REDIRECT
+ (
+__ݒ©64_®Ÿs
+, (
+__fd
+, cÚ¡ *
+__·th
+,
+
+143 
+__oæag
+, ...), 
+ݒ©64
+)
+
+144 
+	`__nÚnuÎ
+ ((2));
+
+145 
+	`__”rÜdeþ
+ (
+__ݒ©64_too_mªy_¬gs
+,
+
+147 
+	`__”rÜdeþ
+ (
+__ݒ©64_missšg_mode
+,
+
+150 
+__fÜtify_funùiÚ
+ 
+
+151 
+	$ݒ©64
+ (
+__fd
+, cÚ¡ *
+__·th
+, 
+__oæag
+, ...)
+
+153 ià(
+	`__va_¬g_·ck_Ën
+ () > 1)
+
+154 
+	`__ݒ©64_too_mªy_¬gs
+ ();
+
+156 ià(
+	`__bužtš_cÚ¡ªt_p
+ (
+__oæag
+))
+
+158 ià(
+	`__OPEN_NEEDS_MODE
+ (
+__oæag
+è&& 
+	`__va_¬g_·ck_Ën
+ () < 1)
+
+160 
+	`__ݒ©64_missšg_mode
+ ();
+
+161  
+	`__ݒ©64_2
+ (
+__fd
+, 
+__·th
+, 
+__oæag
+);
+
+163  
+	`__ݒ©64_®Ÿs
+ (
+__fd
+, 
+__·th
+, 
+__oæag
+, 
+	`__va_¬g_·ck
+ ());
+
+166 ià(
+	`__va_¬g_·ck_Ën
+ () < 1)
+
+167  
+	`__ݒ©64_2
+ (
+__fd
+, 
+__·th
+, 
+__oæag
+);
+
+169  
+	`__ݒ©64_®Ÿs
+ (
+__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 
+	#HUGE_VAL
+ (
+	`__bužtš_huge_v®
+())
+
+	)
+
+28 #–ià
+__GNUC_PREREQ
+(2,96)
+
+29 
+	#HUGE_VAL
+ (
+__ex‹nsiÚ__
+ 0x1.0
+p2047
+)
+
+	)
+
+30 #–ià
+defšed
+ 
+__GNUC__
+
+
+32 
+	#HUGE_VAL
+ \
+
+33 (
+__ex‹nsiÚ__
+ \
+
+34 ((uniÚ { 
+__l
+ 
+	`__©Œibu‹__
+((
+	`__mode__
+(
+__DI__
+))); 
+__d
+; }) \
+
+35 { 
+__l
+: 0x7ff0000000000000ULL }).
+__d
+)
+
+	)
+
+39 
+	~<’dŸn.h
+>
+
+41 uniÚ { 
+	m__c
+[8]; 
+	m__d
+; } 
+	t__huge_v®_t
+;
+
+43 #ià
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+44 
+	#__HUGE_VAL_by‹s
+ { 0x7f, 0xf0, 0, 0, 0, 0, 0, 0 }
+
+	)
+
+46 #ià
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+47 
+	#__HUGE_VAL_by‹s
+ { 0, 0, 0, 0, 0, 0, 0xf0, 0x7à}
+
+	)
+
+50 
+__huge_v®_t
+ 
+	g__huge_v®
+ = { 
+__HUGE_VAL_by‹s
+ };
+
+51 
+	#HUGE_VAL
+ (
+__huge_v®
+.
+__d
+)
+
+	)
+
+	@/usr/include/bits/huge_valf.h
+
+20 #iâdeà
+_MATH_H
+
+
+26 #ià
+__GNUC_PREREQ
+(3,3)
+
+27 
+	#HUGE_VALF
+ (
+	`__bužtš_huge_v®f
+())
+
+	)
+
+28 #–ià
+__GNUC_PREREQ
+(2,96)
+
+29 
+	#HUGE_VALF
+ (
+__ex‹nsiÚ__
+ 0x1.0
+p255f
+)
+
+	)
+
+30 #–ià
+defšed
+ 
+__GNUC__
+
+
+32 
+	#HUGE_VALF
+ \
+
+33 (
+__ex‹nsiÚ__
+ \
+
+34 ((uniÚ { 
+__l
+ 
+	`__©Œibu‹__
+((
+	`__mode__
+(
+__SI__
+))); 
+__d
+; }) \
+
+35 { 
+__l
+: 0x7f800000UL }).
+__d
+)
+
+	)
+
+39 uniÚ { 
+	m__c
+[4]; 
+	m__f
+; } 
+	t__huge_v®f_t
+;
+
+41 #ià
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+42 
+	#__HUGE_VALF_by‹s
+ { 0x7f, 0x80, 0, 0 }
+
+	)
+
+44 #ià
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+45 
+	#__HUGE_VALF_by‹s
+ { 0, 0, 0x80, 0x7à}
+
+	)
+
+48 
+__huge_v®f_t
+ 
+	g__huge_v®f
+ = { 
+__HUGE_VALF_by‹s
+ };
+
+49 
+	#HUGE_VALF
+ (
+__huge_v®f
+.
+__f
+)
+
+	)
+
+	@/usr/include/bits/huge_vall.h
+
+20 #iâdeà
+_MATH_H
+
+
+24 #ià
+__GNUC_PREREQ
+(3,3)
+
+25 
+	#HUGE_VALL
+ (
+	`__bužtš_huge_v®l
+())
+
+	)
+
+26 #–ià
+__GNUC_PREREQ
+(2,96)
+
+27 
+	#HUGE_VALL
+ (
+__ex‹nsiÚ__
+ 0x1.0
+p32767L
+)
+
+	)
+
+30 
+	#__HUGE_VALL_by‹s
+ { 0, 0, 0, 0, 0, 0, 0, 0x80, 0xff, 0x7f, 0, 0 }
+
+	)
+
+32 
+	#__huge_v®l_t
+ uniÚ { 
+__c
+[12]; 
+__ld
+; }
+
+	)
+
+33 #ifdeà
+__GNUC__
+
+
+34 
+	#HUGE_VALL
+ (
+__ex‹nsiÚ__
+ \
+
+35 ((
+__huge_v®l_t
+è{ 
+__c
+: 
+__HUGE_VALL_by‹s
+ }).
+__ld
+)
+
+	)
+
+37 
+__huge_v®l_t
+ 
+	g__huge_v®l
+ = { 
+__HUGE_VALL_by‹s
+ };
+
+38 
+	#HUGE_VALL
+ (
+__huge_v®l
+.
+__ld
+)
+
+	)
+
+	@/usr/include/bits/in.h
+
+20 #iâdeà
+_NETINET_IN_H
+
+
+29 #ià
+defšed
+ 
+_UAPI_LINUX_IN6_H
+ || defšed 
+_UAPI_IPV6_H
+
+
+33 
+	#__USE_KERNEL_IPV6_DEFS
+
+
+	)
+
+39 
+	#IP_OPTIONS
+ 4
+
+	)
+
+40 
+	#IP_HDRINCL
+ 3
+
+	)
+
+41 
+	#IP_TOS
+ 1
+
+	)
+
+42 
+	#IP_TTL
+ 2
+
+	)
+
+43 
+	#IP_RECVOPTS
+ 6
+
+	)
+
+45 
+	#IP_RECVRETOPTS
+ 
+IP_RETOPTS
+
+
+	)
+
+46 
+	#IP_RETOPTS
+ 7
+
+	)
+
+47 
+	#IP_MULTICAST_IF
+ 32
+
+	)
+
+48 
+	#IP_MULTICAST_TTL
+ 33
+
+	)
+
+49 
+	#IP_MULTICAST_LOOP
+ 34
+
+	)
+
+50 
+	#IP_ADD_MEMBERSHIP
+ 35
+
+	)
+
+51 
+	#IP_DROP_MEMBERSHIP
+ 36
+
+	)
+
+52 
+	#IP_UNBLOCK_SOURCE
+ 37
+
+	)
+
+53 
+	#IP_BLOCK_SOURCE
+ 38
+
+	)
+
+54 
+	#IP_ADD_SOURCE_MEMBERSHIP
+ 39
+
+	)
+
+55 
+	#IP_DROP_SOURCE_MEMBERSHIP
+ 40
+
+	)
+
+56 
+	#IP_MSFILTER
+ 41
+
+	)
+
+57 #ifdeà
+__USE_MISC
+
+
+58 
+	#MCAST_JOIN_GROUP
+ 42
+
+	)
+
+59 
+	#MCAST_BLOCK_SOURCE
+ 43
+
+	)
+
+60 
+	#MCAST_UNBLOCK_SOURCE
+ 44
+
+	)
+
+61 
+	#MCAST_LEAVE_GROUP
+ 45
+
+	)
+
+62 
+	#MCAST_JOIN_SOURCE_GROUP
+ 46
+
+	)
+
+63 
+	#MCAST_LEAVE_SOURCE_GROUP
+ 47
+
+	)
+
+64 
+	#MCAST_MSFILTER
+ 48
+
+	)
+
+65 
+	#IP_MULTICAST_ALL
+ 49
+
+	)
+
+66 
+	#IP_UNICAST_IF
+ 50
+
+	)
+
+68 
+	#MCAST_EXCLUDE
+ 0
+
+	)
+
+69 
+	#MCAST_INCLUDE
+ 1
+
+	)
+
+72 
+	#IP_ROUTER_ALERT
+ 5
+
+	)
+
+73 
+	#IP_PKTINFO
+ 8
+
+	)
+
+74 
+	#IP_PKTOPTIONS
+ 9
+
+	)
+
+75 
+	#IP_PMTUDISC
+ 10
+
+	)
+
+76 
+	#IP_MTU_DISCOVER
+ 10
+
+	)
+
+77 
+	#IP_RECVERR
+ 11
+
+	)
+
+78 
+	#IP_RECVTTL
+ 12
+
+	)
+
+79 
+	#IP_RECVTOS
+ 13
+
+	)
+
+80 
+	#IP_MTU
+ 14
+
+	)
+
+81 
+	#IP_FREEBIND
+ 15
+
+	)
+
+82 
+	#IP_IPSEC_POLICY
+ 16
+
+	)
+
+83 
+	#IP_XFRM_POLICY
+ 17
+
+	)
+
+84 
+	#IP_PASSSEC
+ 18
+
+	)
+
+85 
+	#IP_TRANSPARENT
+ 19
+
+	)
+
+86 
+	#IP_MULTICAST_ALL
+ 49
+
+	)
+
+89 
+	#IP_ORIGDSTADDR
+ 20
+
+	)
+
+90 
+	#IP_RECVORIGDSTADDR
+ 
+IP_ORIGDSTADDR
+
+
+	)
+
+92 
+	#IP_MINTTL
+ 21
+
+	)
+
+93 
+	#IP_NODEFRAG
+ 22
+
+	)
+
+94 
+	#IP_CHECKSUM
+ 23
+
+	)
+
+95 
+	#IP_BIND_ADDRESS_NO_PORT
+ 24
+
+	)
+
+98 
+	#IP_PMTUDISC_DONT
+ 0
+
+	)
+
+99 
+	#IP_PMTUDISC_WANT
+ 1
+
+	)
+
+100 
+	#IP_PMTUDISC_DO
+ 2
+
+	)
+
+101 
+	#IP_PMTUDISC_PROBE
+ 3
+
+	)
+
+105 
+	#IP_PMTUDISC_INTERFACE
+ 4
+
+	)
+
+107 
+	#IP_PMTUDISC_OMIT
+ 5
+
+	)
+
+109 
+	#IP_MULTICAST_IF
+ 32
+
+	)
+
+110 
+	#IP_MULTICAST_TTL
+ 33
+
+	)
+
+111 
+	#IP_MULTICAST_LOOP
+ 34
+
+	)
+
+112 
+	#IP_ADD_MEMBERSHIP
+ 35
+
+	)
+
+113 
+	#IP_DROP_MEMBERSHIP
+ 36
+
+	)
+
+114 
+	#IP_UNBLOCK_SOURCE
+ 37
+
+	)
+
+115 
+	#IP_BLOCK_SOURCE
+ 38
+
+	)
+
+116 
+	#IP_ADD_SOURCE_MEMBERSHIP
+ 39
+
+	)
+
+117 
+	#IP_DROP_SOURCE_MEMBERSHIP
+ 40
+
+	)
+
+118 
+	#IP_MSFILTER
+ 41
+
+	)
+
+119 
+	#IP_MULTICAST_ALL
+ 49
+
+	)
+
+120 
+	#IP_UNICAST_IF
+ 50
+
+	)
+
+123 
+	#SOL_IP
+ 0
+
+	)
+
+125 
+	#IP_DEFAULT_MULTICAST_TTL
+ 1
+
+	)
+
+126 
+	#IP_DEFAULT_MULTICAST_LOOP
+ 1
+
+	)
+
+127 
+	#IP_MAX_MEMBERSHIPS
+ 20
+
+	)
+
+129 #ifdeà
+__USE_MISC
+
+
+133 
+	s_Ýts
+
+
+135 
+š_addr
+ 
+	m_d¡
+;
+
+136 
+	m_Ýts
+[40];
+
+140 
+	s_m»qn
+
+
+142 
+š_addr
+ 
+	mimr_muɟddr
+;
+
+143 
+š_addr
+ 
+	mimr_add»ss
+;
+
+144 
+	mimr_ifšdex
+;
+
+148 
+	sš_pktšfo
+
+
+150 
+	mi_ifšdex
+;
+
+151 
+š_addr
+ 
+	mi_¥ec_d¡
+;
+
+152 
+š_addr
+ 
+	mi_addr
+;
+
+159 
+	#IPV6_ADDRFORM
+ 1
+
+	)
+
+160 
+	#IPV6_2292PKTINFO
+ 2
+
+	)
+
+161 
+	#IPV6_2292HOPOPTS
+ 3
+
+	)
+
+162 
+	#IPV6_2292DSTOPTS
+ 4
+
+	)
+
+163 
+	#IPV6_2292RTHDR
+ 5
+
+	)
+
+164 
+	#IPV6_2292PKTOPTIONS
+ 6
+
+	)
+
+165 
+	#IPV6_CHECKSUM
+ 7
+
+	)
+
+166 
+	#IPV6_2292HOPLIMIT
+ 8
+
+	)
+
+168 
+	#SCM_SRCRT
+ 
+IPV6_RXSRCRT
+
+
+	)
+
+170 
+	#IPV6_NEXTHOP
+ 9
+
+	)
+
+171 
+	#IPV6_AUTHHDR
+ 10
+
+	)
+
+172 
+	#IPV6_UNICAST_HOPS
+ 16
+
+	)
+
+173 
+	#IPV6_MULTICAST_IF
+ 17
+
+	)
+
+174 
+	#IPV6_MULTICAST_HOPS
+ 18
+
+	)
+
+175 
+	#IPV6_MULTICAST_LOOP
+ 19
+
+	)
+
+176 
+	#IPV6_JOIN_GROUP
+ 20
+
+	)
+
+177 
+	#IPV6_LEAVE_GROUP
+ 21
+
+	)
+
+178 
+	#IPV6_ROUTER_ALERT
+ 22
+
+	)
+
+179 
+	#IPV6_MTU_DISCOVER
+ 23
+
+	)
+
+180 
+	#IPV6_MTU
+ 24
+
+	)
+
+181 
+	#IPV6_RECVERR
+ 25
+
+	)
+
+182 
+	#IPV6_V6ONLY
+ 26
+
+	)
+
+183 
+	#IPV6_JOIN_ANYCAST
+ 27
+
+	)
+
+184 
+	#IPV6_LEAVE_ANYCAST
+ 28
+
+	)
+
+185 
+	#IPV6_IPSEC_POLICY
+ 34
+
+	)
+
+186 
+	#IPV6_XFRM_POLICY
+ 35
+
+	)
+
+189 
+	#IPV6_RECVPKTINFO
+ 49
+
+	)
+
+190 
+	#IPV6_PKTINFO
+ 50
+
+	)
+
+191 
+	#IPV6_RECVHOPLIMIT
+ 51
+
+	)
+
+192 
+	#IPV6_HOPLIMIT
+ 52
+
+	)
+
+193 
+	#IPV6_RECVHOPOPTS
+ 53
+
+	)
+
+194 
+	#IPV6_HOPOPTS
+ 54
+
+	)
+
+195 
+	#IPV6_RTHDRDSTOPTS
+ 55
+
+	)
+
+196 
+	#IPV6_RECVRTHDR
+ 56
+
+	)
+
+197 
+	#IPV6_RTHDR
+ 57
+
+	)
+
+198 
+	#IPV6_RECVDSTOPTS
+ 58
+
+	)
+
+199 
+	#IPV6_DSTOPTS
+ 59
+
+	)
+
+200 
+	#IPV6_RECVPATHMTU
+ 60
+
+	)
+
+201 
+	#IPV6_PATHMTU
+ 61
+
+	)
+
+202 
+	#IPV6_DONTFRAG
+ 62
+
+	)
+
+205 
+	#IPV6_RECVTCLASS
+ 66
+
+	)
+
+206 
+	#IPV6_TCLASS
+ 67
+
+	)
+
+209 
+	#IPV6_ADD_MEMBERSHIP
+ 
+IPV6_JOIN_GROUP
+
+
+	)
+
+210 
+	#IPV6_DROP_MEMBERSHIP
+ 
+IPV6_LEAVE_GROUP
+
+
+	)
+
+211 
+	#IPV6_RXHOPOPTS
+ 
+IPV6_HOPOPTS
+
+
+	)
+
+212 
+	#IPV6_RXDSTOPTS
+ 
+IPV6_DSTOPTS
+
+
+	)
+
+215 
+	#IPV6_PMTUDISC_DONT
+ 0
+
+	)
+
+216 
+	#IPV6_PMTUDISC_WANT
+ 1
+
+	)
+
+217 
+	#IPV6_PMTUDISC_DO
+ 2
+
+	)
+
+218 
+	#IPV6_PMTUDISC_PROBE
+ 3
+
+	)
+
+219 
+	#IPV6_PMTUDISC_INTERFACE
+ 4
+
+	)
+
+220 
+	#IPV6_PMTUDISC_OMIT
+ 5
+
+	)
+
+223 
+	#SOL_IPV6
+ 41
+
+	)
+
+224 
+	#SOL_ICMPV6
+ 58
+
+	)
+
+227 
+	#IPV6_RTHDR_LOOSE
+ 0
+
+	)
+
+228 
+	#IPV6_RTHDR_STRICT
+ 1
+
+	)
+
+230 
+	#IPV6_RTHDR_TYPE_0
+ 0
+
+	)
+
+	@/usr/include/bits/inf.h
+
+19 #iâdeà
+_MATH_H
+
+
+25 #ià
+__GNUC_PREREQ
+(3,3)
+
+26 
+	#INFINITY
+ (
+	`__bužtš_šff
+())
+
+	)
+
+28 
+	#INFINITY
+ 
+HUGE_VALF
+
+
+	)
+
+	@/usr/include/bits/math-finite.h
+
+19 #iâdeà
+_MATH_H
+
+
+24 

+__REDIRECT_NTH
+ (
+acos
+, (), 
+__acos_fš™e
+);
+
+25 #ifdeà
+__USE_ISOC99
+
+
+26 

+__REDIRECT_NTH
+ (
+acosf
+, (), 
+__acosf_fš™e
+);
+
+27 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+28 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+29 

+__REDIRECT_NTH
+ (
+aco¦
+, (), 
+__acos_fš™e
+);
+
+31 

+__REDIRECT_NTH
+ (
+aco¦
+, (), 
+__aco¦_fš™e
+);
+
+36 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_ISOC99
+
+
+38 

+__REDIRECT_NTH
+ (
+acosh
+, (), 
+__acosh_fš™e
+);
+
+40 #ifdeà
+__USE_ISOC99
+
+
+41 

+__REDIRECT_NTH
+ (
+acoshf
+, (), 
+__acoshf_fš™e
+);
+
+42 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+43 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+44 

+__REDIRECT_NTH
+ (
+acoshl
+, (), 
+__acosh_fš™e
+);
+
+46 

+__REDIRECT_NTH
+ (
+acoshl
+, (), 
+__acoshl_fš™e
+);
+
+52 

+__REDIRECT_NTH
+ (
+asš
+, (), 
+__asš_fš™e
+);
+
+53 #ifdeà
+__USE_ISOC99
+
+
+54 

+__REDIRECT_NTH
+ (
+asšf
+, (), 
+__asšf_fš™e
+);
+
+55 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+56 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+57 

+__REDIRECT_NTH
+ (
+asšl
+, (), 
+__asš_fš™e
+);
+
+59 

+__REDIRECT_NTH
+ (
+asšl
+, (), 
+__asšl_fš™e
+);
+
+65 

+__REDIRECT_NTH
+ (
+©ª2
+, (, ), 
+__©ª2_fš™e
+);
+
+66 #ifdeà
+__USE_ISOC99
+
+
+67 

+__REDIRECT_NTH
+ (
+©ª2f
+, (, ), 
+__©ª2f_fš™e
+);
+
+68 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+69 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+70 

+__REDIRECT_NTH
+ (
+©ª2l
+, (, ),
+
+71 
+__©ª2_fš™e
+);
+
+73 

+__REDIRECT_NTH
+ (
+©ª2l
+, (, ),
+
+74 
+__©ª2l_fš™e
+);
+
+79 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_ISOC99
+
+
+81 

+__REDIRECT_NTH
+ (
+©ªh
+, (), 
+__©ªh_fš™e
+);
+
+83 #ifdeà
+__USE_ISOC99
+
+
+84 

+__REDIRECT_NTH
+ (
+©ªhf
+, (), 
+__©ªhf_fš™e
+);
+
+85 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+86 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+87 

+__REDIRECT_NTH
+ (
+©ªhl
+, (), 
+__©ªh_fš™e
+);
+
+89 

+__REDIRECT_NTH
+ (
+©ªhl
+, (), 
+__©ªhl_fš™e
+);
+
+95 

+__REDIRECT_NTH
+ (
+cosh
+, (), 
+__cosh_fš™e
+);
+
+96 #ifdeà
+__USE_ISOC99
+
+
+97 

+__REDIRECT_NTH
+ (
+coshf
+, (), 
+__coshf_fš™e
+);
+
+98 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+99 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+100 

+__REDIRECT_NTH
+ (
+coshl
+, (), 
+__cosh_fš™e
+);
+
+102 

+__REDIRECT_NTH
+ (
+coshl
+, (), 
+__coshl_fš™e
+);
+
+108 

+__REDIRECT_NTH
+ (
+exp
+, (), 
+__exp_fš™e
+);
+
+109 #ifdeà
+__USE_ISOC99
+
+
+110 

+__REDIRECT_NTH
+ (
+expf
+, (), 
+__expf_fš™e
+);
+
+111 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+112 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+113 

+__REDIRECT_NTH
+ (
+ex¶
+, (), 
+__exp_fš™e
+);
+
+115 

+__REDIRECT_NTH
+ (
+ex¶
+, (), 
+__ex¶_fš™e
+);
+
+120 #ifdeà
+__USE_GNU
+
+
+122 

+__REDIRECT_NTH
+ (
+exp10
+, (), 
+__exp10_fš™e
+);
+
+123 

+__REDIRECT_NTH
+ (
+exp10f
+, (), 
+__exp10f_fš™e
+);
+
+124 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+125 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+126 

+__REDIRECT_NTH
+ (
+exp10l
+, (), 
+__exp10_fš™e
+);
+
+128 

+__REDIRECT_NTH
+ (
+exp10l
+, (), 
+__exp10l_fš™e
+);
+
+133 

+__REDIRECT_NTH
+ (
+pow10
+, (), 
+__exp10_fš™e
+);
+
+134 

+__REDIRECT_NTH
+ (
+pow10f
+, (), 
+__exp10f_fš™e
+);
+
+135 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+136 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+137 

+__REDIRECT_NTH
+ (
+pow10l
+, (), 
+__exp10_fš™e
+);
+
+139 

+__REDIRECT_NTH
+ (
+pow10l
+, (), 
+__exp10l_fš™e
+);
+
+144 #ifdeà
+__USE_ISOC99
+
+
+146 

+__REDIRECT_NTH
+ (
+exp2
+, (), 
+__exp2_fš™e
+);
+
+147 

+__REDIRECT_NTH
+ (
+exp2f
+, (), 
+__exp2f_fš™e
+);
+
+148 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+149 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+150 

+__REDIRECT_NTH
+ (
+exp2l
+, (), 
+__exp2_fš™e
+);
+
+152 

+__REDIRECT_NTH
+ (
+exp2l
+, (), 
+__exp2l_fš™e
+);
+
+158 

+__REDIRECT_NTH
+ (
+fmod
+, (, ), 
+__fmod_fš™e
+);
+
+159 #ifdeà
+__USE_ISOC99
+
+
+160 

+__REDIRECT_NTH
+ (
+fmodf
+, (, ), 
+__fmodf_fš™e
+);
+
+161 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+162 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+163 

+__REDIRECT_NTH
+ (
+fmodl
+, (, ),
+
+164 
+__fmod_fš™e
+);
+
+166 

+__REDIRECT_NTH
+ (
+fmodl
+, (, ),
+
+167 
+__fmodl_fš™e
+);
+
+172 #ià
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_ISOC99
+
+
+174 

+__REDIRECT_NTH
+ (
+hypÙ
+, (, ), 
+__hypÙ_fš™e
+);
+
+176 #ifdeà
+__USE_ISOC99
+
+
+177 

+__REDIRECT_NTH
+ (
+hypÙf
+, (, ), 
+__hypÙf_fš™e
+);
+
+178 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+179 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+180 

+__REDIRECT_NTH
+ (
+hypÙl
+, (, ),
+
+181 
+__hypÙ_fš™e
+);
+
+183 

+__REDIRECT_NTH
+ (
+hypÙl
+, (, ),
+
+184 
+__hypÙl_fš™e
+);
+
+189 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+191 

+__REDIRECT_NTH
+ (
+j0
+, (), 
+__j0_fš™e
+);
+
+193 #ià
+defšed
+ 
+__USE_MISC
+ && defšed 
+__USE_ISOC99
+
+
+194 

+__REDIRECT_NTH
+ (
+j0f
+, (), 
+__j0f_fš™e
+);
+
+195 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+196 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+197 

+__REDIRECT_NTH
+ (
+j0l
+, (), 
+__j0_fš™e
+);
+
+199 

+__REDIRECT_NTH
+ (
+j0l
+, (), 
+__j0l_fš™e
+);
+
+204 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+206 

+__REDIRECT_NTH
+ (
+y0
+, (), 
+__y0_fš™e
+);
+
+208 #ià
+defšed
+ 
+__USE_MISC
+ && defšed 
+__USE_ISOC99
+
+
+209 

+__REDIRECT_NTH
+ (
+y0f
+, (), 
+__y0f_fš™e
+);
+
+210 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+211 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+212 

+__REDIRECT_NTH
+ (
+y0l
+, (), 
+__y0_fš™e
+);
+
+214 

+__REDIRECT_NTH
+ (
+y0l
+, (), 
+__y0l_fš™e
+);
+
+219 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+221 

+__REDIRECT_NTH
+ (
+j1
+, (), 
+__j1_fš™e
+);
+
+223 #ià
+defšed
+ 
+__USE_MISC
+ && defšed 
+__USE_ISOC99
+
+
+224 

+__REDIRECT_NTH
+ (
+j1f
+, (), 
+__j1f_fš™e
+);
+
+225 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+226 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+227 

+__REDIRECT_NTH
+ (
+j1l
+, (), 
+__j1_fš™e
+);
+
+229 

+__REDIRECT_NTH
+ (
+j1l
+, (), 
+__j1l_fš™e
+);
+
+234 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+236 

+__REDIRECT_NTH
+ (
+y1
+, (), 
+__y1_fš™e
+);
+
+238 #ià
+defšed
+ 
+__USE_MISC
+ && defšed 
+__USE_ISOC99
+
+
+239 

+__REDIRECT_NTH
+ (
+y1f
+, (), 
+__y1f_fš™e
+);
+
+240 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+241 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+242 

+__REDIRECT_NTH
+ (
+y1l
+, (), 
+__y1_fš™e
+);
+
+244 

+__REDIRECT_NTH
+ (
+y1l
+, (), 
+__y1l_fš™e
+);
+
+249 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+251 

+__REDIRECT_NTH
+ (
+jn
+, (, ), 
+__jn_fš™e
+);
+
+253 #ià
+defšed
+ 
+__USE_MISC
+ && defšed 
+__USE_ISOC99
+
+
+254 

+__REDIRECT_NTH
+ (
+jnf
+, (, ), 
+__jnf_fš™e
+);
+
+255 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+256 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+257 

+__REDIRECT_NTH
+ (
+jÆ
+, (, ), 
+__jn_fš™e
+);
+
+259 

+__REDIRECT_NTH
+ (
+jÆ
+, (, ), 
+__jÆ_fš™e
+);
+
+264 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+266 

+__REDIRECT_NTH
+ (
+yn
+, (, ), 
+__yn_fš™e
+);
+
+268 #ià
+defšed
+ 
+__USE_MISC
+ && defšed 
+__USE_ISOC99
+
+
+269 

+__REDIRECT_NTH
+ (
+ynf
+, (, ), 
+__ynf_fš™e
+);
+
+270 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+271 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+272 

+__REDIRECT_NTH
+ (
+yÆ
+, (, ), 
+__yn_fš™e
+);
+
+274 

+__REDIRECT_NTH
+ (
+yÆ
+, (, ), 
+__yÆ_fš™e
+);
+
+279 #ifdeà
+__USE_MISC
+
+
+281 

+__REDIRECT_NTH
+ (
+lgamma_r
+, (, *), 
+__lgamma_r_fš™e
+);
+
+282 #ifdeà
+__USE_ISOC99
+
+
+283 

+__REDIRECT_NTH
+ (
+lgammaf_r
+, (, *), 
+__lgammaf_r_fš™e
+);
+
+284 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+285 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+286 

+__REDIRECT_NTH
+ (
+lgamm®_r
+, (, *),
+
+287 
+__lgamma_r_fš™e
+);
+
+289 

+__REDIRECT_NTH
+ (
+lgamm®_r
+, (, *),
+
+290 
+__lgamm®_r_fš™e
+);
+
+296 

+__lgamma_r_fš™e
+ (, *);
+
+297 

+__lgammaf_r_fš™e
+ (, *);
+
+298 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+299 

+__REDIRECT_NTH
+ (
+__lgamm®_r_fš™e
+, (, *),
+
+300 
+__lgamma_r_fš™e
+);
+
+302 

+__lgamm®_r_fš™e
+ (, *);
+
+305 #ià((
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_ISOC99
+) \
+
+306 && 
+defšed
+ 
+	g__ex‹º_®ways_šlše
+)
+
+308 
+__ex‹º_®ways_šlše
+ 
+__NTH
+ (
+	$lgamma
+ (
+__d
+))
+
+310 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+311  
+	`__lgamma_r_fš™e
+ (
+__d
+, &
+signgam
+);
+
+313 
+__loÿl_signgam
+ = 0;
+
+314  
+	`__lgamma_r_fš™e
+ (
+__d
+, &
+__loÿl_signgam
+);
+
+316 
+	}
+}
+
+318 #ià
+defšed
+ 
+__USE_ISOC99
+ && defšed 
+__ex‹º_®ways_šlše
+
+
+319 
+__ex‹º_®ways_šlše
+ 
+__NTH
+ (
+	$lgammaf
+ (
+__d
+))
+
+321 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+322  
+	`__lgammaf_r_fš™e
+ (
+__d
+, &
+signgam
+);
+
+324 
+__loÿl_signgam
+ = 0;
+
+325  
+	`__lgammaf_r_fš™e
+ (
+__d
+, &
+__loÿl_signgam
+);
+
+327 
+	}
+}
+
+328 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+329 
+__ex‹º_®ways_šlše
+ 
+__NTH
+ (
+	$lgamm®
+ (
+__d
+))
+
+331 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN
+
+
+332  
+	`__lgamm®_r_fš™e
+ (
+__d
+, &
+signgam
+);
+
+334 
+__loÿl_signgam
+ = 0;
+
+335  
+	`__lgamm®_r_fš™e
+ (
+__d
+, &
+__loÿl_signgam
+);
+
+337 
+	}
+}
+
+341 #ià((
+defšed
+ 
+__USE_MISC
+ || (defšed 
+__USE_XOPEN
+ && !defšed 
+__USE_XOPEN2K
+)) \
+
+342 && 
+defšed
+ 
+	g__ex‹º_®ways_šlše
+)
+
+344 
+__ex‹º_®ways_šlše
+ 
+__NTH
+ (
+	$gamma
+ (
+__d
+))
+
+346  
+	`__lgamma_r_fš™e
+ (
+__d
+, &
+signgam
+);
+
+347 
+	}
+}
+
+348 #ifdeà
+__USE_ISOC99
+
+
+349 
+__ex‹º_®ways_šlše
+ 
+__NTH
+ (
+	$gammaf
+ (
+__d
+))
+
+351  
+	`__lgammaf_r_fš™e
+ (
+__d
+, &
+signgam
+);
+
+352 
+	}
+}
+
+353 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+354 
+__ex‹º_®ways_šlše
+ 
+__NTH
+ (
+	$gamm®
+ (
+__d
+))
+
+356  
+	`__lgamm®_r_fš™e
+ (
+__d
+, &
+signgam
+);
+
+357 
+	}
+}
+
+363 

+__REDIRECT_NTH
+ (
+log
+, (), 
+__log_fš™e
+);
+
+364 #ifdeà
+__USE_ISOC99
+
+
+365 

+__REDIRECT_NTH
+ (
+logf
+, (), 
+__logf_fš™e
+);
+
+366 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+367 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+368 

+__REDIRECT_NTH
+ (
+logl
+, (), 
+__log_fš™e
+);
+
+370 

+__REDIRECT_NTH
+ (
+logl
+, (), 
+__logl_fš™e
+);
+
+376 

+__REDIRECT_NTH
+ (
+log10
+, (), 
+__log10_fš™e
+);
+
+377 #ifdeà
+__USE_ISOC99
+
+
+378 

+__REDIRECT_NTH
+ (
+log10f
+, (), 
+__log10f_fš™e
+);
+
+379 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+380 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+381 

+__REDIRECT_NTH
+ (
+log10l
+, (), 
+__log10_fš™e
+);
+
+383 

+__REDIRECT_NTH
+ (
+log10l
+, (), 
+__log10l_fš™e
+);
+
+388 #ifdeà
+__USE_ISOC99
+
+
+390 

+__REDIRECT_NTH
+ (
+log2
+, (), 
+__log2_fš™e
+);
+
+391 

+__REDIRECT_NTH
+ (
+log2f
+, (), 
+__log2f_fš™e
+);
+
+392 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+393 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+394 

+__REDIRECT_NTH
+ (
+log2l
+, (), 
+__log2_fš™e
+);
+
+396 

+__REDIRECT_NTH
+ (
+log2l
+, (), 
+__log2l_fš™e
+);
+
+402 

+__REDIRECT_NTH
+ (
+pow
+, (, ), 
+__pow_fš™e
+);
+
+403 #ifdeà
+__USE_ISOC99
+
+
+404 

+__REDIRECT_NTH
+ (
+powf
+, (, ), 
+__powf_fš™e
+);
+
+405 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+406 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+407 

+__REDIRECT_NTH
+ (
+powl
+, (, ),
+
+408 
+__pow_fš™e
+);
+
+410 

+__REDIRECT_NTH
+ (
+powl
+, (, ),
+
+411 
+__powl_fš™e
+);
+
+416 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_ISOC99
+
+
+418 

+__REDIRECT_NTH
+ (
+»mašd”
+, (, ), 
+__»mašd”_fš™e
+);
+
+420 #ifdeà
+__USE_ISOC99
+
+
+421 

+__REDIRECT_NTH
+ (
+»mašd”f
+, (, ), 
+__»mašd”f_fš™e
+);
+
+422 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+423 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+424 

+__REDIRECT_NTH
+ (
+»mašd”l
+, (, ),
+
+425 
+__»mašd”_fš™e
+);
+
+427 

+__REDIRECT_NTH
+ (
+»mašd”l
+, (, ),
+
+428 
+__»mašd”l_fš™e
+);
+
+433 #ià(
+defšed
+ 
+__USE_MISC
+ \
+
+434 || (
+defšed
+ 
+	g__USE_XOPEN_EXTENDED
+ && !defšed 
+	g__USE_XOPEN2K8
+))
+
+436 

+__REDIRECT_NTH
+ (
+sÿlb
+, (, ), 
+__sÿlb_fš™e
+);
+
+438 #ià
+defšed
+ 
+__USE_MISC
+ && defšed 
+__USE_ISOC99
+
+
+439 

+__REDIRECT_NTH
+ (
+sÿlbf
+, (, ), 
+__sÿlbf_fš™e
+);
+
+440 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+441 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+442 

+__REDIRECT_NTH
+ (
+sÿlbl
+, (, ),
+
+443 
+__sÿlb_fš™e
+);
+
+445 

+__REDIRECT_NTH
+ (
+sÿlbl
+, (, ),
+
+446 
+__sÿlbl_fš™e
+);
+
+452 

+__REDIRECT_NTH
+ (
+sšh
+, (), 
+__sšh_fš™e
+);
+
+453 #ifdeà
+__USE_ISOC99
+
+
+454 

+__REDIRECT_NTH
+ (
+sšhf
+, (), 
+__sšhf_fš™e
+);
+
+455 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+456 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+457 

+__REDIRECT_NTH
+ (
+sšhl
+, (), 
+__sšh_fš™e
+);
+
+459 

+__REDIRECT_NTH
+ (
+sšhl
+, (), 
+__sšhl_fš™e
+);
+
+465 

+__REDIRECT_NTH
+ (
+sq¹
+, (), 
+__sq¹_fš™e
+);
+
+466 #ifdeà
+__USE_ISOC99
+
+
+467 

+__REDIRECT_NTH
+ (
+sq¹f
+, (), 
+__sq¹f_fš™e
+);
+
+468 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+469 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+470 

+__REDIRECT_NTH
+ (
+sq¹l
+, (), 
+__sq¹_fš™e
+);
+
+472 

+__REDIRECT_NTH
+ (
+sq¹l
+, (), 
+__sq¹l_fš™e
+);
+
+477 #ià
+defšed
+ 
+__USE_ISOC99
+ && defšed 
+__ex‹º_®ways_šlše
+
+
+479 

+__gamma_r_fš™e
+ (, *);
+
+480 
+__ex‹º_®ways_šlše
+ 
+__NTH
+ (
+	$tgamma
+ (
+__d
+))
+
+482 
+__loÿl_signgam
+ = 0;
+
+483 
+__»s
+ = 
+	`__gamma_r_fš™e
+ (
+__d
+, &
+__loÿl_signgam
+);
+
+484  
+__loÿl_signgam
+ < 0 ? -
+__»s
+ : __res;
+
+485 
+	}
+}
+
+486 

+__gammaf_r_fš™e
+ (, *);
+
+487 
+__ex‹º_®ways_šlše
+ 
+__NTH
+ (
+	$tgammaf
+ (
+__d
+))
+
+489 
+__loÿl_signgam
+ = 0;
+
+490 
+__»s
+ = 
+	`__gammaf_r_fš™e
+ (
+__d
+, &
+__loÿl_signgam
+);
+
+491  
+__loÿl_signgam
+ < 0 ? -
+__»s
+ : __res;
+
+492 
+	}
+}
+
+493 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+494 

+__gamm®_r_fš™e
+ (, *);
+
+495 
+__ex‹º_®ways_šlše
+ 
+__NTH
+ (
+	$tgamm®
+ (
+__d
+))
+
+497 
+__loÿl_signgam
+ = 0;
+
+498 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+499 
+__»s
+ = 
+	`__gamma_r_fš™e
+ (
+__d
+, &
+__loÿl_signgam
+);
+
+501 
+__»s
+ = 
+	`__gamm®_r_fš™e
+ (
+__d
+, &
+__loÿl_signgam
+);
+
+503  
+__loÿl_signgam
+ < 0 ? -
+__»s
+ : __res;
+
+504 
+	}
+}
+
+	@/usr/include/bits/math-vector.h
+
+19 #iâdeà
+_MATH_H
+
+
+25 
+	~<b™s/libm-simd-deþ-¡ubs.h
+>
+
+27 #ià
+defšed
+ 
+__x86_64__
+ && defšed 
+__FAST_MATH__
+
+
+28 #ià
+defšed
+ 
+_OPENMP
+ && _OPENMP >= 201307
+
+30 
+	#__DECL_SIMD_x86_64
+ 
+	`_P¿gma
+ ("om°deþ¬simd‚Ùšb¿nch")
+
+	)
+
+31 #–ià
+__GNUC_PREREQ
+ (6,0)
+
+33 
+	#__DECL_SIMD_x86_64
+ 
+	`__©Œibu‹__
+ ((
+	`__simd__
+ ("nٚb¿nch")))
+
+	)
+
+36 #ifdeà
+__DECL_SIMD_x86_64
+
+
+37 #undeà
+__DECL_SIMD_cos
+
+
+38 
+	#__DECL_SIMD_cos
+ 
+__DECL_SIMD_x86_64
+
+
+	)
+
+39 #undeà
+__DECL_SIMD_cosf
+
+
+40 
+	#__DECL_SIMD_cosf
+ 
+__DECL_SIMD_x86_64
+
+
+	)
+
+41 #undeà
+__DECL_SIMD_sš
+
+
+42 
+	#__DECL_SIMD_sš
+ 
+__DECL_SIMD_x86_64
+
+
+	)
+
+43 #undeà
+__DECL_SIMD_sšf
+
+
+44 
+	#__DECL_SIMD_sšf
+ 
+__DECL_SIMD_x86_64
+
+
+	)
+
+45 #undeà
+__DECL_SIMD_sšcos
+
+
+46 
+	#__DECL_SIMD_sšcos
+ 
+__DECL_SIMD_x86_64
+
+
+	)
+
+47 #undeà
+__DECL_SIMD_sšcosf
+
+
+48 
+	#__DECL_SIMD_sšcosf
+ 
+__DECL_SIMD_x86_64
+
+
+	)
+
+49 #undeà
+__DECL_SIMD_log
+
+
+50 
+	#__DECL_SIMD_log
+ 
+__DECL_SIMD_x86_64
+
+
+	)
+
+51 #undeà
+__DECL_SIMD_logf
+
+
+52 
+	#__DECL_SIMD_logf
+ 
+__DECL_SIMD_x86_64
+
+
+	)
+
+53 #undeà
+__DECL_SIMD_exp
+
+
+54 
+	#__DECL_SIMD_exp
+ 
+__DECL_SIMD_x86_64
+
+
+	)
+
+55 #undeà
+__DECL_SIMD_expf
+
+
+56 
+	#__DECL_SIMD_expf
+ 
+__DECL_SIMD_x86_64
+
+
+	)
+
+57 #undeà
+__DECL_SIMD_pow
+
+
+58 
+	#__DECL_SIMD_pow
+ 
+__DECL_SIMD_x86_64
+
+
+	)
+
+59 #undeà
+__DECL_SIMD_powf
+
+
+60 
+	#__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š
+,, (
+_MdoubË_
+ 
+__x
+));
+
+58 
+__MATHCALL
+ (
+©ª
+,, (
+_MdoubË_
+ 
+__x
+));
+
+60 
+__MATHCALL
+ (
+©ª2
+,, (
+_MdoubË_
+ 
+__y
+, _MdoubË_ 
+__x
+));
+
+63 
+__MATHCALL_VEC
+ (
+cos
+,, (
+_MdoubË_
+ 
+__x
+));
+
+65 
+__MATHCALL_VEC
+ (
+sš
+,, (
+_MdoubË_
+ 
+__x
+));
+
+67 
+__MATHCALL
+ (
+n
+,, (
+_MdoubË_
+ 
+__x
+));
+
+72 
+__MATHCALL
+ (
+cosh
+,, (
+_MdoubË_
+ 
+__x
+));
+
+74 
+__MATHCALL
+ (
+sšh
+,, (
+_MdoubË_
+ 
+__x
+));
+
+76 
+__MATHCALL
+ (
+nh
+,, (
+_MdoubË_
+ 
+__x
+));
+
+77 
+	g_MdoubË_END_NAMESPACE
+
+
+79 #ifdeà
+__USE_GNU
+
+
+81 
+__MATHDECL_VEC
+ (,
+sšcos
+,,
+
+82 (
+_MdoubË_
+ 
+__x
+, _MdoubË_ *
+__sšx
+, _MdoubË_ *
+__cosx
+));
+
+85 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_ISOC99
+
+
+86 
+__BEGIN_NAMESPACE_C99
+
+
+88 
+__MATHCALL
+ (
+acosh
+,, (
+_MdoubË_
+ 
+__x
+));
+
+90 
+__MATHCALL
+ (
+asšh
+,, (
+_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
+, *
+__expڒt
+));
+
+106 
+__MATHCALL
+ (
+ldexp
+,, (
+_MdoubË_
+ 
+__x
+, 
+__expڒt
+));
+
+109 
+__MATHCALL_VEC
+ (
+log
+,, (
+_MdoubË_
+ 
+__x
+));
+
+112 
+__MATHCALL
+ (
+log10
+,, (
+_MdoubË_
+ 
+__x
+));
+
+115 
+__MATHCALL
+ (
+modf
+,, (
+_MdoubË_
+ 
+__x
+, _MdoubË_ *
+__Œ
+)è
+__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šed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__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šed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_ISOC99
+
+
+160 
+__BEGIN_NAMESPACE_C99
+
+
+162 
+__MATHCALL
+ (
+hypÙ
+,, (
+_MdoubË_
+ 
+__x
+, _MdoubË_ 
+__y
+));
+
+163 
+	g__END_NAMESPACE_C99
+
+
+166 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_ISOC99
+
+
+167 
+__BEGIN_NAMESPACE_C99
+
+
+169 
+__MATHCALL
+ (
+cb¹
+,, (
+_MdoubË_
+ 
+__x
+));
+
+170 
+	g__END_NAMESPACE_C99
+
+
+176 
+_MdoubË_BEGIN_NAMESPACE
+
+
+178 
+__MATHCALLX
+ (
+ûž
+,, (
+_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
+ (,
+__isšf
+,, (
+_MdoubË_
+ 
+__v®ue
+)è
+__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+195 
+__MATHDECL_1
+ (,
+__fš™e
+,, (
+_MdoubË_
+ 
+__v®ue
+)è
+__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+196 
+	g_MdoubË_END_NAMESPACE
+
+
+198 #ifdeà
+__USE_MISC
+
+
+199 #ià(!
+defšed
+ 
+__ýlu¥lus
+ \
+
+200 || 
+	g__ýlu¥lus
+ < 201103L \
+
+201 || 
+	g__MATH_DECLARING_DOUBLE
+ == 0)
+
+204 
+__MATHDECL_1
+ (,
+isšf
+,, (
+_MdoubË_
+ 
+__v®ue
+)è
+__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+208 
+__MATHDECL_1
+ (,
+fš™e
+,, (
+_MdoubË_
+ 
+__v®ue
+)è
+__©Œibu‹__
+ ((
+__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Ú¡ *
+__gb
+), (
+__cÚ¡__
+));
+
+229 
+	g__END_NAMESPACE_C99
+
+
+234 
+__MATHDECL_1
+ (,
+__i¢ª
+,, (
+_MdoubË_
+ 
+__v®ue
+)è
+__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+236 #ià
+defšed
+ 
+__USE_MISC
+ || (defšed 
+__USE_XOPEN
+ && !defšed 
+__USE_XOPEN2K
+)
+
+237 #ià(!
+defšed
+ 
+__ýlu¥lus
+ \
+
+238 || 
+	g__ýlu¥lus
+ < 201103L \
+
+239 || 
+	g__MATH_DECLARING_DOUBLE
+ == 0)
+
+241 
+__MATHDECL_1
+ (,
+i¢ª
+,, (
+_MdoubË_
+ 
+__v®ue
+)è
+__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+245 #ià
+defšed
+ 
+__USE_MISC
+ || (defšed 
+__USE_XOPEN
+ && 
+__MATH_DECLARING_DOUBLE
+)
+
+247 
+__MATHCALL
+ (
+j0
+,, (
+_MdoubË_
+));
+
+248 
+__MATHCALL
+ (
+j1
+,, (
+_MdoubË_
+));
+
+249 
+__MATHCALL
+ (
+jn
+,, (, 
+_MdoubË_
+));
+
+250 
+__MATHCALL
+ (
+y0
+,, (
+_MdoubË_
+));
+
+251 
+__MATHCALL
+ (
+y1
+,, (
+_MdoubË_
+));
+
+252 
+__MATHCALL
+ (
+yn
+,, (, 
+_MdoubË_
+));
+
+256 #ià
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_ISOC99
+
+
+257 
+__BEGIN_NAMESPACE_C99
+
+
+259 
+__MATHCALL
+ (
+”f
+,, (
+_MdoubË_
+));
+
+260 
+__MATHCALL
+ (
+”fc
+,, (
+_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šed
+ 
+__USE_MISC
+ || (defšed 
+__USE_XOPEN
+ && !defšed 
+__USE_XOPEN2K
+)
+
+274 
+__MATHCALL
+ (
+gamma
+,, (
+_MdoubË_
+));
+
+277 #ifdeà
+__USE_MISC
+
+
+281 
+__MATHCALL
+ (
+lgamma
+,
+_r
+, (
+_MdoubË_
+, *
+__signgamp
+));
+
+285 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_ISOC99
+
+
+286 
+__BEGIN_NAMESPACE_C99
+
+
+289 
+__MATHCALL
+ (
+ršt
+,, (
+_MdoubË_
+ 
+__x
+));
+
+292 
+__MATHCALLX
+ (
+Ãxá”
+,, (
+_MdoubË_
+ 
+__x
+, _MdoubË_ 
+__y
+), (
+__cÚ¡__
+));
+
+293 #ià
+defšed
+ 
+__USE_ISOC99
+ && !defšed 
+__LDBL_COMPAT
+
+
+294 
+__MATHCALLX
+ (
+Ãx‰ow¬d
+,, (
+_MdoubË_
+ 
+__x
+, 
+__y
+), (
+__cÚ¡__
+));
+
+298 
+__MATHCALL
+ (
+»mašd”
+,, (
+_MdoubË_
+ 
+__x
+, _MdoubË_ 
+__y
+));
+
+300 #ifdeà
+__USE_ISOC99
+
+
+302 
+__MATHCALL
+ (
+sÿlbn
+,, (
+_MdoubË_
+ 
+__x
+, 
+__n
+));
+
+306 
+__MATHDECL
+ (,
+žogb
+,, (
+_MdoubË_
+ 
+__x
+));
+
+309 #ifdeà
+__USE_ISOC99
+
+
+311 
+__MATHCALL
+ (
+sÿlbÊ
+,, (
+_MdoubË_
+ 
+__x
+, 
+__n
+));
+
+315 
+__MATHCALL
+ (
+ìbyšt
+,, (
+_MdoubË_
+ 
+__x
+));
+
+319 
+__MATHCALLX
+ (
+round
+,, (
+_MdoubË_
+ 
+__x
+), (
+__cÚ¡__
+));
+
+323 
+__MATHCALLX
+ (
+Œunc
+,, (
+_MdoubË_
+ 
+__x
+), (
+__cÚ¡__
+));
+
+328 
+__MATHCALL
+ (
+»mquo
+,, (
+_MdoubË_
+ 
+__x
+, _MdoubË_ 
+__y
+, *
+__quo
+));
+
+335 
+__MATHDECL
+ (,
+̚t
+,, (
+_MdoubË_
+ 
+__x
+));
+
+336 
+__ex‹nsiÚ__
+
+
+337 
+__MATHDECL
+ (,
+Îršt
+,, (
+_MdoubË_
+ 
+__x
+));
+
+341 
+__MATHDECL
+ (,
+Ìound
+,, (
+_MdoubË_
+ 
+__x
+));
+
+342 
+__ex‹nsiÚ__
+
+
+343 
+__MATHDECL
+ (,
+Îround
+,, (
+_MdoubË_
+ 
+__x
+));
+
+347 
+__MATHCALL
+ (
+fdim
+,, (
+_MdoubË_
+ 
+__x
+, _MdoubË_ 
+__y
+));
+
+350 
+__MATHCALLX
+ (
+fmax
+,, (
+_MdoubË_
+ 
+__x
+, _MdoubË_ 
+__y
+), (
+__cÚ¡__
+));
+
+353 
+__MATHCALLX
+ (
+fmš
+,, (
+_MdoubË_
+ 
+__x
+, _MdoubË_ 
+__y
+), (
+__cÚ¡__
+));
+
+357 
+__MATHDECL_1
+ (, 
+__åþassify
+,, (
+_MdoubË_
+ 
+__v®ue
+))
+
+358 
+__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+361 
+__MATHDECL_1
+ (, 
+__signb™
+,, (
+_MdoubË_
+ 
+__v®ue
+))
+
+362 
+__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+366 
+__MATHCALL
+ (
+fma
+,, (
+_MdoubË_
+ 
+__x
+, _MdoubË_ 
+__y
+, _MdoubË_ 
+__z
+));
+
+369 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_ISOC99
+
+
+370 
+	g__END_NAMESPACE_C99
+
+
+373 #ifdeà
+__USE_GNU
+
+
+375 
+__MATHDECL_1
+ (, 
+__issigÇlšg
+,, (
+_MdoubË_
+ 
+__v®ue
+))
+
+376 
+__©Œibu‹__
+ ((
+__cÚ¡__
+));
+
+379 #ià
+defšed
+ 
+__USE_MISC
+ || (defšed 
+__USE_XOPEN_EXTENDED
+ \
+
+380 && 
+	g__MATH_DECLARING_DOUBLE
+ \
+
+381 && !
+defšed
+ 
+	g__USE_XOPEN2K8
+)
+
+383 
+__MATHCALL
+ (
+sÿlb
+,, (
+_MdoubË_
+ 
+__x
+, _MdoubË_ 
+__n
+));
+
+	@/usr/include/bits/mathdef.h
+
+18 #ià!
+defšed
+ 
+_MATH_H
+ && !defšed 
+_COMPLEX_H
+
+
+22 #ià
+defšed
+ 
+__USE_ISOC99
+ && defšed 
+_MATH_H
+ && !defšed 
+_MATH_H_MATHDEF
+
+
+23 
+	#_MATH_H_MATHDEF
+ 1
+
+	)
+
+25 #ià
+defšed
+ 
+__x86_64__
+ || (defšed 
+__FLT_EVAL_METHOD__
+ && __FLT_EVAL_METHOD__ == 0)
+
+28 
+	tæßt_t
+;
+
+29 
+	tdoubË_t
+;
+
+35 
+	tæßt_t
+;
+
+37 
+	tdoubË_t
+;
+
+42 
+	#FP_ILOGB0
+ (-2147483647 - 1)
+
+	)
+
+43 
+	#FP_ILOGBNAN
+ (-2147483647 - 1)
+
+	)
+
+47 #ifdeà
+__FP_FAST_FMA
+
+
+48 
+	#FP_FAST_FMA
+ 1
+
+	)
+
+51 #ifdeà
+__FP_FAST_FMAF
+
+
+52 
+	#FP_FAST_FMAF
+ 1
+
+	)
+
+55 #ifdeà
+__FP_FAST_FMAL
+
+
+56 
+	#FP_FAST_FMAL
+ 1
+
+	)
+
+	@/usr/include/bits/mathinline.h
+
+19 #iâdeà
+_MATH_H
+
+
+23 #iâdeà
+__ex‹º_®ways_šlše
+
+
+24 
+	#__MATH_INLINE
+ 
+__šlše
+
+
+	)
+
+26 
+	#__MATH_INLINE
+ 
+__ex‹º_®ways_šlše
+
+
+	)
+
+30 #ià
+defšed
+ 
+__USE_ISOC99
+ && defšed 
+__GNUC__
+ && __GNUC__ >= 2
+
+32 #ià!
+__GNUC_PREREQ
+ (2,97)
+
+37 #undeà
+isg»©”
+
+
+38 #undeà
+isg»©”equ®
+
+
+39 #undeà
+i¦ess
+
+
+40 #undeà
+i¦es£qu®
+
+
+41 #undeà
+i¦essg»©”
+
+
+42 #undeà
+isunÜd”ed
+
+
+43 #ifdeà
+__i686__
+
+
+46 
+	#isg»©”
+(
+x
+, 
+y
+) \
+
+47 ({ 
+__»suÉ
+; \
+
+48 
+	`__asm__
+ ("fucomip %%st(1), %%st; seta %%al" \
+
+49 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st"); \
+
+50 
+__»suÉ
+; })
+
+	)
+
+51 
+	#isg»©”equ®
+(
+x
+, 
+y
+) \
+
+52 ({ 
+__»suÉ
+; \
+
+53 
+	`__asm__
+ ("fucomip %%st(1), %%st; setae %%al" \
+
+54 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st"); \
+
+55 
+__»suÉ
+; })
+
+	)
+
+57 
+	#i¦ess
+(
+x
+, 
+y
+) \
+
+58 ({ 
+__»suÉ
+; \
+
+59 
+	`__asm__
+ ("fucomip %%st(1), %%st; seta %%al" \
+
+60 : "÷" (
+__»suÉ
+è: "u" (
+x
+), "t" (
+y
+) : "cc", "st"); \
+
+61 
+__»suÉ
+; })
+
+	)
+
+63 
+	#i¦es£qu®
+(
+x
+, 
+y
+) \
+
+64 ({ 
+__»suÉ
+; \
+
+65 
+	`__asm__
+ ("fucomip %%st(1), %%st; setae %%al" \
+
+66 : "÷" (
+__»suÉ
+è: "u" (
+x
+), "t" (
+y
+) : "cc", "st"); \
+
+67 
+__»suÉ
+; })
+
+	)
+
+69 
+	#i¦essg»©”
+(
+x
+, 
+y
+) \
+
+70 ({ 
+__»suÉ
+; \
+
+71 
+	`__asm__
+ ("fucomip %%st(1), %%st; setne %%al" \
+
+72 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st"); \
+
+73 
+__»suÉ
+; })
+
+	)
+
+75 
+	#isunÜd”ed
+(
+x
+, 
+y
+) \
+
+76 ({ 
+__»suÉ
+; \
+
+77 
+	`__asm__
+ ("fucomip %%st(1), %%st; setp %%al" \
+
+78 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st"); \
+
+79 
+__»suÉ
+; })
+
+	)
+
+82 
+	#isg»©”
+(
+x
+, 
+y
+) \
+
+83 ({ 
+__»suÉ
+; \
+
+84 
+	`__asm__
+ ("fucompp; fnstsw;estb $0x45, %%ah; setz %%al" \
+
+85 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st", "st(1)"); \
+
+86 
+__»suÉ
+; })
+
+	)
+
+88 
+	#isg»©”equ®
+(
+x
+, 
+y
+) \
+
+89 ({ 
+__»suÉ
+; \
+
+90 
+	`__asm__
+ ("fucompp; fnstsw;estb $0x05, %%ah; setz %%al" \
+
+91 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st", "st(1)"); \
+
+92 
+__»suÉ
+; })
+
+	)
+
+94 
+	#i¦ess
+(
+x
+, 
+y
+) \
+
+95 ({ 
+__»suÉ
+; \
+
+96 
+	`__asm__
+ ("fucompp; fnstsw;estb $0x45, %%ah; setz %%al" \
+
+97 : "÷" (
+__»suÉ
+è: "u" (
+x
+), "t" (
+y
+) : "cc", "st", "st(1)"); \
+
+98 
+__»suÉ
+; })
+
+	)
+
+100 
+	#i¦es£qu®
+(
+x
+, 
+y
+) \
+
+101 ({ 
+__»suÉ
+; \
+
+102 
+	`__asm__
+ ("fucompp; fnstsw;estb $0x05, %%ah; setz %%al" \
+
+103 : "÷" (
+__»suÉ
+è: "u" (
+x
+), "t" (
+y
+) : "cc", "st", "st(1)"); \
+
+104 
+__»suÉ
+; })
+
+	)
+
+106 
+	#i¦essg»©”
+(
+x
+, 
+y
+) \
+
+107 ({ 
+__»suÉ
+; \
+
+108 
+	`__asm__
+ ("fucompp; fnstsw;estb $0x44, %%ah; setz %%al" \
+
+109 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st", "st(1)"); \
+
+110 
+__»suÉ
+; })
+
+	)
+
+112 
+	#isunÜd”ed
+(
+x
+, 
+y
+) \
+
+113 ({ 
+__»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
+ 
+
+127 
+__NTH
+ (
+	$__signb™f
+ (
+__x
+))
+
+129 #ifdeà
+__SSE2_MATH__
+
+
+130 
+__m
+;
+
+131 
+	`__asm
+ ("pmovmskb %1, %0" : "ô" (
+__m
+è: "x" (
+__x
+));
+
+132  (
+__m
+ & 0x8) != 0;
+
+134 
+__ex‹nsiÚ__
+ uniÚ { 
+__f
+; 
+__i
+; } 
+__u
+ = { __f: 
+__x
+ };
+
+135  
+__u
+.
+__i
+ < 0;
+
+137 
+	}
+}
+
+138 
+__MATH_INLINE
+ 
+
+139 
+__NTH
+ (
+	$__signb™
+ (
+__x
+))
+
+141 #ifdeà
+__SSE2_MATH__
+
+
+142 
+__m
+;
+
+143 
+	`__asm
+ ("pmovmskb %1, %0" : "ô" (
+__m
+è: "x" (
+__x
+));
+
+144  (
+__m
+ & 0x80) != 0;
+
+146 
+__ex‹nsiÚ__
+ uniÚ { 
+__d
+; 
+__i
+[2]; } 
+__u
+ = { __d: 
+__x
+ };
+
+147  
+__u
+.
+__i
+[1] < 0;
+
+149 
+	}
+}
+
+150 
+__MATH_INLINE
+ 
+
+151 
+__NTH
+ (
+	$__signb™l
+ (
+__x
+))
+
+153 
+__ex‹nsiÚ__
+ uniÚ { 
+__l
+; 
+__i
+[3]; } 
+__u
+ = { __l: 
+__x
+ };
+
+154  (
+__u
+.
+__i
+[2] & 0x8000) != 0;
+
+155 
+	}
+}
+
+157 
+	g__END_NAMESPACE_C99
+
+
+164 #ià
+__GNUC_PREREQ
+ (2, 8)
+
+165 #ià!
+__GNUC_PREREQ
+ (3, 4è&& !
+defšed
+ 
+__NO_MATH_INLINES
+ \
+
+166 && 
+defšed
+ 
+	g__OPTIMIZE__
+
+
+170 #ifdeà
+__USE_ISOC99
+
+
+171 
+	g__BEGIN_NAMESPACE_C99
+
+
+174 #ifdeà
+__SSE_MATH__
+
+
+175 
+__MATH_INLINE
+ 
+
+176 
+__NTH
+ (
+	$̚tf
+ (
+__x
+))
+
+178 
+__»s
+;
+
+183 
+__asm
+ 
+	`__vÞ©že__
+ ("cvtss2s˜%1, %0" : "ô" (
+__»s
+è: "xm" (
+__x
+));
+
+184  
+__»s
+;
+
+185 
+	}
+}
+
+187 #ifdeà
+__SSE2_MATH__
+
+
+188 
+__MATH_INLINE
+ 
+
+189 
+__NTH
+ (
+	$̚t
+ (
+__x
+))
+
+191 
+__»s
+;
+
+196 
+__asm
+ 
+	`__vÞ©že__
+ ("cvtsd2s˜%1, %0" : "ô" (
+__»s
+è: "xm" (
+__x
+));
+
+197  
+__»s
+;
+
+198 
+	}
+}
+
+200 #ifdeà
+__x86_64__
+
+
+201 
+__ex‹nsiÚ__
+
+
+202 
+__MATH_INLINE
+ 
+
+203 
+__NTH
+ (
+	$Îrštf
+ (
+__x
+))
+
+205 
+__»s
+;
+
+210 
+__asm
+ 
+	`__vÞ©že__
+ ("cvtss2s˜%1, %0" : "ô" (
+__»s
+è: "xm" (
+__x
+));
+
+211  
+__»s
+;
+
+212 
+	}
+}
+
+213 
+__ex‹nsiÚ__
+
+
+214 
+__MATH_INLINE
+ 
+
+215 
+__NTH
+ (
+	$Îršt
+ (
+__x
+))
+
+217 
+__»s
+;
+
+222 
+__asm
+ 
+	`__vÞ©že__
+ ("cvtsd2s˜%1, %0" : "ô" (
+__»s
+è: "xm" (
+__x
+));
+
+223  
+__»s
+;
+
+224 
+	}
+}
+
+227 #ià
+defšed
+ 
+__FINITE_MATH_ONLY__
+ && __FINITE_MATH_ONLY__ > 0 \
+
+228 && 
+defšed
+ 
+__SSE2_MATH__
+
+
+230 
+__MATH_INLINE
+ 
+
+231 
+__NTH
+ (
+	$fmaxf
+ (
+__x
+, 
+__y
+))
+
+233 #ifdeà
+__AVX__
+
+
+234 
+__»s
+;
+
+235 
+	`__asm
+ ("vmaxs %2, %1, %0" : "=x" (
+__»s
+è: "x" (
+x
+), "xm" (
+__y
+));
+
+236  
+__»s
+;
+
+238 
+	`__asm
+ ("maxs %1, %0" : "+x" (
+__x
+è: "xm" (
+__y
+));
+
+239  
+__x
+;
+
+241 
+	}
+}
+
+242 
+__MATH_INLINE
+ 
+
+243 
+__NTH
+ (
+	$fmax
+ (
+__x
+, 
+__y
+))
+
+245 #ifdeà
+__AVX__
+
+
+246 
+__»s
+;
+
+247 
+	`__asm
+ ("vmaxsd %2, %1, %0" : "=x" (
+__»s
+è: "x" (
+x
+), "xm" (
+__y
+));
+
+248  
+__»s
+;
+
+250 
+	`__asm
+ ("maxsd %1, %0" : "+x" (
+__x
+è: "xm" (
+__y
+));
+
+251  
+__x
+;
+
+253 
+	}
+}
+
+256 
+__MATH_INLINE
+ 
+
+257 
+__NTH
+ (
+	$fmšf
+ (
+__x
+, 
+__y
+))
+
+259 #ifdeà
+__AVX__
+
+
+260 
+__»s
+;
+
+261 
+	`__asm
+ ("vmšs %2, %1, %0" : "=x" (
+__»s
+è: "x" (
+x
+), "xm" (
+__y
+));
+
+262  
+__»s
+;
+
+264 
+	`__asm
+ ("mšs %1, %0" : "+x" (
+__x
+è: "xm" (
+__y
+));
+
+265  
+__x
+;
+
+267 
+	}
+}
+
+268 
+__MATH_INLINE
+ 
+
+269 
+__NTH
+ (
+	$fmš
+ (
+__x
+, 
+__y
+))
+
+271 #ifdeà
+__AVX__
+
+
+272 
+__»s
+;
+
+273 
+	`__asm
+ ("vmšsd %2, %1, %0" : "=x" (
+__»s
+è: "x" (
+x
+), "xm" (
+__y
+));
+
+274  
+__»s
+;
+
+276 
+	`__asm
+ ("mšsd %1, %0" : "+x" (
+__x
+è: "xm" (
+__y
+));
+
+277  
+__x
+;
+
+279 
+	}
+}
+
+282 
+	g__END_NAMESPACE_C99
+
+
+285 #ià
+defšed
+ 
+__SSE4_1__
+ && defšed 
+__SSE2_MATH__
+
+
+286 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_ISOC99
+
+
+287 
+__BEGIN_NAMESPACE_C99
+
+
+290 
+__MATH_INLINE
+ 
+
+291 
+__NTH
+ (
+	$ršt
+ (
+__x
+))
+
+293 
+__»s
+;
+
+298 
+__asm
+ 
+	`__vÞ©že__
+ ("roundsd $4, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+299  
+__»s
+;
+
+300 
+	}
+}
+
+301 
+__MATH_INLINE
+ 
+
+302 
+__NTH
+ (
+	$rštf
+ (
+__x
+))
+
+304 
+__»s
+;
+
+309 
+__asm
+ 
+	`__vÞ©že__
+ ("rounds $4, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+310  
+__»s
+;
+
+311 
+	}
+}
+
+313 #ifdeà
+__USE_ISOC99
+
+
+315 
+__MATH_INLINE
+ 
+
+316 
+__NTH
+ (
+	$ìbyšt
+ (
+__x
+))
+
+318 
+__»s
+;
+
+323 
+__asm
+ 
+	`__vÞ©že__
+ ("roundsd $0xc, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+324  
+__»s
+;
+
+325 
+	}
+}
+
+326 
+__MATH_INLINE
+ 
+
+327 
+__NTH
+ (
+	$ìbyštf
+ (
+__x
+))
+
+329 
+__»s
+;
+
+334 
+__asm
+ 
+	`__vÞ©že__
+ ("rounds $0xc, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+335  
+__»s
+;
+
+336 
+	}
+}
+
+339 
+	g__END_NAMESPACE_C99
+
+
+342 
+__BEGIN_NAMESPACE_STD
+
+
+344 
+__MATH_INLINE
+ 
+
+345 
+__NTH
+ (
+	$ûž
+ (
+__x
+))
+
+347 
+__»s
+;
+
+348 
+	`__asm
+ ("roundsd $2, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+349  
+__»s
+;
+
+350 
+	}
+}
+
+351 
+__END_NAMESPACE_STD
+
+
+353 
+__BEGIN_NAMESPACE_C99
+
+
+354 
+__MATH_INLINE
+ 
+
+355 
+__NTH
+ (
+	$ûžf
+ (
+__x
+))
+
+357 
+__»s
+;
+
+358 
+	`__asm
+ ("rounds $2, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+359  
+__»s
+;
+
+360 
+	}
+}
+
+361 
+__END_NAMESPACE_C99
+
+
+363 
+__BEGIN_NAMESPACE_STD
+
+
+365 
+__MATH_INLINE
+ 
+
+366 
+__NTH
+ (
+	$æoÜ
+ (
+__x
+))
+
+368 
+__»s
+;
+
+369 
+	`__asm
+ ("roundsd $1, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+370  
+__»s
+;
+
+371 
+	}
+}
+
+372 
+__END_NAMESPACE_STD
+
+
+374 
+__BEGIN_NAMESPACE_C99
+
+
+375 
+__MATH_INLINE
+ 
+
+376 
+__NTH
+ (
+	$æoÜf
+ (
+__x
+))
+
+378 
+__»s
+;
+
+379 
+	`__asm
+ ("rounds $1, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+380  
+__»s
+;
+
+381 
+	}
+}
+
+382 
+	g__END_NAMESPACE_C99
+
+
+390 #ià!
+defšed
+ 
+__SSE2_MATH__
+ && !defšed 
+__x86_64__
+
+
+391 #ià((!
+defšed
+ 
+__NO_MATH_INLINES
+ || defšed 
+__LIBC_INTERNAL_MATH_INLINES
+) \
+
+392 && 
+defšed
+ 
+	g__OPTIMIZE__
+)
+
+396 #undeà
+m©h_”rhªdlšg
+
+
+405 #ifdeà
+__USE_ISOC99
+
+
+406 
+	#__šlše_m©hÝ
+(
+func
+, 
+Ý
+) \
+
+407 
+	`__šlše_m©hÝ_
+ (, 
+func
+, 
+Ý
+) \
+
+408 
+	`__šlše_m©hÝ_
+ (, 
+	`__CONCAT
+(
+func
+,
+f
+), 
+Ý
+) \
+
+409 
+	`__šlše_m©hÝ_
+ (, 
+	`__CONCAT
+(
+func
+,
+l
+), 
+Ý
+)
+
+	)
+
+410 
+	#__šlše_m©hÝNP
+(
+func
+, 
+Ý
+) \
+
+411 
+	`__šlše_m©hÝNP_
+ (, 
+func
+, 
+Ý
+) \
+
+412 
+	`__šlše_m©hÝNP_
+ (, 
+	`__CONCAT
+(
+func
+,
+f
+), 
+Ý
+) \
+
+413 
+	`__šlše_m©hÝNP_
+ (, 
+	`__CONCAT
+(
+func
+,
+l
+), 
+Ý
+)
+
+	)
+
+415 
+	#__šlše_m©hÝ
+(
+func
+, 
+Ý
+) \
+
+416 
+	`__šlše_m©hÝ_
+ (, 
+func
+, 
+Ý
+)
+
+	)
+
+417 
+	#__šlše_m©hÝNP
+(
+func
+, 
+Ý
+) \
+
+418 
+	`__šlše_m©hÝNP_
+ (, 
+func
+, 
+Ý
+)
+
+	)
+
+421 
+	#__šlše_m©hÝ_
+(
+æßt_ty³
+, 
+func
+, 
+Ý
+) \
+
+422 
+	`__šlše_m©hÝ_deþ_
+ (
+æßt_ty³
+, 
+func
+, 
+Ý
+, "0" (
+__x
+))
+
+	)
+
+423 
+	#__šlše_m©hÝNP_
+(
+æßt_ty³
+, 
+func
+, 
+Ý
+) \
+
+424 
+	`__šlše_m©hÝ_deþNP_
+ (
+æßt_ty³
+, 
+func
+, 
+Ý
+, "0" (
+__x
+))
+
+	)
+
+427 #ifdeà
+__USE_ISOC99
+
+
+428 
+	#__šlše_m©hÝ_deþ
+(
+func
+, 
+Ý
+, 
+·¿ms
+...) \
+
+429 
+	`__šlše_m©hÝ_deþ_
+ (, 
+func
+, 
+Ý
+, 
+·¿ms
+) \
+
+430 
+	`__šlše_m©hÝ_deþ_
+ (, 
+	`__CONCAT
+(
+func
+,
+f
+), 
+Ý
+, 
+·¿ms
+) \
+
+431 
+	`__šlše_m©hÝ_deþ_
+ (, 
+	`__CONCAT
+(
+func
+,
+l
+), 
+Ý
+, 
+·¿ms
+)
+
+	)
+
+432 
+	#__šlše_m©hÝ_deþNP
+(
+func
+, 
+Ý
+, 
+·¿ms
+...) \
+
+433 
+	`__šlše_m©hÝ_deþNP_
+ (, 
+func
+, 
+Ý
+, 
+·¿ms
+) \
+
+434 
+	`__šlše_m©hÝ_deþNP_
+ (, 
+	`__CONCAT
+(
+func
+,
+f
+), 
+Ý
+, 
+·¿ms
+) \
+
+435 
+	`__šlše_m©hÝ_deþNP_
+ (, 
+	`__CONCAT
+(
+func
+,
+l
+), 
+Ý
+, 
+·¿ms
+)
+
+	)
+
+437 
+	#__šlše_m©hÝ_deþ
+(
+func
+, 
+Ý
+, 
+·¿ms
+...) \
+
+438 
+	`__šlše_m©hÝ_deþ_
+ (, 
+func
+, 
+Ý
+, 
+·¿ms
+)
+
+	)
+
+439 
+	#__šlše_m©hÝ_deþNP
+(
+func
+, 
+Ý
+, 
+·¿ms
+...) \
+
+440 
+	`__šlše_m©hÝ_deþNP_
+ (, 
+func
+, 
+Ý
+, 
+·¿ms
+)
+
+	)
+
+443 
+	#__šlše_m©hÝ_deþ_
+(
+æßt_ty³
+, 
+func
+, 
+Ý
+, 
+·¿ms
+...) \
+
+444 
+__MATH_INLINE
+ 
+æßt_ty³
+ 
+	`func
+ (æßt_ty³è
+__THROW
+; \
+
+445 
+	`__šlše_m©hÝ_deþNP_
+ (
+æßt_ty³
+, 
+func
+, 
+Ý
+, 
+·¿ms
+)
+
+	)
+
+447 
+	#__šlše_m©hÝ_deþNP_
+(
+æßt_ty³
+, 
+func
+, 
+Ý
+, 
+·¿ms
+...) \
+
+448 
+__MATH_INLINE
+ 
+æßt_ty³
+ 
+	`__NTH
+ (
+	`func
+ (æßt_ty³ 
+__x
+)) \
+
+450 
+æßt_ty³
+ 
+__»suÉ
+; \
+
+451 
+__asm
+ 
+	`__vÞ©že__
+ (
+Ý
+ : "ñ" (
+__»suÉ
+è: 
+·¿ms
+); \
+
+452  
+__»suÉ
+; \
+
+453 }
+
+	)
+
+456 #ifdeà
+__USE_ISOC99
+
+
+457 
+	#__šlše_m©hcode
+(
+func
+, 
+¬g
+, 
+code
+) \
+
+458 
+	`__šlše_m©hcode_
+ (, 
+func
+, 
+¬g
+, 
+code
+) \
+
+459 
+	`__šlše_m©hcode_
+ (, 
+	`__CONCAT
+(
+func
+,
+f
+), 
+¬g
+, 
+code
+) \
+
+460 
+	`__šlše_m©hcode_
+ (, 
+	`__CONCAT
+(
+func
+,
+l
+), 
+¬g
+, 
+code
+)
+
+	)
+
+461 
+	#__šlše_m©hcodeNP
+(
+func
+, 
+¬g
+, 
+code
+) \
+
+462 
+	`__šlše_m©hcodeNP_
+ (, 
+func
+, 
+¬g
+, 
+code
+) \
+
+463 
+	`__šlše_m©hcodeNP_
+ (, 
+	`__CONCAT
+(
+func
+,
+f
+), 
+¬g
+, 
+code
+) \
+
+464 
+	`__šlše_m©hcodeNP_
+ (, 
+	`__CONCAT
+(
+func
+,
+l
+), 
+¬g
+, 
+code
+)
+
+	)
+
+465 
+	#__šlše_m©hcode2
+(
+func
+, 
+¬g1
+, 
+¬g2
+, 
+code
+) \
+
+466 
+	`__šlše_m©hcode2_
+ (, 
+func
+, 
+¬g1
+, 
+¬g2
+, 
+code
+) \
+
+467 
+	`__šlše_m©hcode2_
+ (, 
+	`__CONCAT
+(
+func
+,
+f
+), 
+¬g1
+, 
+¬g2
+, 
+code
+) \
+
+468 
+	`__šlše_m©hcode2_
+ (, 
+	`__CONCAT
+(
+func
+,
+l
+), 
+¬g1
+, 
+¬g2
+, 
+code
+)
+
+	)
+
+469 
+	#__šlše_m©hcodeNP2
+(
+func
+, 
+¬g1
+, 
+¬g2
+, 
+code
+) \
+
+470 
+	`__šlše_m©hcodeNP2_
+ (, 
+func
+, 
+¬g1
+, 
+¬g2
+, 
+code
+) \
+
+471 
+	`__šlše_m©hcodeNP2_
+ (, 
+	`__CONCAT
+(
+func
+,
+f
+), 
+¬g1
+, 
+¬g2
+, 
+code
+) \
+
+472 
+	`__šlše_m©hcodeNP2_
+ (, 
+	`__CONCAT
+(
+func
+,
+l
+), 
+¬g1
+, 
+¬g2
+, 
+code
+)
+
+	)
+
+473 
+	#__šlše_m©hcode3
+(
+func
+, 
+¬g1
+, 
+¬g2
+, 
+¬g3
+, 
+code
+) \
+
+474 
+	`__šlše_m©hcode3_
+ (, 
+func
+, 
+¬g1
+, 
+¬g2
+, 
+¬g3
+, 
+code
+) \
+
+475 
+	`__šlše_m©hcode3_
+ (, 
+	`__CONCAT
+(
+func
+,
+f
+), 
+¬g1
+, 
+¬g2
+, 
+¬g3
+, 
+code
+) \
+
+476 
+	`__šlše_m©hcode3_
+ (, 
+	`__CONCAT
+(
+func
+,
+l
+), 
+¬g1
+, 
+¬g2
+, 
+¬g3
+, 
+code
+)
+
+	)
+
+477 
+	#__šlše_m©hcodeNP3
+(
+func
+, 
+¬g1
+, 
+¬g2
+, 
+¬g3
+, 
+code
+) \
+
+478 
+	`__šlše_m©hcodeNP3_
+ (, 
+func
+, 
+¬g1
+, 
+¬g2
+, 
+¬g3
+, 
+code
+) \
+
+479 
+	`__šlše_m©hcodeNP3_
+ (, 
+	`__CONCAT
+(
+func
+,
+f
+), 
+¬g1
+, 
+¬g2
+, 
+¬g3
+, 
+code
+) \
+
+480 
+	`__šlše_m©hcodeNP3_
+ (, 
+	`__CONCAT
+(
+func
+,
+l
+), 
+¬g1
+, 
+¬g2
+, 
+¬g3
+, 
+code
+)
+
+	)
+
+482 
+	#__šlše_m©hcode
+(
+func
+, 
+¬g
+, 
+code
+) \
+
+483 
+	`__šlše_m©hcode_
+ (, 
+func
+, (
+¬g
+), 
+code
+)
+
+	)
+
+484 
+	#__šlše_m©hcodeNP
+(
+func
+, 
+¬g
+, 
+code
+) \
+
+485 
+	`__šlše_m©hcodeNP_
+ (, 
+func
+, (
+¬g
+), 
+code
+)
+
+	)
+
+486 
+	#__šlše_m©hcode2
+(
+func
+, 
+¬g1
+, 
+¬g2
+, 
+code
+) \
+
+487 
+	`__šlše_m©hcode2_
+ (, 
+func
+, 
+¬g1
+, 
+¬g2
+, 
+code
+)
+
+	)
+
+488 
+	#__šlše_m©hcodeNP2
+(
+func
+, 
+¬g1
+, 
+¬g2
+, 
+code
+) \
+
+489 
+	`__šlše_m©hcodeNP2_
+ (, 
+func
+, 
+¬g1
+, 
+¬g2
+, 
+code
+)
+
+	)
+
+490 
+	#__šlše_m©hcode3
+(
+func
+, 
+¬g1
+, 
+¬g2
+, 
+¬g3
+, 
+code
+) \
+
+491 
+	`__šlše_m©hcode3_
+ (, 
+func
+, 
+¬g1
+, 
+¬g2
+, 
+¬g3
+, 
+code
+)
+
+	)
+
+492 
+	#__šlše_m©hcodeNP3
+(
+func
+, 
+¬g1
+, 
+¬g2
+, 
+¬g3
+, 
+code
+) \
+
+493 
+	`__šlše_m©hcodeNP3_
+ (, 
+func
+, 
+¬g1
+, 
+¬g2
+, 
+¬g3
+, 
+code
+)
+
+	)
+
+496 
+	#__šlše_m©hcode_
+(
+æßt_ty³
+, 
+func
+, 
+¬g
+, 
+code
+) \
+
+497 
+__MATH_INLINE
+ 
+æßt_ty³
+ 
+	`func
+ (æßt_ty³è
+__THROW
+; \
+
+498 
+	`__šlše_m©hcodeNP_
+(
+æßt_ty³
+, 
+func
+, 
+¬g
+, 
+code
+)
+
+	)
+
+500 
+	#__šlše_m©hcodeNP_
+(
+æßt_ty³
+, 
+func
+, 
+¬g
+, 
+code
+) \
+
+501 
+__MATH_INLINE
+ 
+æßt_ty³
+ 
+	`__NTH
+ (
+	`func
+ (æßt_ty³ 
+¬g
+)) \
+
+503 
+code
+; \
+
+504 }
+
+	)
+
+507 
+	#__šlše_m©hcode2_
+(
+æßt_ty³
+, 
+func
+, 
+¬g1
+, 
+¬g2
+, 
+code
+) \
+
+508 
+__MATH_INLINE
+ 
+æßt_ty³
+ 
+	`func
+ (æßt_ty³, flßt_ty³è
+__THROW
+; \
+
+509 
+	`__šlše_m©hcodeNP2_
+ (
+æßt_ty³
+, 
+func
+, 
+¬g1
+, 
+¬g2
+, 
+code
+)
+
+	)
+
+511 
+	#__šlše_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 
+	#__šlše_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 
+	`__šlše_m©hcodeNP3_
+(
+æßt_ty³
+, 
+func
+, 
+¬g1
+, 
+¬g2
+, 
+¬g3
+, 
+code
+)
+
+	)
+
+521 
+	#__šlše_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šed
+ 
+__NO_MATH_INLINES
+ && defšed 
+__OPTIMIZE__
+
+
+534 #ifdeà
+__FAST_MATH__
+
+
+535 #ifdeà
+__USE_GNU
+
+
+536 
+	#__sšcos_code
+ \
+
+537 
+__co¤
+; \
+
+538 
+__sšr
+; \
+
+539 
+__swtmp
+; \
+
+540 
+__asm
+ 
+__vÞ©že__
+ \
+
+555 : "ñ" (
+__co¤
+), "=u" (
+__sšr
+), "÷" (
+__swtmp
+è: "0" (
+__x
+)); \
+
+556 *
+__sšx
+ = 
+__sšr
+; \
+
+557 *
+__cosx
+ = 
+__co¤
+
+
+	)
+
+559 
+__MATH_INLINE
+ 
+
+560 
+__NTH
+ (
+	$__sšcos
+ (
+__x
+, *
+__sšx
+, *
+__cosx
+))
+
+562 
+__sšcos_code
+;
+
+563 
+	}
+}
+
+565 
+__MATH_INLINE
+ 
+
+566 
+__NTH
+ (
+	$__sšcosf
+ (
+__x
+, *
+__sšx
+, *
+__cosx
+))
+
+568 
+__sšcos_code
+;
+
+569 
+	}
+}
+
+571 
+__MATH_INLINE
+ 
+
+572 
+__NTH
+ (
+	$__sšco¦
+ (
+__x
+, *
+__sšx
+, *
+__cosx
+))
+
+574 
+__sšcos_code
+;
+
+575 
+	}
+}
+
+582 #ià
+__GNUC_PREREQ
+ (3, 5)
+
+583 
+	#__expm1_code
+ \
+
+584 
+__‹mp
+; \
+
+585 
+__‹mp
+ = 
+	`__bužtš_expm1l
+ (
+__x
+); \
+
+586  
+__‹mp
+ ? __‹m°: 
+__x
+
+
+	)
+
+588 
+	#__expm1_code
+ \
+
+589 
+__v®ue
+; \
+
+590 
+__expڒt
+; \
+
+591 
+__‹mp
+; \
+
+592 
+__asm
+ 
+__vÞ©že__
+ \
+
+601 : "ñ" (
+__v®ue
+), "=u" (
+__expڒt
+è: "0" (
+__x
+)); \
+
+602 
+__asm
+ 
+__vÞ©že__
+ \
+
+604 : "ñ" (
+__‹mp
+è: "0" (1.0), "u" (
+__expڒt
+)); \
+
+605 
+__‹mp
+ -= 1.0; \
+
+606 
+__‹mp
+ +ð
+__v®ue
+; \
+
+607  
+__‹mp
+ ? __‹m°: 
+__x
+
+
+	)
+
+609 
+	$__šlše_m©hcodeNP_
+ (, 
+__expm1l
+, 
+__x
+, 
+__expm1_code
+)
+
+611 #ià
+	`__GNUC_PREREQ
+ (3, 4)
+
+612 
+	`__šlše_m©hcodeNP_
+ (, 
+__ex¶
+, 
+__x
+,  
+	$__bužtš_ex¶
+ (
+__x
+))
+
+614 
+	#__exp_code
+ \
+
+615 
+__v®ue
+; \
+
+616 
+__expڒt
+; \
+
+617 
+__asm
+ 
+__vÞ©že__
+ \
+
+625 : "ñ" (
+__v®ue
+), "=u" (
+__expڒt
+è: "0" (
+__x
+)); \
+
+626 
+__v®ue
+ += 1.0; \
+
+627 
+__asm
+ 
+__vÞ©že__
+ \
+
+629 : "ñ" (
+__v®ue
+è: "0" (__v®ue), "u" (
+__expڒt
+)); \
+
+630  
+__v®ue
+
+
+	)
+
+631 
+	$__šlše_m©hcodeNP
+ (
+exp
+, 
+__x
+, 
+__exp_code
+)
+
+632 
+	$__šlše_m©hcodeNP_
+ (, 
+__ex¶
+, 
+__x
+, 
+__exp_code
+)
+
+636 #ià!
+	`__GNUC_PREREQ
+ (3, 5)
+
+637 
+	`__šlše_m©hcodeNP
+ (
+n
+, 
+__x
+, \
+
+638 
+__v®ue
+; \
+
+639 
+__v®ue2
+ 
+	`__©Œibu‹__
+ ((
+__unu£d__
+)); \
+
+640 
+__asm
+ 
+__vÞ©že__
+ \
+
+642 : "ñ" (
+__v®ue2
+), "=u" (
+__v®ue
+è: "0" (
+__x
+)); \
+
+643  
+__v®ue
+)
+
+648 #ià
+	`__GNUC_PREREQ
+ (3, 4)
+
+649 
+	`__šlše_m©hcodeNP2_
+ (, 
+__©ª2l
+, 
+__y
+, 
+__x
+,
+
+650  
+	$__bužtš_©ª2l
+ (
+__y
+, 
+__x
+))
+
+652 
+	#__©ª2_code
+ \
+
+653 
+__v®ue
+; \
+
+654 
+__asm
+ 
+__vÞ©že__
+ \
+
+656 : "ñ" (
+__v®ue
+è: "0" (
+__x
+), "u" (
+__y
+) : "st(1)"); \
+
+657  
+__v®ue
+
+
+	)
+
+658 #ifdeà
+__FAST_MATH__
+
+
+659 
+	$__šlše_m©hcodeNP2
+ (
+©ª2
+, 
+__y
+, 
+__x
+, 
+__©ª2_code
+)
+
+661 
+	$__šlše_m©hcodeNP2_
+ (, 
+__©ª2l
+, 
+__y
+, 
+__x
+, 
+__©ª2_code
+)
+
+665 #ià
+defšed
+ 
+__FAST_MATH__
+ && !
+	`__GNUC_PREREQ
+ (3, 5)
+
+666 
+	`__šlše_m©hcodeNP2
+ (
+fmod
+, 
+__x
+, 
+__y
+, \
+
+667 
+__v®ue
+; \
+
+668 
+__asm
+ 
+__vÞ©že__
+ \
+
+673 : "ñ" (
+__v®ue
+è: "0" (
+__x
+), "u" (
+__y
+) : "ax", "cc"); \
+
+674  
+__v®ue
+)
+
+678 #ifdeà
+__FAST_MATH__
+
+
+679 #ià!
+	`__GNUC_PREREQ
+ (3,3)
+
+680 
+	`__šlše_m©hÝNP
+ (
+sq¹
+, "fsqrt")
+
+681 
+	`__šlše_m©hÝNP_
+ (, 
+__sq¹l
+, "fsqrt")
+
+682 
+	#__libc_sq¹l
+(
+n
+è
+	`__sq¹l
+ (n)
+
+	)
+
+684 
+	#__libc_sq¹l
+(
+n
+è
+	`__bužtš_sq¹l
+ (n)
+
+	)
+
+688 #ià
+	`__GNUC_PREREQ
+ (2, 8)
+
+689 
+	`__šlše_m©hcodeNP_
+ (, 
+çbs
+, 
+__x
+,  
+	$__bužtš_çbs
+ (
+__x
+))
+
+690 #ifdeà
+__USE_ISOC99
+
+
+691 
+	`__šlše_m©hcodeNP_
+ (, 
+çbsf
+, 
+__x
+,  
+	$__bužtš_çbsf
+ (
+__x
+))
+
+692 
+	`__šlše_m©hcodeNP_
+ (, 
+çb¦
+, 
+__x
+,  
+	$__bužtš_çb¦
+ (
+__x
+))
+
+694 
+	`__šlše_m©hcodeNP_
+ (, 
+__çb¦
+, 
+__x
+,  
+	$__bužtš_çb¦
+ (
+__x
+))
+
+696 
+	`__šlše_m©hÝ
+ (
+çbs
+, "fabs")
+
+697 
+	`__šlše_m©hÝ_
+ (, 
+__çb¦
+, "fabs")
+
+700 #ifdeà
+__FAST_MATH__
+
+
+701 #ià!
+	`__GNUC_PREREQ
+ (3, 4)
+
+703 
+	`__šlše_m©hÝNP
+ (
+sš
+, "fsin")
+
+705 
+	`__šlše_m©hÝNP
+ (
+cos
+, "fcos")
+
+707 
+	`__šlše_m©hÝ_deþNP
+ (
+log
+, "ædÊ2; fxch; fyl2x", "0" (
+__x
+) : "st(1)")
+
+710 #ià!
+	`__GNUC_PREREQ
+ (3, 5)
+
+711 
+	`__šlše_m©hÝ_deþNP
+ (
+log10
+, "ædlg2; fxch; fyl2x", "0" (
+__x
+) : "st(1)")
+
+713 
+	`__šlše_m©hcodeNP
+ (
+asš
+, 
+__x
+,  
+	`__©ª2l
+ (__x, 
+	`__libc_sq¹l
+ (1.0 - __x * __x)))
+
+714 
+	`__šlše_m©hcodeNP
+ (
+acos
+, 
+__x
+,  
+	`__©ª2l
+ (
+	`__libc_sq¹l
+ (1.0 - __x * __x), __x))
+
+717 #ià!
+	`__GNUC_PREREQ
+ (3, 4)
+
+718 
+	`__šlše_m©hÝ_deþNP
+ (
+©ª
+, "æd1; f·n", "0" (
+__x
+) : "st(1)")
+
+722 
+	`__šlše_m©hcode_
+ (, 
+__sgn1l
+, 
+__x
+, \
+
+723 
+__ex‹nsiÚ__
+ uniÚ { 
+__xld
+; 
+__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  
+	g__n
+.
+	g__xld
+)
+
+731 #ifdeà
+__FAST_MATH__
+
+
+733 
+__šlše_m©hcodeNP
+ (
+sšh
+, 
+__x
+, \
+
+734 
+__exm1
+ = 
+__expm1l
+ (
+__çb¦
+ (
+__x
+)); \
+
+735  0.5 * (
+__exm1
+ / (__exm1 + 1.0è+ __exm1è* 
+	$__sgn1l
+ (
+__x
+))
+
+737 
+	`__šlše_m©hcodeNP
+ (
+cosh
+, 
+__x
+, \
+
+738 
+__ex
+ = 
+	`__ex¶
+ (
+__x
+); \
+
+739  0.5 * (
+__ex
+ + 1.0 / __ex))
+
+741 
+	`__šlše_m©hcodeNP
+ (
+nh
+, 
+__x
+, \
+
+742 
+__exm1
+ = 
+	`__expm1l
+ (-
+	`__çb¦
+ (
+__x
+ + __x)); \
+
+743  
+__exm1
+ / (__exm1 + 2.0è* 
+	`__sgn1l
+ (-
+__x
+))
+
+746 
+	`__šlše_m©hcodeNP
+ (
+æoÜ
+, 
+__x
+, \
+
+747 
+__v®ue
+; \
+
+748 
+__ignÜe
+; \
+
+749 
+__cw
+; \
+
+750 
+__cwtmp
+; \
+
+751 
+__asm
+ 
+	`__vÞ©že
+ ("fnstcw %3\n\t" \
+
+759 : "ñ" (
+__v®ue
+), "=&q" (
+__ignÜe
+), "=m" (
+__cwtmp
+), \
+
+760 "=m" (
+__cw
+) \
+
+761 : "0" (
+__x
+)); \
+
+762  
+__v®ue
+)
+
+764 
+	`__šlše_m©hcodeNP
+ (
+ûž
+, 
+__x
+, \
+
+765 
+__v®ue
+; \
+
+766 
+__ignÜe
+; \
+
+767 
+__cw
+; \
+
+768 
+__cwtmp
+; \
+
+769 
+__asm
+ 
+	`__vÞ©že
+ ("fnstcw %3\n\t" \
+
+777 : "ñ" (
+__v®ue
+), "=&q" (
+__ignÜe
+), "=m" (
+__cwtmp
+), \
+
+778 "=m" (
+__cw
+) \
+
+779 : "0" (
+__x
+)); \
+
+780  
+__v®ue
+)
+
+782 #ifdeà
+__FAST_MATH__
+
+
+783 
+	#__ldexp_code
+ \
+
+784 
+__v®ue
+; \
+
+785 
+__asm
+ 
+__vÞ©že__
+ \
+
+787 : "ñ" (
+__v®ue
+è: "0" (
+__x
+), "u" ((è
+__y
+)); \
+
+788  
+__v®ue
+
+
+	)
+
+790 
+__MATH_INLINE
+ 
+
+791 
+	`__NTH
+ (
+	$ldexp
+ (
+__x
+, 
+__y
+))
+
+793 
+__ldexp_code
+;
+
+794 
+	}
+}
+
+799 #ifdeà
+__USE_ISOC99
+
+
+801 #ifdeà
+__FAST_MATH__
+
+
+802 
+	$__šlše_m©hcodeNP
+ (
+expm1
+, 
+__x
+, 
+__expm1_code
+)
+
+806 
+	#__M_SQRT2
+ 1.41421356237309504880L
+
+	)
+
+808 #ià!
+	`__GNUC_PREREQ
+ (3, 5)
+
+809 
+	`__šlše_m©hcodeNP
+ (
+log1p
+, 
+__x
+, \
+
+810 
+__v®ue
+; \
+
+811 ià(
+	`__çb¦
+ (
+__x
+è>ð1.0 - 0.5 * 
+__M_SQRT2
+) \
+
+812 
+__v®ue
+ = 
+	`logl
+ (1.0 + 
+__x
+); \
+
+814 
+__asm
+ 
+__vÞ©že__
+ \
+
+818 : "ñ" (
+__v®ue
+è: "0" (
+__x
+) : "st(1)"); \
+
+819  
+__v®ue
+)
+
+824 
+	`__šlše_m©hcodeNP
+ (
+asšh
+, 
+__x
+, \
+
+825 
+__y
+ = 
+	`__çb¦
+ (
+__x
+); \
+
+826  (
+	`log1¶
+ (
+__y
+ * __y / (
+	`__libc_sq¹l
+ (__y * __y + 1.0) + 1.0) + __y) \
+
+827 * 
+	$__sgn1l
+ (
+__x
+)))
+
+829 
+	`__šlše_m©hcodeNP
+ (
+acosh
+, 
+__x
+, \
+
+830  
+	`logl
+ (
+__x
+ + 
+	`__libc_sq¹l
+ (__x - 1.0) * __libc_sqrtl (__x + 1.0)))
+
+832 
+	`__šlše_m©hcodeNP
+ (
+©ªh
+, 
+__x
+, \
+
+833 
+__y
+ = 
+	`__çb¦
+ (
+__x
+); \
+
+834  -0.5 * 
+	`log1¶
+ (-(
+__y
+ + __yè/ (1.0 + __y)è* 
+	$__sgn1l
+ (
+__x
+))
+
+837 
+	`__šlše_m©hcodeNP2
+ (
+hypÙ
+, 
+__x
+, 
+__y
+,
+
+838  
+	`__libc_sq¹l
+ (
+__x
+ * __x + 
+__y
+ * __y))
+
+840 #ià!
+	`__GNUC_PREREQ
+ (3, 5)
+
+841 
+	`__šlše_m©hcodeNP
+(
+logb
+, 
+__x
+, \
+
+842 
+__v®ue
+; \
+
+843 
+__junk
+; \
+
+844 
+__asm
+ 
+__vÞ©že__
+ \
+
+846 : "ñ" (
+__junk
+), "=u" (
+__v®ue
+è: "0" (
+__x
+)); \
+
+847  
+__v®ue
+)
+
+853 #ifdeà
+__USE_ISOC99
+
+
+854 #ifdeà
+__FAST_MATH__
+
+
+856 #ià!
+	`__GNUC_PREREQ
+ (3, 5)
+
+857 
+	`__šlše_m©hÝ_deþNP
+ (
+log2
+, "æd1; fxch; fyl2x", "0" (
+__x
+) : "st(1)")
+
+860 
+__MATH_INLINE
+ 
+
+861 
+	`__NTH
+ (
+	$ldexpf
+ (
+__x
+, 
+__y
+))
+
+863 
+__ldexp_code
+;
+
+864 
+	}
+}
+
+866 
+__MATH_INLINE
+ 
+
+867 
+__NTH
+ (
+	$ldex¶
+ (
+__x
+, 
+__y
+))
+
+869 
+__ldexp_code
+;
+
+870 
+	}
+}
+
+872 
+__šlše_m©hÝNP
+ (
+ršt
+, "frndint")
+
+875 
+	#__̚t_code
+ \
+
+876 
+__̚Œes
+; \
+
+877 
+__asm__
+ 
+__vÞ©že__
+ \
+
+879 : "=m" (
+__̚Œes
+è: "t" (
+__x
+) : "st"); \
+
+880  
+__̚Œes
+
+
+	)
+
+881 
+__MATH_INLINE
+ 
+
+882 
+__NTH
+ (
+	$̚tf
+ (
+__x
+))
+
+884 
+__̚t_code
+;
+
+885 
+	}
+}
+
+886 
+__MATH_INLINE
+ 
+
+887 
+__NTH
+ (
+	$̚t
+ (
+__x
+))
+
+889 
+__̚t_code
+;
+
+890 
+	}
+}
+
+891 
+__MATH_INLINE
+ 
+
+892 
+__NTH
+ (
+	$̚Ž
+ (
+__x
+))
+
+894 
+__̚t_code
+;
+
+895 
+	}
+}
+
+896 #undeà
+__̚t_code
+
+
+898 
+	#__Îršt_code
+ \
+
+899 
+__ÎršŒes
+; \
+
+900 
+__asm__
+ 
+__vÞ©že__
+ \
+
+902 : "=m" (
+__ÎršŒes
+è: "t" (
+__x
+) : "st"); \
+
+903  
+__ÎršŒes
+
+
+	)
+
+904 
+__ex‹nsiÚ__
+
+
+905 
+__MATH_INLINE
+ 
+
+906 
+__NTH
+ (
+	$Îrštf
+ (
+__x
+))
+
+908 
+__Îršt_code
+;
+
+909 
+	}
+}
+
+910 
+__ex‹nsiÚ__
+
+
+911 
+__MATH_INLINE
+ 
+
+912 
+__NTH
+ (
+	$Îršt
+ (
+__x
+))
+
+914 
+__Îršt_code
+;
+
+915 
+	}
+}
+
+916 
+__ex‹nsiÚ__
+
+
+917 
+__MATH_INLINE
+ 
+
+918 
+__NTH
+ (
+	$ÎršŽ
+ (
+__x
+))
+
+920 
+__Îršt_code
+;
+
+921 
+	}
+}
+
+922 #undeà
+__Îršt_code
+
+
+927 #ifdeà
+__USE_MISC
+
+
+929 #ià
+defšed
+ 
+__FAST_MATH__
+ && !
+__GNUC_PREREQ
+ (3, 5)
+
+930 
+__šlše_m©hcodeNP2
+ (
+d»m
+, 
+__x
+, 
+__y
+, \
+
+931 
+__v®ue
+; \
+
+932 
+__þobb”ed
+; \
+
+933 
+__asm
+ 
+__vÞ©že__
+ \
+
+938 : "ñ" (
+__v®ue
+), "=&a" (
+__þobb”ed
+è: "0" (
+__x
+), "u" (
+__y
+) : "cc"); \
+
+939  
+__v®ue
+)
+
+944 
+__MATH_INLINE
+ 
+
+945 
+__NTH
+ (
+	$__fš™e
+ (
+__x
+))
+
+947  (
+__ex‹nsiÚ__
+
+
+948 (((((uniÚ { 
+__d
+; 
+__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šcos_code
+
+
+966 #ifdeà
+__LIBC_INTERNAL_MATH_INLINES
+
+
+967 
+__šlše_m©hÝ
+ (
+__›“754_sq¹
+, "fsqrt")
+
+968 
+__šlše_m©hcode2_
+ (, 
+__›“754_©ª2l
+, 
+__y
+, 
+__x
+,
+
+969 
+__v®ue
+;
+
+970 
+__asm
+ 
+__vÞ©že__
+ ("fpatan\n\t"
+
+971 : "ñ" (
+__v®ue
+)
+
+972 : "0" (
+__x
+), "u" (
+__y
+) : "st(1)");
+
+973  
+__v®ue
+;)
+
+	@/usr/include/bits/nan.h
+
+19 #iâdeà
+_MATH_H
+
+
+26 #ià
+__GNUC_PREREQ
+(3,3)
+
+28 
+	#NAN
+ (
+	`__bužtš_Çnf
+ (""))
+
+	)
+
+30 #–ià
+defšed
+ 
+__GNUC__
+
+
+32 
+	#NAN
+ \
+
+33 (
+__ex‹nsiÚ__
+ \
+
+34 ((uniÚ { 
+__l
+ 
+	`__©Œibu‹__
+ ((
+	`__mode__
+ (
+__SI__
+))); 
+__d
+; }) \
+
+35 { 
+__l
+: 0x7fc00000UL }).
+__d
+)
+
+	)
+
+39 
+	~<’dŸn.h
+>
+
+41 #ià
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+42 
+	#__qÇn_by‹s
+ { 0x7f, 0xc0, 0, 0 }
+
+	)
+
+44 #ià
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+45 
+	#__qÇn_by‹s
+ { 0, 0, 0xc0, 0x7à}
+
+	)
+
+48 uniÚ { 
+	m__c
+[4]; 
+	m__d
+; } 
+__qÇn_uniÚ
+
+
+49 
+__©Œibu‹__
+ ((
+__unu£d__
+)èð{ 
+__qÇn_by‹s
+ };
+
+50 
+	#NAN
+ (
+__qÇn_uniÚ
+.
+__d
+)
+
+	)
+
+	@/usr/include/bits/param.h
+
+19 #iâdeà
+_SYS_PARAM_H
+
+
+23 #iâdeà
+ARG_MAX
+
+
+24 
+	#__undef_ARG_MAX
+
+
+	)
+
+27 
+	~<lšux/lim™s.h
+>
+
+28 
+	~<lšux/·¿m.h
+>
+
+31 #ifdeà
+__undef_ARG_MAX
+
+
+32 #undeà
+ARG_MAX
+
+
+33 #undeà
+__undef_ARG_MAX
+
+
+36 
+	#MAXSYMLINKS
+ 20
+
+	)
+
+41 
+	#NOFILE
+ 256
+
+	)
+
+42 
+	#NCARGS
+ 131072
+
+	)
+
+	@/usr/include/bits/posix_opt.h
+
+19 #iâdef 
+_BITS_POSIX_OPT_H
+
+
+20 
+	#_BITS_POSIX_OPT_H
+ 1
+
+	)
+
+23 
+	#_POSIX_JOB_CONTROL
+ 1
+
+	)
+
+26 
+	#_POSIX_SAVED_IDS
+ 1
+
+	)
+
+29 
+	#_POSIX_PRIORITY_SCHEDULING
+ 200809L
+
+	)
+
+32 
+	#_POSIX_SYNCHRONIZED_IO
+ 200809L
+
+	)
+
+35 
+	#_POSIX_FSYNC
+ 200809L
+
+	)
+
+38 
+	#_POSIX_MAPPED_FILES
+ 200809L
+
+	)
+
+41 
+	#_POSIX_MEMLOCK
+ 200809L
+
+	)
+
+44 
+	#_POSIX_MEMLOCK_RANGE
+ 200809L
+
+	)
+
+47 
+	#_POSIX_MEMORY_PROTECTION
+ 200809L
+
+	)
+
+50 
+	#_POSIX_CHOWN_RESTRICTED
+ 0
+
+	)
+
+54 
+	#_POSIX_VDISABLE
+ '\0'
+
+	)
+
+57 
+	#_POSIX_NO_TRUNC
+ 1
+
+	)
+
+60 
+	#_XOPEN_REALTIME
+ 1
+
+	)
+
+63 
+	#_XOPEN_REALTIME_THREADS
+ 1
+
+	)
+
+66 
+	#_XOPEN_SHM
+ 1
+
+	)
+
+69 
+	#_POSIX_THREADS
+ 200809L
+
+	)
+
+72 
+	#_POSIX_REENTRANT_FUNCTIONS
+ 1
+
+	)
+
+73 
+	#_POSIX_THREAD_SAFE_FUNCTIONS
+ 200809L
+
+	)
+
+76 
+	#_POSIX_THREAD_PRIORITY_SCHEDULING
+ 200809L
+
+	)
+
+79 
+	#_POSIX_THREAD_ATTR_STACKSIZE
+ 200809L
+
+	)
+
+82 
+	#_POSIX_THREAD_ATTR_STACKADDR
+ 200809L
+
+	)
+
+85 
+	#_POSIX_THREAD_PRIO_INHERIT
+ 200809L
+
+	)
+
+89 
+	#_POSIX_THREAD_PRIO_PROTECT
+ 200809L
+
+	)
+
+91 #ifdeà
+__USE_XOPEN2K8
+
+
+93 
+	#_POSIX_THREAD_ROBUST_PRIO_INHERIT
+ 200809L
+
+	)
+
+96 
+	#_POSIX_THREAD_ROBUST_PRIO_PROTECT
+ -1
+
+	)
+
+100 
+	#_POSIX_SEMAPHORES
+ 200809L
+
+	)
+
+103 
+	#_POSIX_REALTIME_SIGNALS
+ 200809L
+
+	)
+
+106 
+	#_POSIX_ASYNCHRONOUS_IO
+ 200809L
+
+	)
+
+107 
+	#_POSIX_ASYNC_IO
+ 1
+
+	)
+
+109 
+	#_LFS_ASYNCHRONOUS_IO
+ 1
+
+	)
+
+111 
+	#_POSIX_PRIORITIZED_IO
+ 200809L
+
+	)
+
+114 
+	#_LFS64_ASYNCHRONOUS_IO
+ 1
+
+	)
+
+117 
+	#_LFS_LARGEFILE
+ 1
+
+	)
+
+118 
+	#_LFS64_LARGEFILE
+ 1
+
+	)
+
+119 
+	#_LFS64_STDIO
+ 1
+
+	)
+
+122 
+	#_POSIX_SHARED_MEMORY_OBJECTS
+ 200809L
+
+	)
+
+125 
+	#_POSIX_CPUTIME
+ 0
+
+	)
+
+128 
+	#_POSIX_THREAD_CPUTIME
+ 0
+
+	)
+
+131 
+	#_POSIX_REGEXP
+ 1
+
+	)
+
+134 
+	#_POSIX_READER_WRITER_LOCKS
+ 200809L
+
+	)
+
+137 
+	#_POSIX_SHELL
+ 1
+
+	)
+
+140 
+	#_POSIX_TIMEOUTS
+ 200809L
+
+	)
+
+143 
+	#_POSIX_SPIN_LOCKS
+ 200809L
+
+	)
+
+146 
+	#_POSIX_SPAWN
+ 200809L
+
+	)
+
+149 
+	#_POSIX_TIMERS
+ 200809L
+
+	)
+
+152 
+	#_POSIX_BARRIERS
+ 200809L
+
+	)
+
+155 
+	#_POSIX_MESSAGE_PASSING
+ 200809L
+
+	)
+
+158 
+	#_POSIX_THREAD_PROCESS_SHARED
+ 200809L
+
+	)
+
+161 
+	#_POSIX_MONOTONIC_CLOCK
+ 0
+
+	)
+
+164 
+	#_POSIX_CLOCK_SELECTION
+ 200809L
+
+	)
+
+167 
+	#_POSIX_ADVISORY_INFO
+ 200809L
+
+	)
+
+170 
+	#_POSIX_IPV6
+ 200809L
+
+	)
+
+173 
+	#_POSIX_RAW_SOCKETS
+ 200809L
+
+	)
+
+176 
+	#_POSIX2_CHAR_TERM
+ 200809L
+
+	)
+
+179 
+	#_POSIX_SPORADIC_SERVER
+ -1
+
+	)
+
+180 
+	#_POSIX_THREAD_SPORADIC_SERVER
+ -1
+
+	)
+
+183 
+	#_POSIX_TRACE
+ -1
+
+	)
+
+184 
+	#_POSIX_TRACE_EVENT_FILTER
+ -1
+
+	)
+
+185 
+	#_POSIX_TRACE_INHERIT
+ -1
+
+	)
+
+186 
+	#_POSIX_TRACE_LOG
+ -1
+
+	)
+
+189 
+	#_POSIX_TYPED_MEMORY_OBJECTS
+ -1
+
+	)
+
+	@/usr/include/bits/pthreadtypes.h
+
+18 #iâdeà
+_BITS_PTHREADTYPES_H
+
+
+19 
+	#_BITS_PTHREADTYPES_H
+ 1
+
+	)
+
+21 
+	~<b™s/wÜdsize.h
+>
+
+23 #ifdeà
+__x86_64__
+
+
+24 #ià
+__WORDSIZE
+ == 64
+
+25 
+	#__SIZEOF_PTHREAD_ATTR_T
+ 56
+
+	)
+
+26 
+	#__SIZEOF_PTHREAD_MUTEX_T
+ 40
+
+	)
+
+27 
+	#__SIZEOF_PTHREAD_MUTEXATTR_T
+ 4
+
+	)
+
+28 
+	#__SIZEOF_PTHREAD_COND_T
+ 48
+
+	)
+
+29 
+	#__SIZEOF_PTHREAD_CONDATTR_T
+ 4
+
+	)
+
+30 
+	#__SIZEOF_PTHREAD_RWLOCK_T
+ 56
+
+	)
+
+31 
+	#__SIZEOF_PTHREAD_RWLOCKATTR_T
+ 8
+
+	)
+
+32 
+	#__SIZEOF_PTHREAD_BARRIER_T
+ 32
+
+	)
+
+33 
+	#__SIZEOF_PTHREAD_BARRIERATTR_T
+ 4
+
+	)
+
+35 
+	#__SIZEOF_PTHREAD_ATTR_T
+ 32
+
+	)
+
+36 
+	#__SIZEOF_PTHREAD_MUTEX_T
+ 32
+
+	)
+
+37 
+	#__SIZEOF_PTHREAD_MUTEXATTR_T
+ 4
+
+	)
+
+38 
+	#__SIZEOF_PTHREAD_COND_T
+ 48
+
+	)
+
+39 
+	#__SIZEOF_PTHREAD_CONDATTR_T
+ 4
+
+	)
+
+40 
+	#__SIZEOF_PTHREAD_RWLOCK_T
+ 44
+
+	)
+
+41 
+	#__SIZEOF_PTHREAD_RWLOCKATTR_T
+ 8
+
+	)
+
+42 
+	#__SIZEOF_PTHREAD_BARRIER_T
+ 20
+
+	)
+
+43 
+	#__SIZEOF_PTHREAD_BARRIERATTR_T
+ 4
+
+	)
+
+46 
+	#__SIZEOF_PTHREAD_ATTR_T
+ 36
+
+	)
+
+47 
+	#__SIZEOF_PTHREAD_MUTEX_T
+ 24
+
+	)
+
+48 
+	#__SIZEOF_PTHREAD_MUTEXATTR_T
+ 4
+
+	)
+
+49 
+	#__SIZEOF_PTHREAD_COND_T
+ 48
+
+	)
+
+50 
+	#__SIZEOF_PTHREAD_CONDATTR_T
+ 4
+
+	)
+
+51 
+	#__SIZEOF_PTHREAD_RWLOCK_T
+ 32
+
+	)
+
+52 
+	#__SIZEOF_PTHREAD_RWLOCKATTR_T
+ 8
+
+	)
+
+53 
+	#__SIZEOF_PTHREAD_BARRIER_T
+ 20
+
+	)
+
+54 
+	#__SIZEOF_PTHREAD_BARRIERATTR_T
+ 4
+
+	)
+
+60 
+	t±h»ad_t
+;
+
+63 
+	u±h»ad_©Œ_t
+
+
+65 
+	m__size
+[
+__SIZEOF_PTHREAD_ATTR_T
+];
+
+66 
+	m__®ign
+;
+
+68 #iâdeà
+__have_±h»ad_©Œ_t
+
+
+69 
+±h»ad_©Œ_t
+ 
+	t±h»ad_©Œ_t
+;
+
+70 
+	#__have_±h»ad_©Œ_t
+ 1
+
+	)
+
+74 #ifdeà
+__x86_64__
+
+
+75 
+	s__±h»ad_š‹º®_li¡
+
+
+77 
+__±h»ad_š‹º®_li¡
+ *
+	m__´ev
+;
+
+78 
+__±h»ad_š‹º®_li¡
+ *
+	m__Ãxt
+;
+
+79 } 
+	t__±h»ad_li¡_t
+;
+
+81 
+	s__±h»ad_š‹º®_¦i¡
+
+
+83 
+__±h»ad_š‹º®_¦i¡
+ *
+	m__Ãxt
+;
+
+84 } 
+	t__±h»ad_¦i¡_t
+;
+
+92 
+	s__±h»ad_mu‹x_s
+
+
+94 
+	m__lock
+;
+
+95 
+	m__couÁ
+;
+
+96 
+	m__owÃr
+;
+
+97 #ifdeà
+__x86_64__
+
+
+98 
+	m__nu£rs
+;
+
+102 
+	m__kšd
+;
+
+103 #ifdeà
+__x86_64__
+
+
+104 
+	m__¥šs
+;
+
+105 
+	m__–isiÚ
+;
+
+106 
+__±h»ad_li¡_t
+ 
+	m__li¡
+;
+
+107 
+	#__PTHREAD_MUTEX_HAVE_PREV
+ 1
+
+	)
+
+109 
+	#__PTHREAD_SPINS
+ 0, 0
+
+	)
+
+111 
+	m__nu£rs
+;
+
+112 
+__ex‹nsiÚ__
+ union
+
+116 
+	m__e¥šs
+;
+
+117 
+	m__–isiÚ
+;
+
+118 
+	#__¥šs
+ 
+__–isiÚ_d©a
+.
+__e¥šs
+
+
+	)
+
+119 
+	#__–isiÚ
+ 
+__–isiÚ_d©a
+.
+__–isiÚ
+
+
+	)
+
+120 
+	#__PTHREAD_SPINS
+ { 0, 0 }
+
+	)
+
+121 } 
+	m__–isiÚ_d©a
+;
+
+122 
+__±h»ad_¦i¡_t
+ 
+	m__li¡
+;
+
+125 } 
+	m__d©a
+;
+
+126 
+	m__size
+[
+__SIZEOF_PTHREAD_MUTEX_T
+];
+
+127 
+	m__®ign
+;
+
+128 } 
+	t±h»ad_mu‹x_t
+;
+
+132 
+	m__size
+[
+__SIZEOF_PTHREAD_MUTEXATTR_T
+];
+
+133 
+	m__®ign
+;
+
+134 } 
+	t±h»ad_mu‹x©Œ_t
+;
+
+143 
+	m__lock
+;
+
+144 
+	m__fu‹x
+;
+
+145 
+__ex‹nsiÚ__
+ 
+	m__tÙ®_£q
+;
+
+146 
+__ex‹nsiÚ__
+ 
+	m__wakeup_£q
+;
+
+147 
+__ex‹nsiÚ__
+ 
+	m__wok’_£q
+;
+
+148 *
+	m__mu‹x
+;
+
+149 
+	m__nwa™”s
+;
+
+150 
+	m__brßdÿ¡_£q
+;
+
+151 } 
+	m__d©a
+;
+
+152 
+	m__size
+[
+__SIZEOF_PTHREAD_COND_T
+];
+
+153 
+__ex‹nsiÚ__
+ 
+	m__®ign
+;
+
+154 } 
+	t±h»ad_cÚd_t
+;
+
+158 
+	m__size
+[
+__SIZEOF_PTHREAD_CONDATTR_T
+];
+
+159 
+	m__®ign
+;
+
+160 } 
+	t±h»ad_cÚd©Œ_t
+;
+
+164 
+	t±h»ad_key_t
+;
+
+168 
+	t±h»ad_Úû_t
+;
+
+171 #ià
+defšed
+ 
+__USE_UNIX98
+ || defšed 
+__USE_XOPEN2K
+
+
+176 #ifdeà
+__x86_64__
+
+
+179 
+	m__lock
+;
+
+180 
+	m__Ä_»ad”s
+;
+
+181 
+	m__»ad”s_wakeup
+;
+
+182 
+	m__wr™”_wakeup
+;
+
+183 
+	m__Ä_»ad”s_queued
+;
+
+184 
+	m__Ä_wr™”s_queued
+;
+
+185 
+	m__wr™”
+;
+
+186 
+	m__sh¬ed
+;
+
+187 sigÃd 
+	m__rw–isiÚ
+;
+
+188 #ifdeà 
+__ILP32__
+
+
+189 
+	m__·d1
+[3];
+
+190 
+	#__PTHREAD_RWLOCK_ELISION_EXTRA
+ 0, { 0, 0, 0 }
+
+	)
+
+192 
+	m__·d1
+[7];
+
+193 
+	#__PTHREAD_RWLOCK_ELISION_EXTRA
+ 0, { 0, 0, 0, 0, 0, 0, 0 }
+
+	)
+
+195 
+	m__·d2
+;
+
+198 
+	m__æags
+;
+
+199 
+	#__PTHREAD_RWLOCK_INT_FLAGS_SHARED
+ 1
+
+	)
+
+200 } 
+	m__d©a
+;
+
+204 
+	m__lock
+;
+
+205 
+	m__Ä_»ad”s
+;
+
+206 
+	m__»ad”s_wakeup
+;
+
+207 
+	m__wr™”_wakeup
+;
+
+208 
+	m__Ä_»ad”s_queued
+;
+
+209 
+	m__Ä_wr™”s_queued
+;
+
+212 
+	m__æags
+;
+
+213 
+	m__sh¬ed
+;
+
+214 sigÃd 
+	m__rw–isiÚ
+;
+
+215 
+	#__PTHREAD_RWLOCK_ELISION_EXTRA
+ 0
+
+	)
+
+216 
+	m__·d2
+;
+
+217 
+	m__wr™”
+;
+
+218 } 
+	m__d©a
+;
+
+220 
+	m__size
+[
+__SIZEOF_PTHREAD_RWLOCK_T
+];
+
+221 
+	m__®ign
+;
+
+222 } 
+	t±h»ad_rwlock_t
+;
+
+226 
+	m__size
+[
+__SIZEOF_PTHREAD_RWLOCKATTR_T
+];
+
+227 
+	m__®ign
+;
+
+228 } 
+	t±h»ad_rwlock©Œ_t
+;
+
+232 #ifdeà
+__USE_XOPEN2K
+
+
+234 vÞ©ž
+	t±h»ad_¥šlock_t
+;
+
+241 
+	m__size
+[
+__SIZEOF_PTHREAD_BARRIER_T
+];
+
+242 
+	m__®ign
+;
+
+243 } 
+	t±h»ad_b¬r›r_t
+;
+
+247 
+	m__size
+[
+__SIZEOF_PTHREAD_BARRIERATTR_T
+];
+
+248 
+	m__®ign
+;
+
+249 } 
+	t±h»ad_b¬r›¿‰r_t
+;
+
+253 #iâdeà
+__x86_64__
+
+
+255 
+	#__þ—nup_fù_©Œibu‹
+ 
+	`__©Œibu‹__
+ ((
+	`__»g·rm__
+ (1)))
+
+	)
+
+	@/usr/include/bits/setjmp.h
+
+19 #iâdeà
+_BITS_SETJMP_H
+
+
+20 
+	#_BITS_SETJMP_H
+ 1
+
+	)
+
+22 #ià!
+defšed
+ 
+_SETJMP_H
+ && !defšed 
+_PTHREAD_H
+
+
+26 
+	~<b™s/wÜdsize.h
+>
+
+28 #iâdeà
+_ASM
+
+
+30 #ià
+__WORDSIZE
+ == 64
+
+31 
+	t__jmp_buf
+[8];
+
+32 #–ià
+defšed
+ 
+__x86_64__
+
+
+33 
+__ex‹nsiÚ__
+ 
+	t__jmp_buf
+[8];
+
+35 
+	t__jmp_buf
+[6];
+
+	@/usr/include/bits/setjmp2.h
+
+19 #iâdeà
+_SETJMP_H
+
+
+24 #ifdeà
+__REDIRECT_NTH
+
+
+25 

+__REDIRECT_NTHNL
+ (
+lÚgjmp
+,
+
+26 (
+__jmp_buf_g
+ 
+__’v
+[1], 
+__v®
+),
+
+27 
+__lÚgjmp_chk
+è
+__©Œibu‹__
+ ((
+__nܑuº__
+));
+
+28 

+__REDIRECT_NTHNL
+ (
+_lÚgjmp
+,
+
+29 (
+__jmp_buf_g
+ 
+__’v
+[1], 
+__v®
+),
+
+30 
+__lÚgjmp_chk
+è
+__©Œibu‹__
+ ((
+__nܑuº__
+));
+
+31 

+__REDIRECT_NTHNL
+ (
+siglÚgjmp
+,
+
+32 (
+__jmp_buf_g
+ 
+__’v
+[1], 
+__v®
+),
+
+33 
+__lÚgjmp_chk
+è
+__©Œibu‹__
+ ((
+__nܑuº__
+));
+
+35 

+__lÚgjmp_chk
+ (
+__jmp_buf_g
+ 
+__’v
+[1], 
+__v®
+),
+
+36 
+__THROWNL
+ 
+__©Œibu‹__
+ ((
+__nܑuº__
+));
+
+37 
+	#lÚgjmp
+ 
+__lÚgjmp_chk
+
+
+	)
+
+38 
+	#_lÚgjmp
+ 
+__lÚgjmp_chk
+
+
+	)
+
+39 
+	#siglÚgjmp
+ 
+__lÚgjmp_chk
+
+
+	)
+
+	@/usr/include/bits/sigaction.h
+
+19 #iâdeà
+_SIGNAL_H
+
+
+24 
+	ssigaùiÚ
+
+
+27 #ifdeà
+__USE_POSIX199309
+
+
+31 
+__sighªdËr_t
+ 
+	m§_hªdËr
+;
+
+33 (*
+	m§_sigaùiÚ
+è(, 
+	msigšfo_t
+ *, *);
+
+35 
+	m__sigaùiÚ_hªdËr
+;
+
+36 
+	#§_hªdËr
+ 
+__sigaùiÚ_hªdËr
+.
+§_hªdËr
+
+
+	)
+
+37 
+	#§_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 
+	m§_æags
+;
+
+49 (*
+	m§_»¡Ü”
+) ();
+
+53 
+	#SA_NOCLDSTOP
+ 1
+
+	)
+
+54 
+	#SA_NOCLDWAIT
+ 2
+
+	)
+
+55 
+	#SA_SIGINFO
+ 4
+
+	)
+
+57 #ià
+defšed
+ 
+__USE_UNIX98
+ || defšed 
+__USE_MISC
+
+
+58 
+	#SA_ONSTACK
+ 0x08000000
+
+	)
+
+60 #ià
+defšed
+ 
+__USE_UNIX98
+ || defšed 
+__USE_XOPEN2K8
+
+
+61 
+	#SA_RESTART
+ 0x10000000
+
+	)
+
+62 
+	#SA_NODEFER
+ 0x40000000
+
+	)
+
+64 
+	#SA_RESETHAND
+ 0x80000000
+
+	)
+
+66 #ifdeà
+__USE_MISC
+
+
+67 
+	#SA_INTERRUPT
+ 0x20000000
+
+	)
+
+70 
+	#SA_NOMASK
+ 
+SA_NODEFER
+
+
+	)
+
+71 
+	#SA_ONESHOT
+ 
+SA_RESETHAND
+
+
+	)
+
+72 
+	#SA_STACK
+ 
+SA_ONSTACK
+
+
+	)
+
+76 
+	#SIG_BLOCK
+ 0
+
+	)
+
+77 
+	#SIG_UNBLOCK
+ 1
+
+	)
+
+78 
+	#SIG_SETMASK
+ 2
+
+	)
+
+	@/usr/include/bits/sigcontext.h
+
+18 #iâdeà
+_BITS_SIGCONTEXT_H
+
+
+19 
+	#_BITS_SIGCONTEXT_H
+ 1
+
+	)
+
+21 #ià!
+defšed
+ 
+_SIGNAL_H
+ && !defšed 
+_SYS_UCONTEXT_H
+
+
+25 
+	#FP_XSTATE_MAGIC1
+ 0x46505853U
+
+	)
+
+26 
+	#FP_XSTATE_MAGIC2
+ 0x46505845U
+
+	)
+
+27 
+	#FP_XSTATE_MAGIC2_SIZE
+ (
+FP_XSTATE_MAGIC2
+)
+
+	)
+
+29 
+	s_åx_sw_by‹s
+
+
+31 
+__ušt32_t
+ 
+	mmagic1
+;
+
+32 
+__ušt32_t
+ 
+	mex‹nded_size
+;
+
+33 
+__ušt64_t
+ 
+	mx¡©e_bv
+;
+
+34 
+__ušt32_t
+ 
+	mx¡©e_size
+;
+
+35 
+__ušt32_t
+ 
+	m·ddšg
+[7];
+
+38 
+	s_å»g
+
+
+40 
+	msignifiÿnd
+[4];
+
+41 
+	mexpڒt
+;
+
+44 
+	s_åx»g
+
+
+46 
+	msignifiÿnd
+[4];
+
+47 
+	mexpڒt
+;
+
+48 
+	m·ddšg
+[3];
+
+51 
+	s_xmm»g
+
+
+53 
+__ušt32_t
+ 
+	m–em’t
+[4];
+
+58 #iâdeà
+__x86_64__
+
+
+60 
+	s_å¡©e
+
+
+63 
+__ušt32_t
+ 
+	mcw
+;
+
+64 
+__ušt32_t
+ 
+	msw
+;
+
+65 
+__ušt32_t
+ 
+	mg
+;
+
+66 
+__ušt32_t
+ 
+	moff
+;
+
+67 
+__ušt32_t
+ 
+	mcs£l
+;
+
+68 
+__ušt32_t
+ 
+	md©aoff
+;
+
+69 
+__ušt32_t
+ 
+	md©a£l
+;
+
+70 
+_å»g
+ 
+	m_¡
+[8];
+
+71 
+	m¡©us
+;
+
+72 
+	mmagic
+;
+
+75 
+__ušt32_t
+ 
+	m_fx¤_’v
+[6];
+
+76 
+__ušt32_t
+ 
+	mmxc¤
+;
+
+77 
+__ušt32_t
+ 
+	mȣrved
+;
+
+78 
+_åx»g
+ 
+	m_fx¤_¡
+[8];
+
+79 
+_xmm»g
+ 
+	m_xmm
+[8];
+
+80 
+__ušt32_t
+ 
+	m·ddšg
+[56];
+
+83 #iâdeà
+sigcڋxt_¡ruù
+
+
+88 
+	#sigcڋxt_¡ruù
+ 
+sigcڋxt
+
+
+	)
+
+91 
+	#X86_FXSR_MAGIC
+ 0x0000
+
+	)
+
+93 
+	ssigcڋxt
+
+
+95 
+	mgs
+, 
+	m__gsh
+;
+
+96 
+	mfs
+, 
+	m__fsh
+;
+
+97 
+	mes
+, 
+	m__esh
+;
+
+98 
+	mds
+, 
+	m__dsh
+;
+
+99 
+	medi
+;
+
+100 
+	mesi
+;
+
+101 
+	mebp
+;
+
+102 
+	me¥
+;
+
+103 
+	mebx
+;
+
+104 
+	medx
+;
+
+105 
+	mecx
+;
+
+106 
+	m—x
+;
+
+107 
+	mŒ­no
+;
+
+108 
+	m”r
+;
+
+109 
+	me
+;
+
+110 
+	mcs
+, 
+	m__csh
+;
+
+111 
+	meæags
+;
+
+112 
+	me¥_©_sigÇl
+;
+
+113 
+	mss
+, 
+	m__ssh
+;
+
+114 
+_å¡©e
+ * 
+	må¡©e
+;
+
+115 
+	mÞdmask
+;
+
+116 
+	mü2
+;
+
+121 
+	s_å¡©e
+
+
+124 
+__ušt16_t
+ 
+	mcwd
+;
+
+125 
+__ušt16_t
+ 
+	mswd
+;
+
+126 
+__ušt16_t
+ 
+	máw
+;
+
+127 
+__ušt16_t
+ 
+	mfÝ
+;
+
+128 
+__ušt64_t
+ 
+	mr
+;
+
+129 
+__ušt64_t
+ 
+	mrdp
+;
+
+130 
+__ušt32_t
+ 
+	mmxc¤
+;
+
+131 
+__ušt32_t
+ 
+	mmxü_mask
+;
+
+132 
+_åx»g
+ 
+	m_¡
+[8];
+
+133 
+_xmm»g
+ 
+	m_xmm
+[16];
+
+134 
+__ušt32_t
+ 
+	m·ddšg
+[24];
+
+137 
+	ssigcڋxt
+
+
+139 
+__ušt64_t
+ 
+	mr8
+;
+
+140 
+__ušt64_t
+ 
+	mr9
+;
+
+141 
+__ušt64_t
+ 
+	mr10
+;
+
+142 
+__ušt64_t
+ 
+	mr11
+;
+
+143 
+__ušt64_t
+ 
+	mr12
+;
+
+144 
+__ušt64_t
+ 
+	mr13
+;
+
+145 
+__ušt64_t
+ 
+	mr14
+;
+
+146 
+__ušt64_t
+ 
+	mr15
+;
+
+147 
+__ušt64_t
+ 
+	mrdi
+;
+
+148 
+__ušt64_t
+ 
+	mrsi
+;
+
+149 
+__ušt64_t
+ 
+	mrbp
+;
+
+150 
+__ušt64_t
+ 
+	mrbx
+;
+
+151 
+__ušt64_t
+ 
+	mrdx
+;
+
+152 
+__ušt64_t
+ 
+	m¿x
+;
+
+153 
+__ušt64_t
+ 
+	mrcx
+;
+
+154 
+__ušt64_t
+ 
+	mr¥
+;
+
+155 
+__ušt64_t
+ 
+	mr
+;
+
+156 
+__ušt64_t
+ 
+	meæags
+;
+
+157 
+	mcs
+;
+
+158 
+	mgs
+;
+
+159 
+	mfs
+;
+
+160 
+	m__·d0
+;
+
+161 
+__ušt64_t
+ 
+	m”r
+;
+
+162 
+__ušt64_t
+ 
+	mŒ­no
+;
+
+163 
+__ušt64_t
+ 
+	mÞdmask
+;
+
+164 
+__ušt64_t
+ 
+	mü2
+;
+
+165 
+__ex‹nsiÚ__
+ union
+
+167 
+_å¡©e
+ * 
+	må¡©e
+;
+
+168 
+__ušt64_t
+ 
+	m__å¡©e_wÜd
+;
+
+170 
+__ušt64_t
+ 
+	m__ȣrved1
+ [8];
+
+175 
+	s_x§ve_hdr
+
+
+177 
+__ušt64_t
+ 
+	mx¡©e_bv
+;
+
+178 
+__ušt64_t
+ 
+	mȣrved1
+[2];
+
+179 
+__ušt64_t
+ 
+	mȣrved2
+[5];
+
+182 
+	s_ymmh_¡©e
+
+
+184 
+__ušt32_t
+ 
+	mymmh_¥aû
+[64];
+
+187 
+	s_x¡©e
+
+
+189 
+_å¡©e
+ 
+	må¡©e
+;
+
+190 
+_x§ve_hdr
+ 
+	mx¡©e_hdr
+;
+
+191 
+_ymmh_¡©e
+ 
+	mymmh
+;
+
+	@/usr/include/bits/siginfo.h
+
+19 #ià!
+defšed
+ 
+_SIGNAL_H
+ && !defšed 
+__Ãed_sigšfo_t
+ \
+
+20 && !
+defšed
+ 
+	g__Ãed_sigev’t_t
+
+
+24 
+	~<b™s/wÜdsize.h
+>
+
+26 #ià(!
+defšed
+ 
+__have_sigv®_t
+ \
+
+27 && (
+defšed
+ 
+	g_SIGNAL_H
+ || defšed 
+	g__Ãed_sigšfo_t
+ \
+
+28 || 
+defšed
+ 
+	g__Ãed_sigev’t_t
+))
+
+29 
+	#__have_sigv®_t
+ 1
+
+	)
+
+32 
+	usigv®
+
+
+34 
+	msiv®_št
+;
+
+35 *
+	msiv®_±r
+;
+
+36 } 
+	tsigv®_t
+;
+
+39 #ià(!
+defšed
+ 
+__have_sigšfo_t
+ \
+
+40 && (
+defšed
+ 
+	g_SIGNAL_H
+ || defšed 
+	g__Ãed_sigšfo_t
+))
+
+41 
+	#__have_sigšfo_t
+ 1
+
+	)
+
+43 
+	#__SI_MAX_SIZE
+ 128
+
+	)
+
+44 #ià
+__WORDSIZE
+ == 64
+
+45 
+	#__SI_PAD_SIZE
+ ((
+__SI_MAX_SIZE
+ /  ()è- 4)
+
+	)
+
+47 
+	#__SI_PAD_SIZE
+ ((
+__SI_MAX_SIZE
+ /  ()è- 3)
+
+	)
+
+50 #ià
+defšed
+ 
+__x86_64__
+ && 
+__WORDSIZE
+ == 32
+
+55 
+__þock_t
+ 
+	t__©Œibu‹__
+ ((
+	t__®igÃd__
+ (4))è
+	t__sigchld_þock_t
+;
+
+56 
+	#__SI_ALIGNMENT
+ 
+	`__©Œibu‹__
+ ((
+	`__®igÃd__
+ (8)))
+
+	)
+
+58 
+__þock_t
+ 
+	t__sigchld_þock_t
+;
+
+59 
+	#__SI_ALIGNMENT
+
+
+	)
+
+64 
+si_signo
+;
+
+65 
+si_Ӽo
+;
+
+67 
+si_code
+;
+
+71 
+_·d
+[
+__SI_PAD_SIZE
+];
+
+76 
+__pid_t
+ 
+si_pid
+;
+
+77 
+__uid_t
+ 
+si_uid
+;
+
+78 } 
+_kžl
+;
+
+83 
+si_tid
+;
+
+84 
+si_ov”run
+;
+
+85 
+sigv®_t
+ 
+si_sigv®
+;
+
+86 } 
+_tim”
+;
+
+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 
+si_¡©us
+;
+
+102 
+__sigchld_þock_t
+ 
+si_utime
+;
+
+103 
+__sigchld_þock_t
+ 
+si_¡ime
+;
+
+104 } 
+_sigchld
+;
+
+109 *
+si_addr
+;
+
+110 
+si_addr_lsb
+;
+
+113 *
+_low”
+;
+
+114 *
+_uµ”
+;
+
+115 } 
+si_addr_bnd
+;
+
+116 } 
+_sigçuÉ
+;
+
+121 
+si_bªd
+;
+
+122 
+si_fd
+;
+
+123 } 
+_sigpÞl
+;
+
+128 *
+_ÿÎ_addr
+;
+
+129 
+_sysÿÎ
+;
+
+130 
+_¬ch
+;
+
+131 } 
+_sigsys
+;
+
+132 } 
+_sif›lds
+;
+
+133 } 
+	tsigšfo_t
+ 
+	t__SI_ALIGNMENT
+;
+
+137 
+	#si_pid
+ 
+_sif›lds
+.
+_kžl
+.
+si_pid
+
+
+	)
+
+138 
+	#si_uid
+ 
+_sif›lds
+.
+_kžl
+.
+si_uid
+
+
+	)
+
+139 
+	#si_tim”id
+ 
+_sif›lds
+.
+_tim”
+.
+si_tid
+
+
+	)
+
+140 
+	#si_ov”run
+ 
+_sif›lds
+.
+_tim”
+.
+si_ov”run
+
+
+	)
+
+141 
+	#si_¡©us
+ 
+_sif›lds
+.
+_sigchld
+.
+si_¡©us
+
+
+	)
+
+142 
+	#si_utime
+ 
+_sif›lds
+.
+_sigchld
+.
+si_utime
+
+
+	)
+
+143 
+	#si_¡ime
+ 
+_sif›lds
+.
+_sigchld
+.
+si_¡ime
+
+
+	)
+
+144 
+	#si_v®ue
+ 
+_sif›lds
+.
+_¹
+.
+si_sigv®
+
+
+	)
+
+145 
+	#si_št
+ 
+_sif›lds
+.
+_¹
+.
+si_sigv®
+.
+siv®_št
+
+
+	)
+
+146 
+	#si_±r
+ 
+_sif›lds
+.
+_¹
+.
+si_sigv®
+.
+siv®_±r
+
+
+	)
+
+147 
+	#si_addr
+ 
+_sif›lds
+.
+_sigçuÉ
+.
+si_addr
+
+
+	)
+
+148 
+	#si_addr_lsb
+ 
+_sif›lds
+.
+_sigçuÉ
+.
+si_addr_lsb
+
+
+	)
+
+149 
+	#si_low”
+ 
+_sif›lds
+.
+_sigçuÉ
+.
+si_addr_bnd
+.
+_low”
+
+
+	)
+
+150 
+	#si_uµ”
+ 
+_sif›lds
+.
+_sigçuÉ
+.
+si_addr_bnd
+.
+_uµ”
+
+
+	)
+
+151 
+	#si_bªd
+ 
+_sif›lds
+.
+_sigpÞl
+.
+si_bªd
+
+
+	)
+
+152 
+	#si_fd
+ 
+_sif›lds
+.
+_sigpÞl
+.
+si_fd
+
+
+	)
+
+153 
+	#si_ÿÎ_addr
+ 
+_sif›lds
+.
+_sigsys
+.
+_ÿÎ_addr
+
+
+	)
+
+154 
+	#si_sysÿÎ
+ 
+_sif›lds
+.
+_sigsys
+.
+_sysÿÎ
+
+
+	)
+
+155 
+	#si_¬ch
+ 
+_sif›lds
+.
+_sigsys
+.
+_¬ch
+
+
+	)
+
+162 
+SI_ASYNCNL
+ = -60,
+
+163 
+	#SI_ASYNCNL
+ 
+SI_ASYNCNL
+
+
+	)
+
+164 
+SI_TKILL
+ = -6,
+
+165 
+	#SI_TKILL
+ 
+SI_TKILL
+
+
+	)
+
+166 
+SI_SIGIO
+,
+
+167 
+	#SI_SIGIO
+ 
+SI_SIGIO
+
+
+	)
+
+168 
+SI_ASYNCIO
+,
+
+169 
+	#SI_ASYNCIO
+ 
+SI_ASYNCIO
+
+
+	)
+
+170 
+SI_MESGQ
+,
+
+171 
+	#SI_MESGQ
+ 
+SI_MESGQ
+
+
+	)
+
+172 
+SI_TIMER
+,
+
+173 
+	#SI_TIMER
+ 
+SI_TIMER
+
+
+	)
+
+174 
+SI_QUEUE
+,
+
+175 
+	#SI_QUEUE
+ 
+SI_QUEUE
+
+
+	)
+
+176 
+SI_USER
+,
+
+177 
+	#SI_USER
+ 
+SI_USER
+
+
+	)
+
+178 
+SI_KERNEL
+ = 0x80
+
+179 
+	#SI_KERNEL
+ 
+SI_KERNEL
+
+
+	)
+
+183 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K8
+
+
+187 
+ILL_ILLOPC
+ = 1,
+
+188 
+	#ILL_ILLOPC
+ 
+ILL_ILLOPC
+
+
+	)
+
+189 
+ILL_ILLOPN
+,
+
+190 
+	#ILL_ILLOPN
+ 
+ILL_ILLOPN
+
+
+	)
+
+191 
+ILL_ILLADR
+,
+
+192 
+	#ILL_ILLADR
+ 
+ILL_ILLADR
+
+
+	)
+
+193 
+ILL_ILLTRP
+,
+
+194 
+	#ILL_ILLTRP
+ 
+ILL_ILLTRP
+
+
+	)
+
+195 
+ILL_PRVOPC
+,
+
+196 
+	#ILL_PRVOPC
+ 
+ILL_PRVOPC
+
+
+	)
+
+197 
+ILL_PRVREG
+,
+
+198 
+	#ILL_PRVREG
+ 
+ILL_PRVREG
+
+
+	)
+
+199 
+ILL_COPROC
+,
+
+200 
+	#ILL_COPROC
+ 
+ILL_COPROC
+
+
+	)
+
+201 
+ILL_BADSTK
+
+
+202 
+	#ILL_BADSTK
+ 
+ILL_BADSTK
+
+
+	)
+
+208 
+FPE_INTDIV
+ = 1,
+
+209 
+	#FPE_INTDIV
+ 
+FPE_INTDIV
+
+
+	)
+
+210 
+FPE_INTOVF
+,
+
+211 
+	#FPE_INTOVF
+ 
+FPE_INTOVF
+
+
+	)
+
+212 
+FPE_FLTDIV
+,
+
+213 
+	#FPE_FLTDIV
+ 
+FPE_FLTDIV
+
+
+	)
+
+214 
+FPE_FLTOVF
+,
+
+215 
+	#FPE_FLTOVF
+ 
+FPE_FLTOVF
+
+
+	)
+
+216 
+FPE_FLTUND
+,
+
+217 
+	#FPE_FLTUND
+ 
+FPE_FLTUND
+
+
+	)
+
+218 
+FPE_FLTRES
+,
+
+219 
+	#FPE_FLTRES
+ 
+FPE_FLTRES
+
+
+	)
+
+220 
+FPE_FLTINV
+,
+
+221 
+	#FPE_FLTINV
+ 
+FPE_FLTINV
+
+
+	)
+
+222 
+FPE_FLTSUB
+
+
+223 
+	#FPE_FLTSUB
+ 
+FPE_FLTSUB
+
+
+	)
+
+229 
+SEGV_MAPERR
+ = 1,
+
+230 
+	#SEGV_MAPERR
+ 
+SEGV_MAPERR
+
+
+	)
+
+231 
+SEGV_ACCERR
+
+
+232 
+	#SEGV_ACCERR
+ 
+SEGV_ACCERR
+
+
+	)
+
+238 
+BUS_ADRALN
+ = 1,
+
+239 
+	#BUS_ADRALN
+ 
+BUS_ADRALN
+
+
+	)
+
+240 
+BUS_ADRERR
+,
+
+241 
+	#BUS_ADRERR
+ 
+BUS_ADRERR
+
+
+	)
+
+242 
+BUS_OBJERR
+,
+
+243 
+	#BUS_OBJERR
+ 
+BUS_OBJERR
+
+
+	)
+
+244 
+BUS_MCEERR_AR
+,
+
+245 
+	#BUS_MCEERR_AR
+ 
+BUS_MCEERR_AR
+
+
+	)
+
+246 
+BUS_MCEERR_AO
+
+
+247 
+	#BUS_MCEERR_AO
+ 
+BUS_MCEERR_AO
+
+
+	)
+
+251 #ifdeà
+__USE_XOPEN_EXTENDED
+
+
+255 
+TRAP_BRKPT
+ = 1,
+
+256 
+	#TRAP_BRKPT
+ 
+TRAP_BRKPT
+
+
+	)
+
+257 
+TRAP_TRACE
+
+
+258 
+	#TRAP_TRACE
+ 
+TRAP_TRACE
+
+
+	)
+
+262 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K8
+
+
+266 
+CLD_EXITED
+ = 1,
+
+267 
+	#CLD_EXITED
+ 
+CLD_EXITED
+
+
+	)
+
+268 
+CLD_KILLED
+,
+
+269 
+	#CLD_KILLED
+ 
+CLD_KILLED
+
+
+	)
+
+270 
+CLD_DUMPED
+,
+
+271 
+	#CLD_DUMPED
+ 
+CLD_DUMPED
+
+
+	)
+
+272 
+CLD_TRAPPED
+,
+
+273 
+	#CLD_TRAPPED
+ 
+CLD_TRAPPED
+
+
+	)
+
+274 
+CLD_STOPPED
+,
+
+275 
+	#CLD_STOPPED
+ 
+CLD_STOPPED
+
+
+	)
+
+276 
+CLD_CONTINUED
+
+
+277 
+	#CLD_CONTINUED
+ 
+CLD_CONTINUED
+
+
+	)
+
+283 
+POLL_IN
+ = 1,
+
+284 
+	#POLL_IN
+ 
+POLL_IN
+
+
+	)
+
+285 
+POLL_OUT
+,
+
+286 
+	#POLL_OUT
+ 
+POLL_OUT
+
+
+	)
+
+287 
+POLL_MSG
+,
+
+288 
+	#POLL_MSG
+ 
+POLL_MSG
+
+
+	)
+
+289 
+POLL_ERR
+,
+
+290 
+	#POLL_ERR
+ 
+POLL_ERR
+
+
+	)
+
+291 
+POLL_PRI
+,
+
+292 
+	#POLL_PRI
+ 
+POLL_PRI
+
+
+	)
+
+293 
+POLL_HUP
+
+
+294 
+	#POLL_HUP
+ 
+POLL_HUP
+
+
+	)
+
+298 #undeà
+__Ãed_sigšfo_t
+
+
+302 #ià(
+defšed
+ 
+_SIGNAL_H
+ || defšed 
+__Ãed_sigev’t_t
+) \
+
+303 && !
+defšed
+ 
+__have_sigev’t_t
+
+
+304 
+	#__have_sigev’t_t
+ 1
+
+	)
+
+307 
+	#__SIGEV_MAX_SIZE
+ 64
+
+	)
+
+308 #ià
+__WORDSIZE
+ == 64
+
+309 
+	#__SIGEV_PAD_SIZE
+ ((
+__SIGEV_MAX_SIZE
+ /  ()è- 4)
+
+	)
+
+311 
+	#__SIGEV_PAD_SIZE
+ ((
+__SIGEV_MAX_SIZE
+ /  ()è- 3)
+
+	)
+
+315 #iâdeà
+__have_±h»ad_©Œ_t
+
+
+316 
+±h»ad_©Œ_t
+ 
+	t±h»ad_©Œ_t
+;
+
+317 
+	#__have_±h»ad_©Œ_t
+ 1
+
+	)
+
+320 
+	ssigev’t
+
+
+322 
+sigv®_t
+ 
+sigev_v®ue
+;
+
+323 
+sigev_signo
+;
+
+324 
+sigev_nÙify
+;
+
+328 
+_·d
+[
+__SIGEV_PAD_SIZE
+];
+
+332 
+__pid_t
+ 
+_tid
+;
+
+336 (*
+_funùiÚ
+è(
+sigv®_t
+);
+
+337 
+±h»ad_©Œ_t
+ *
+_©Œibu‹
+;
+
+338 } 
+_sigev_th»ad
+;
+
+339 } 
+_sigev_un
+;
+
+340 } 
+	tsigev’t_t
+;
+
+343 
+	#sigev_nÙify_funùiÚ
+ 
+_sigev_un
+.
+_sigev_th»ad
+.
+_funùiÚ
+
+
+	)
+
+344 
+	#sigev_nÙify_©Œibu‹s
+ 
+_sigev_un
+.
+_sigev_th»ad
+.
+_©Œibu‹
+
+
+	)
+
+349 
+SIGEV_SIGNAL
+ = 0,
+
+350 
+	#SIGEV_SIGNAL
+ 
+SIGEV_SIGNAL
+
+
+	)
+
+351 
+SIGEV_NONE
+,
+
+352 
+	#SIGEV_NONE
+ 
+SIGEV_NONE
+
+
+	)
+
+353 
+SIGEV_THREAD
+,
+
+354 
+	#SIGEV_THREAD
+ 
+SIGEV_THREAD
+
+
+	)
+
+356 
+SIGEV_THREAD_ID
+ = 4
+
+357 
+	#SIGEV_THREAD_ID
+ 
+SIGEV_THREAD_ID
+
+
+	)
+
+	@/usr/include/bits/signum.h
+
+19 #ifdef 
+_SIGNAL_H
+
+
+22 
+	#SIG_ERR
+ ((
+__sighªdËr_t
+è-1è
+
+	)
+
+23 
+	#SIG_DFL
+ ((
+__sighªdËr_t
+è0è
+
+	)
+
+24 
+	#SIG_IGN
+ ((
+__sighªdËr_t
+è1è
+
+	)
+
+26 #ifdeà
+__USE_UNIX98
+
+
+27 
+	#SIG_HOLD
+ ((
+__sighªdËr_t
+è2è
+
+	)
+
+32 
+	#SIGHUP
+ 1
+
+	)
+
+33 
+	#SIGINT
+ 2
+
+	)
+
+34 
+	#SIGQUIT
+ 3
+
+	)
+
+35 
+	#SIGILL
+ 4
+
+	)
+
+36 
+	#SIGTRAP
+ 5
+
+	)
+
+37 
+	#SIGABRT
+ 6
+
+	)
+
+38 
+	#SIGIOT
+ 6
+
+	)
+
+39 
+	#SIGBUS
+ 7
+
+	)
+
+40 
+	#SIGFPE
+ 8
+
+	)
+
+41 
+	#SIGKILL
+ 9
+
+	)
+
+42 
+	#SIGUSR1
+ 10
+
+	)
+
+43 
+	#SIGSEGV
+ 11
+
+	)
+
+44 
+	#SIGUSR2
+ 12
+
+	)
+
+45 
+	#SIGPIPE
+ 13
+
+	)
+
+46 
+	#SIGALRM
+ 14
+
+	)
+
+47 
+	#SIGTERM
+ 15
+
+	)
+
+48 
+	#SIGSTKFLT
+ 16
+
+	)
+
+49 
+	#SIGCLD
+ 
+SIGCHLD
+
+
+	)
+
+50 
+	#SIGCHLD
+ 17
+
+	)
+
+51 
+	#SIGCONT
+ 18
+
+	)
+
+52 
+	#SIGSTOP
+ 19
+
+	)
+
+53 
+	#SIGTSTP
+ 20
+
+	)
+
+54 
+	#SIGTTIN
+ 21
+
+	)
+
+55 
+	#SIGTTOU
+ 22
+
+	)
+
+56 
+	#SIGURG
+ 23
+
+	)
+
+57 
+	#SIGXCPU
+ 24
+
+	)
+
+58 
+	#SIGXFSZ
+ 25
+
+	)
+
+59 
+	#SIGVTALRM
+ 26
+
+	)
+
+60 
+	#SIGPROF
+ 27
+
+	)
+
+61 
+	#SIGWINCH
+ 28
+
+	)
+
+62 
+	#SIGPOLL
+ 
+SIGIO
+
+
+	)
+
+63 
+	#SIGIO
+ 29
+
+	)
+
+64 
+	#SIGPWR
+ 30
+
+	)
+
+65 
+	#SIGSYS
+ 31
+
+	)
+
+66 
+	#SIGUNUSED
+ 31
+
+	)
+
+68 
+	#_NSIG
+ 65
+
+	)
+
+71 
+	#SIGRTMIN
+ (
+	`__libc_cu¼’t_sig¹mš
+ ())
+
+	)
+
+72 
+	#SIGRTMAX
+ (
+	`__libc_cu¼’t_sig¹max
+ ())
+
+	)
+
+76 
+	#__SIGRTMIN
+ 32
+
+	)
+
+77 
+	#__SIGRTMAX
+ (
+_NSIG
+ - 1)
+
+	)
+
+	@/usr/include/bits/sigset.h
+
+19 #iâdef 
+_SIGSET_H_ty³s
+
+
+20 
+	#_SIGSET_H_ty³s
+ 1
+
+	)
+
+22 
+	t__sig_©omic_t
+;
+
+26 
+	#_SIGSET_NWORDS
+ (1024 / (8 *  ()))
+
+	)
+
+29 
+	m__v®
+[
+_SIGSET_NWORDS
+];
+
+30 } 
+	t__sig£t_t
+;
+
+41 #ià!
+defšed
+ 
+_SIGSET_H_âs
+ && defšed 
+_SIGNAL_H
+
+
+42 
+	#_SIGSET_H_âs
+ 1
+
+	)
+
+44 #iâdeà
+_EXTERN_INLINE
+
+
+45 
+	#_EXTERN_INLINE
+ 
+__ex‹º_šlše
+
+
+	)
+
+49 
+	#__sigmask
+(
+sig
+) \
+
+50 (((è1è<< (((
+sig
+è- 1è% (8 *  ())))
+
+	)
+
+53 
+	#__sigwÜd
+(
+sig
+è(((sigè- 1è/ (8 *  ()))
+
+	)
+
+55 #ià
+defšed
+ 
+__GNUC__
+ && __GNUC__ >= 2
+
+56 
+	#__sigem±y£t
+(
+£t
+) \
+
+57 (
+	`__ex‹nsiÚ__
+ ({ 
+__út
+ = 
+_SIGSET_NWORDS
+; \
+
+58 
+sig£t_t
+ *
+__£t
+ = (
+£t
+); \
+
+59 --
+__út
+ >ð0è
+__£t
+->
+__v®
+[__cnt] = 0; \
+
+60 0; }))
+
+	)
+
+61 
+	#__sigfžl£t
+(
+£t
+) \
+
+62 (
+	`__ex‹nsiÚ__
+ ({ 
+__út
+ = 
+_SIGSET_NWORDS
+; \
+
+63 
+sig£t_t
+ *
+__£t
+ = (
+£t
+); \
+
+64 --
+__út
+ >ð0è
+__£t
+->
+__v®
+[__cnt] = ~0UL; \
+
+65 0; }))
+
+	)
+
+67 #ifdeà
+__USE_GNU
+
+
+71 
+	#__sigi£m±y£t
+(
+£t
+) \
+
+72 (
+	`__ex‹nsiÚ__
+ ({ 
+__út
+ = 
+_SIGSET_NWORDS
+; \
+
+73 cÚ¡ 
+sig£t_t
+ *
+__£t
+ = (
+£t
+); \
+
+74 
+__»t
+ = 
+__£t
+->
+__v®
+[--
+__út
+]; \
+
+75 !
+__»t
+ && --
+__út
+ >= 0) \
+
+76 
+__»t
+ = 
+__£t
+->
+__v®
+[
+__út
+]; \
+
+77 
+__»t
+ =ð0; }))
+
+	)
+
+78 
+	#__sigªd£t
+(
+de¡
+, 
+Ëá
+, 
+right
+) \
+
+79 (
+	`__ex‹nsiÚ__
+ ({ 
+__út
+ = 
+_SIGSET_NWORDS
+; \
+
+80 
+sig£t_t
+ *
+__de¡
+ = (
+de¡
+); \
+
+81 cÚ¡ 
+sig£t_t
+ *
+__Ëá
+ = (
+Ëá
+); \
+
+82 cÚ¡ 
+sig£t_t
+ *
+__right
+ = (
+right
+); \
+
+83 --
+__út
+ >= 0) \
+
+84 
+__de¡
+->
+__v®
+[
+__út
+] = (
+__Ëá
+->__val[__cnt] \
+
+85 & 
+__right
+->
+__v®
+[
+__út
+]); \
+
+86 0; }))
+
+	)
+
+87 
+	#__sigܣt
+(
+de¡
+, 
+Ëá
+, 
+right
+) \
+
+88 (
+	`__ex‹nsiÚ__
+ ({ 
+__út
+ = 
+_SIGSET_NWORDS
+; \
+
+89 
+sig£t_t
+ *
+__de¡
+ = (
+de¡
+); \
+
+90 cÚ¡ 
+sig£t_t
+ *
+__Ëá
+ = (
+Ëá
+); \
+
+91 cÚ¡ 
+sig£t_t
+ *
+__right
+ = (
+right
+); \
+
+92 --
+__út
+ >= 0) \
+
+93 
+__de¡
+->
+__v®
+[
+__út
+] = (
+__Ëá
+->__val[__cnt] \
+
+94 | 
+__right
+->
+__v®
+[
+__út
+]); \
+
+95 0; }))
+
+	)
+
+102 

+__sigismemb”
+ (cÚ¡ 
+__sig£t_t
+ *, );
+
+103 

+__sigadd£t
+ (
+__sig£t_t
+ *, );
+
+104 

+__sigd–£t
+ (
+__sig£t_t
+ *, );
+
+106 #ifdeà
+__USE_EXTERN_INLINES
+
+
+107 
+	#__SIGSETFN
+(
+NAME
+, 
+BODY
+, 
+CONST
+) \
+
+108 
+_EXTERN_INLINE
+ \
+
+109 
+	`NAME
+ (
+CONST
+ 
+__sig£t_t
+ *
+__£t
+, 
+__sig
+) \
+
+111 
+__mask
+ = 
+	`__sigmask
+ (
+__sig
+); \
+
+112 
+__wÜd
+ = 
+	`__sigwÜd
+ (
+__sig
+); \
+
+113  
+BODY
+; \
+
+114 }
+
+	)
+
+116 
+__SIGSETFN
+ (
+__sigismemb”
+, (
+__£t
+->
+__v®
+[
+__wÜd
+] & 
+__mask
+) ? 1 : 0, const)
+
+117 
+__SIGSETFN
+ (
+__sigadd£t
+, ((
+__£t
+->
+__v®
+[
+__wÜd
+] |ð
+__mask
+), 0), )
+
+118 
+__SIGSETFN
+ (
+__sigd–£t
+, ((
+__£t
+->
+__v®
+[
+__wÜd
+] &ð~
+__mask
+), 0), )
+
+120 #undeà
+__SIGSETFN
+
+
+	@/usr/include/bits/sigstack.h
+
+19 #iâdeà
+_SIGNAL_H
+
+
+25 
+	ssig¡ack
+
+
+27 *
+	mss_¥
+;
+
+28 
+	mss_Ú¡ack
+;
+
+35 
+	mSS_ONSTACK
+ = 1,
+
+36 
+	#SS_ONSTACK
+ 
+SS_ONSTACK
+
+
+	)
+
+37 
+	mSS_DISABLE
+
+
+38 
+	#SS_DISABLE
+ 
+SS_DISABLE
+
+
+	)
+
+42 
+	#MINSIGSTKSZ
+ 2048
+
+	)
+
+45 
+	#SIGSTKSZ
+ 8192
+
+	)
+
+49 
+	ssig®t¡ack
+
+
+51 *
+	mss_¥
+;
+
+52 
+	mss_æags
+;
+
+53 
+size_t
+ 
+	mss_size
+;
+
+54 } 
+	t¡ack_t
+;
+
+	@/usr/include/bits/sigthread.h
+
+19 #iâdeà
+_BITS_SIGTHREAD_H
+
+
+20 
+	#_BITS_SIGTHREAD_H
+ 1
+
+	)
+
+22 #ià!
+defšed
+ 
+_SIGNAL_H
+ && !defšed 
+_PTHREAD_H
+
+
+30 

+	$±h»ad_sigmask
+ (
+__how
+,
+
+31 cÚ¡ 
+__sig£t_t
+ *
+__»¡riù
+ 
+__Ãwmask
+,
+
+32 
+__sig£t_t
+ *
+__»¡riù
+ 
+__Þdmask
+)
+__THROW
+;
+
+35 

+	$±h»ad_kžl
+ (
+±h»ad_t
+ 
+__th»adid
+, 
+__signo
+è
+__THROW
+;
+
+37 #ifdeà
+__USE_GNU
+
+
+39 

+	$±h»ad_sigqueue
+ (
+±h»ad_t
+ 
+__th»adid
+, 
+__signo
+,
+
+40 cÚ¡ 
+sigv®
+ 
+__v®ue
+è
+__THROW
+;
+
+	@/usr/include/bits/socket.h
+
+19 #iâdeà
+__BITS_SOCKET_H
+
+
+20 
+	#__BITS_SOCKET_H
+
+
+	)
+
+22 #iâdeà
+_SYS_SOCKET_H
+
+
+26 
+	#__Ãed_size_t
+
+
+	)
+
+27 
+	~<¡ddef.h
+>
+
+29 
+	~<sys/ty³s.h
+>
+
+32 #iâdeà
+__sockËn_t_defšed
+
+
+33 
+__sockËn_t
+ 
+	tsockËn_t
+;
+
+34 
+	#__sockËn_t_defšed
+
+
+	)
+
+38 
+	~<b™s/sock‘_ty³.h
+>
+
+41 
+	#PF_UNSPEC
+ 0
+
+	)
+
+42 
+	#PF_LOCAL
+ 1
+
+	)
+
+43 
+	#PF_UNIX
+ 
+PF_LOCAL
+
+
+	)
+
+44 
+	#PF_FILE
+ 
+PF_LOCAL
+
+
+	)
+
+45 
+	#PF_INET
+ 2
+
+	)
+
+46 
+	#PF_AX25
+ 3
+
+	)
+
+47 
+	#PF_IPX
+ 4
+
+	)
+
+48 
+	#PF_APPLETALK
+ 5
+
+	)
+
+49 
+	#PF_NETROM
+ 6
+
+	)
+
+50 
+	#PF_BRIDGE
+ 7
+
+	)
+
+51 
+	#PF_ATMPVC
+ 8
+
+	)
+
+52 
+	#PF_X25
+ 9
+
+	)
+
+53 
+	#PF_INET6
+ 10
+
+	)
+
+54 
+	#PF_ROSE
+ 11
+
+	)
+
+55 
+	#PF_DECÃt
+ 12
+
+	)
+
+56 
+	#PF_NETBEUI
+ 13
+
+	)
+
+57 
+	#PF_SECURITY
+ 14
+
+	)
+
+58 
+	#PF_KEY
+ 15
+
+	)
+
+59 
+	#PF_NETLINK
+ 16
+
+	)
+
+60 
+	#PF_ROUTE
+ 
+PF_NETLINK
+
+
+	)
+
+61 
+	#PF_PACKET
+ 17
+
+	)
+
+62 
+	#PF_ASH
+ 18
+
+	)
+
+63 
+	#PF_ECONET
+ 19
+
+	)
+
+64 
+	#PF_ATMSVC
+ 20
+
+	)
+
+65 
+	#PF_RDS
+ 21
+
+	)
+
+66 
+	#PF_SNA
+ 22
+
+	)
+
+67 
+	#PF_IRDA
+ 23
+
+	)
+
+68 
+	#PF_PPPOX
+ 24
+
+	)
+
+69 
+	#PF_WANPIPE
+ 25
+
+	)
+
+70 
+	#PF_LLC
+ 26
+
+	)
+
+71 
+	#PF_IB
+ 27
+
+	)
+
+72 
+	#PF_MPLS
+ 28
+
+	)
+
+73 
+	#PF_CAN
+ 29
+
+	)
+
+74 
+	#PF_TIPC
+ 30
+
+	)
+
+75 
+	#PF_BLUETOOTH
+ 31
+
+	)
+
+76 
+	#PF_IUCV
+ 32
+
+	)
+
+77 
+	#PF_RXRPC
+ 33
+
+	)
+
+78 
+	#PF_ISDN
+ 34
+
+	)
+
+79 
+	#PF_PHONET
+ 35
+
+	)
+
+80 
+	#PF_IEEE802154
+ 36
+
+	)
+
+81 
+	#PF_CAIF
+ 37
+
+	)
+
+82 
+	#PF_ALG
+ 38
+
+	)
+
+83 
+	#PF_NFC
+ 39
+
+	)
+
+84 
+	#PF_VSOCK
+ 40
+
+	)
+
+85 
+	#PF_MAX
+ 41
+
+	)
+
+88 
+	#AF_UNSPEC
+ 
+PF_UNSPEC
+
+
+	)
+
+89 
+	#AF_LOCAL
+ 
+PF_LOCAL
+
+
+	)
+
+90 
+	#AF_UNIX
+ 
+PF_UNIX
+
+
+	)
+
+91 
+	#AF_FILE
+ 
+PF_FILE
+
+
+	)
+
+92 
+	#AF_INET
+ 
+PF_INET
+
+
+	)
+
+93 
+	#AF_AX25
+ 
+PF_AX25
+
+
+	)
+
+94 
+	#AF_IPX
+ 
+PF_IPX
+
+
+	)
+
+95 
+	#AF_APPLETALK
+ 
+PF_APPLETALK
+
+
+	)
+
+96 
+	#AF_NETROM
+ 
+PF_NETROM
+
+
+	)
+
+97 
+	#AF_BRIDGE
+ 
+PF_BRIDGE
+
+
+	)
+
+98 
+	#AF_ATMPVC
+ 
+PF_ATMPVC
+
+
+	)
+
+99 
+	#AF_X25
+ 
+PF_X25
+
+
+	)
+
+100 
+	#AF_INET6
+ 
+PF_INET6
+
+
+	)
+
+101 
+	#AF_ROSE
+ 
+PF_ROSE
+
+
+	)
+
+102 
+	#AF_DECÃt
+ 
+PF_DECÃt
+
+
+	)
+
+103 
+	#AF_NETBEUI
+ 
+PF_NETBEUI
+
+
+	)
+
+104 
+	#AF_SECURITY
+ 
+PF_SECURITY
+
+
+	)
+
+105 
+	#AF_KEY
+ 
+PF_KEY
+
+
+	)
+
+106 
+	#AF_NETLINK
+ 
+PF_NETLINK
+
+
+	)
+
+107 
+	#AF_ROUTE
+ 
+PF_ROUTE
+
+
+	)
+
+108 
+	#AF_PACKET
+ 
+PF_PACKET
+
+
+	)
+
+109 
+	#AF_ASH
+ 
+PF_ASH
+
+
+	)
+
+110 
+	#AF_ECONET
+ 
+PF_ECONET
+
+
+	)
+
+111 
+	#AF_ATMSVC
+ 
+PF_ATMSVC
+
+
+	)
+
+112 
+	#AF_RDS
+ 
+PF_RDS
+
+
+	)
+
+113 
+	#AF_SNA
+ 
+PF_SNA
+
+
+	)
+
+114 
+	#AF_IRDA
+ 
+PF_IRDA
+
+
+	)
+
+115 
+	#AF_PPPOX
+ 
+PF_PPPOX
+
+
+	)
+
+116 
+	#AF_WANPIPE
+ 
+PF_WANPIPE
+
+
+	)
+
+117 
+	#AF_LLC
+ 
+PF_LLC
+
+
+	)
+
+118 
+	#AF_IB
+ 
+PF_IB
+
+
+	)
+
+119 
+	#AF_MPLS
+ 
+PF_MPLS
+
+
+	)
+
+120 
+	#AF_CAN
+ 
+PF_CAN
+
+
+	)
+
+121 
+	#AF_TIPC
+ 
+PF_TIPC
+
+
+	)
+
+122 
+	#AF_BLUETOOTH
+ 
+PF_BLUETOOTH
+
+
+	)
+
+123 
+	#AF_IUCV
+ 
+PF_IUCV
+
+
+	)
+
+124 
+	#AF_RXRPC
+ 
+PF_RXRPC
+
+
+	)
+
+125 
+	#AF_ISDN
+ 
+PF_ISDN
+
+
+	)
+
+126 
+	#AF_PHONET
+ 
+PF_PHONET
+
+
+	)
+
+127 
+	#AF_IEEE802154
+ 
+PF_IEEE802154
+
+
+	)
+
+128 
+	#AF_CAIF
+ 
+PF_CAIF
+
+
+	)
+
+129 
+	#AF_ALG
+ 
+PF_ALG
+
+
+	)
+
+130 
+	#AF_NFC
+ 
+PF_NFC
+
+
+	)
+
+131 
+	#AF_VSOCK
+ 
+PF_VSOCK
+
+
+	)
+
+132 
+	#AF_MAX
+ 
+PF_MAX
+
+
+	)
+
+138 
+	#SOL_RAW
+ 255
+
+	)
+
+139 
+	#SOL_DECNET
+ 261
+
+	)
+
+140 
+	#SOL_X25
+ 262
+
+	)
+
+141 
+	#SOL_PACKET
+ 263
+
+	)
+
+142 
+	#SOL_ATM
+ 264
+
+	)
+
+143 
+	#SOL_AAL
+ 265
+
+	)
+
+144 
+	#SOL_IRDA
+ 266
+
+	)
+
+147 
+	#SOMAXCONN
+ 128
+
+	)
+
+150 
+	~<b™s/sockaddr.h
+>
+
+153 
+	ssockaddr
+
+
+155 
+__SOCKADDR_COMMON
+ (
+§_
+);
+
+156 
+	m§_d©a
+[14];
+
+162 
+	#__ss_®igÁy³
+ 
+
+	)
+
+163 
+	#_SS_PADSIZE
+ \
+
+164 (
+_SS_SIZE
+ - 
+__SOCKADDR_COMMON_SIZE
+ -  (
+__ss_®igÁy³
+))
+
+	)
+
+166 
+	ssockaddr_¡Üage
+
+
+168 
+__SOCKADDR_COMMON
+ (
+ss_
+);
+
+169 
+	m__ss_·ddšg
+[
+_SS_PADSIZE
+];
+
+170 
+__ss_®igÁy³
+ 
+	m__ss_®ign
+;
+
+177 
+	mMSG_OOB
+ = 0x01,
+
+178 
+	#MSG_OOB
+ 
+MSG_OOB
+
+
+	)
+
+179 
+	mMSG_PEEK
+ = 0x02,
+
+180 
+	#MSG_PEEK
+ 
+MSG_PEEK
+
+
+	)
+
+181 
+	mMSG_DONTROUTE
+ = 0x04,
+
+182 
+	#MSG_DONTROUTE
+ 
+MSG_DONTROUTE
+
+
+	)
+
+183 #ifdeà
+__USE_GNU
+
+
+185 
+	mMSG_TRYHARD
+ = 
+MSG_DONTROUTE
+,
+
+186 
+	#MSG_TRYHARD
+ 
+MSG_DONTROUTE
+
+
+	)
+
+188 
+	mMSG_CTRUNC
+ = 0x08,
+
+189 
+	#MSG_CTRUNC
+ 
+MSG_CTRUNC
+
+
+	)
+
+190 
+	mMSG_PROXY
+ = 0x10,
+
+191 
+	#MSG_PROXY
+ 
+MSG_PROXY
+
+
+	)
+
+192 
+	mMSG_TRUNC
+ = 0x20,
+
+193 
+	#MSG_TRUNC
+ 
+MSG_TRUNC
+
+
+	)
+
+194 
+	mMSG_DONTWAIT
+ = 0x40,
+
+195 
+	#MSG_DONTWAIT
+ 
+MSG_DONTWAIT
+
+
+	)
+
+196 
+	mMSG_EOR
+ = 0x80,
+
+197 
+	#MSG_EOR
+ 
+MSG_EOR
+
+
+	)
+
+198 
+	mMSG_WAITALL
+ = 0x100,
+
+199 
+	#MSG_WAITALL
+ 
+MSG_WAITALL
+
+
+	)
+
+200 
+	mMSG_FIN
+ = 0x200,
+
+201 
+	#MSG_FIN
+ 
+MSG_FIN
+
+
+	)
+
+202 
+	mMSG_SYN
+ = 0x400,
+
+203 
+	#MSG_SYN
+ 
+MSG_SYN
+
+
+	)
+
+204 
+	mMSG_CONFIRM
+ = 0x800,
+
+205 
+	#MSG_CONFIRM
+ 
+MSG_CONFIRM
+
+
+	)
+
+206 
+	mMSG_RST
+ = 0x1000,
+
+207 
+	#MSG_RST
+ 
+MSG_RST
+
+
+	)
+
+208 
+	mMSG_ERRQUEUE
+ = 0x2000,
+
+209 
+	#MSG_ERRQUEUE
+ 
+MSG_ERRQUEUE
+
+
+	)
+
+210 
+	mMSG_NOSIGNAL
+ = 0x4000,
+
+211 
+	#MSG_NOSIGNAL
+ 
+MSG_NOSIGNAL
+
+
+	)
+
+212 
+	mMSG_MORE
+ = 0x8000,
+
+213 
+	#MSG_MORE
+ 
+MSG_MORE
+
+
+	)
+
+214 
+	mMSG_WAITFORONE
+ = 0x10000,
+
+215 
+	#MSG_WAITFORONE
+ 
+MSG_WAITFORONE
+
+
+	)
+
+216 
+	mMSG_FASTOPEN
+ = 0x20000000,
+
+217 
+	#MSG_FASTOPEN
+ 
+MSG_FASTOPEN
+
+
+	)
+
+219 
+	mMSG_CMSG_CLOEXEC
+ = 0x40000000
+
+222 
+	#MSG_CMSG_CLOEXEC
+ 
+MSG_CMSG_CLOEXEC
+
+
+	)
+
+228 
+	smsghdr
+
+
+230 *
+	mmsg_Çme
+;
+
+231 
+sockËn_t
+ 
+	mmsg_Çm–’
+;
+
+233 
+iovec
+ *
+	mmsg_iov
+;
+
+234 
+size_t
+ 
+	mmsg_iovËn
+;
+
+236 *
+	mmsg_cڌÞ
+;
+
+237 
+size_t
+ 
+	mmsg_cڌÞËn
+;
+
+242 
+	mmsg_æags
+;
+
+246 
+	scmsghdr
+
+
+248 
+size_t
+ 
+	mcmsg_Ën
+;
+
+253 
+	mcmsg_Ëv–
+;
+
+254 
+	mcmsg_ty³
+;
+
+255 #ià(!
+defšed
+ 
+__STRICT_ANSI__
+ && 
+__GNUC__
+ >ð2è|| 
+__STDC_VERSION__
+ >= 199901L
+
+256 
+__ex‹nsiÚ__
+ 
+__cmsg_d©a
+ 
+	m__æex¬r
+;
+
+261 #ià(!
+defšed
+ 
+__STRICT_ANSI__
+ && 
+__GNUC__
+ >ð2è|| 
+__STDC_VERSION__
+ >= 199901L
+
+262 
+	#CMSG_DATA
+(
+cmsg
+è((cmsg)->
+__cmsg_d©a
+)
+
+	)
+
+264 
+	#CMSG_DATA
+(
+cmsg
+è((*è((
+cmsghdr
+ *è(cmsgè+ 1))
+
+	)
+
+266 
+	#CMSG_NXTHDR
+(
+mhdr
+, 
+cmsg
+è
+	`__cmsg_nxthdr
+ (mhdr, cmsg)
+
+	)
+
+267 
+	#CMSG_FIRSTHDR
+(
+mhdr
+) \
+
+268 ((
+size_t
+è(
+mhdr
+)->
+msg_cڌÞËn
+ >ð (
+cmsghdr
+) \
+
+269 ? (
+cmsghdr
+ *è(
+mhdr
+)->
+msg_cڌÞ
+ : (cmsghd¸*è0)
+
+	)
+
+270 
+	#CMSG_ALIGN
+(
+Ën
+è((֒è+  (
+size_t
+) - 1) \
+
+271 & (
+size_t
+è~( (size_tè- 1))
+
+	)
+
+272 
+	#CMSG_SPACE
+(
+Ën
+è(
+	`CMSG_ALIGN
+ (len) \
+
+273 + 
+	`CMSG_ALIGN
+ ( (
+cmsghdr
+)))
+
+	)
+
+274 
+	#CMSG_LEN
+(
+Ën
+è(
+	`CMSG_ALIGN
+ ( (
+cmsghdr
+)è+ (Ën))
+
+	)
+
+276 

+cmsghdr
+ *
+	$__cmsg_nxthdr
+ (
+msghdr
+ *
+__mhdr
+,
+
+277 
+cmsghdr
+ *
+__cmsg
+è
+__THROW
+;
+
+278 #ifdeà
+__USE_EXTERN_INLINES
+
+
+279 #iâdeà
+_EXTERN_INLINE
+
+
+280 
+	#_EXTERN_INLINE
+ 
+__ex‹º_šlše
+
+
+	)
+
+282 
+_EXTERN_INLINE
+ 
+cmsghdr
+ *
+
+283 
+	`__NTH
+ (
+	$__cmsg_nxthdr
+ (
+msghdr
+ *
+__mhdr
+, 
+cmsghdr
+ *
+__cmsg
+))
+
+285 ià((
+size_t
+è
+__cmsg
+->
+cmsg_Ën
+ <  (
+cmsghdr
+))
+
+287  (
+cmsghdr
+ *) 0;
+
+289 
+__cmsg
+ = (
+cmsghdr
+ *) ((*) __cmsg
+
+290 + 
+	`CMSG_ALIGN
+ (
+__cmsg
+->
+cmsg_Ën
+));
+
+291 ià((*è(
+__cmsg
+ + 1è> ((*è
+__mhdr
+->
+msg_cڌÞ
+
+
+292 + 
+__mhdr
+->
+msg_cڌÞËn
+)
+
+293 || ((*è
+__cmsg
+ + 
+	`CMSG_ALIGN
+ (__cmsg->
+cmsg_Ën
+)
+
+294 > ((*è
+__mhdr
+->
+msg_cڌÞ
+ + __mhdr->
+msg_cڌÞËn
+)))
+
+296  (
+cmsghdr
+ *) 0;
+
+297  
+__cmsg
+;
+
+298 
+	}
+}
+
+305 
+	mSCM_RIGHTS
+ = 0x01
+
+306 
+	#SCM_RIGHTS
+ 
+SCM_RIGHTS
+
+
+	)
+
+307 #ifdeà
+__USE_GNU
+
+
+308 , 
+	mSCM_CREDENTIALS
+ = 0x02
+
+309 
+	#SCM_CREDENTIALS
+ 
+SCM_CREDENTIALS
+
+
+	)
+
+313 #ifdeà
+__USE_GNU
+
+
+315 
+	suüed
+
+
+317 
+pid_t
+ 
+	mpid
+;
+
+318 
+uid_t
+ 
+	muid
+;
+
+319 
+gid_t
+ 
+	mgid
+;
+
+324 #iâdeà
+__USE_MISC
+
+
+325 #iâdeà
+FIOGETOWN
+
+
+326 
+	#__SYS_SOCKET_H_undef_FIOGETOWN
+
+
+	)
+
+328 #iâdeà
+FIOSETOWN
+
+
+329 
+	#__SYS_SOCKET_H_undef_FIOSETOWN
+
+
+	)
+
+331 #iâdeà
+SIOCATMARK
+
+
+332 
+	#__SYS_SOCKET_H_undef_SIOCATMARK
+
+
+	)
+
+334 #iâdeà
+SIOCGPGRP
+
+
+335 
+	#__SYS_SOCKET_H_undef_SIOCGPGRP
+
+
+	)
+
+337 #iâdeà
+SIOCGSTAMP
+
+
+338 
+	#__SYS_SOCKET_H_undef_SIOCGSTAMP
+
+
+	)
+
+340 #iâdeà
+SIOCGSTAMPNS
+
+
+341 
+	#__SYS_SOCKET_H_undef_SIOCGSTAMPNS
+
+
+	)
+
+343 #iâdeà
+SIOCSPGRP
+
+
+344 
+	#__SYS_SOCKET_H_undef_SIOCSPGRP
+
+
+	)
+
+349 
+	~<asm/sock‘.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 
+	slšg”
+
+
+385 
+	ml_Úoff
+;
+
+386 
+	ml_lšg”
+;
+
+	@/usr/include/bits/socket2.h
+
+19 #iâdeà
+_SYS_SOCKET_H
+
+
+23 
+ssize_t
+ 
+__»cv_chk
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__n
+, size_ˆ
+__buæ’
+,
+
+24 
+__æags
+);
+
+25 
+ssize_t
+ 
+__REDIRECT
+ (
+__»cv_®Ÿs
+, (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__n
+,
+
+26 
+__æags
+), 
+»cv
+);
+
+27 
+ssize_t
+ 
+__REDIRECT
+ (
+__»cv_chk_w¬n
+,
+
+28 (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__n
+, size_ˆ
+__buæ’
+,
+
+29 
+__æags
+), 
+__»cv_chk
+)
+
+30 
+__w¬Ç‰r
+ ("recv called with bigger†engthhan size of destination "
+
+33 
+__fÜtify_funùiÚ
+ 
+ssize_t
+
+
+34 
+	$»cv
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__n
+, 
+__æags
+)
+
+36 ià(
+	`__bos0
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+38 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+))
+
+39  
+	`__»cv_chk
+ (
+__fd
+, 
+__buf
+, 
+__n
+, 
+	`__bos0
+ (__buf), 
+__æags
+);
+
+41 ià(
+__n
+ > 
+	`__bos0
+ (
+__buf
+))
+
+42  
+	`__»cv_chk_w¬n
+ (
+__fd
+, 
+__buf
+, 
+__n
+, 
+	`__bos0
+ (__buf), 
+__æags
+);
+
+44  
+	`__»cv_®Ÿs
+ (
+__fd
+, 
+__buf
+, 
+__n
+, 
+__æags
+);
+
+45 
+	}
+}
+
+47 
+ssize_t
+ 
+__»cväom_chk
+ (
+__fd
+, *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__n
+,
+
+48 
+size_t
+ 
+__buæ’
+, 
+__æags
+,
+
+49 
+__SOCKADDR_ARG
+ 
+__addr
+,
+
+50 
+sockËn_t
+ *
+__»¡riù
+ 
+__addr_Ën
+);
+
+51 
+ssize_t
+ 
+__REDIRECT
+ (
+__»cväom_®Ÿs
+,
+
+52 (
+__fd
+, *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__n
+,
+
+53 
+__æags
+, 
+__SOCKADDR_ARG
+ 
+__addr
+,
+
+54 
+sockËn_t
+ *
+__»¡riù
+ 
+__addr_Ën
+), 
+»cväom
+);
+
+55 
+ssize_t
+ 
+__REDIRECT
+ (
+__»cväom_chk_w¬n
+,
+
+56 (
+__fd
+, *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__n
+,
+
+57 
+size_t
+ 
+__buæ’
+, 
+__æags
+,
+
+58 
+__SOCKADDR_ARG
+ 
+__addr
+,
+
+59 
+sockËn_t
+ *
+__»¡riù
+ 
+__addr_Ën
+), 
+__»cväom_chk
+)
+
+60 
+__w¬Ç‰r
+ ("recvfrom called with bigger†engthhan size of "
+
+63 
+__fÜtify_funùiÚ
+ 
+ssize_t
+
+
+64 
+	$»cväom
+ (
+__fd
+, *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__n
+, 
+__æags
+,
+
+65 
+__SOCKADDR_ARG
+ 
+__addr
+, 
+sockËn_t
+ *
+__»¡riù
+ 
+__addr_Ën
+)
+
+67 ià(
+	`__bos0
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+69 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+))
+
+70  
+	`__»cväom_chk
+ (
+__fd
+, 
+__buf
+, 
+__n
+, 
+	`__bos0
+ (__buf), 
+__æags
+,
+
+71 
+__addr
+, 
+__addr_Ën
+);
+
+72 ià(
+__n
+ > 
+	`__bos0
+ (
+__buf
+))
+
+73  
+	`__»cväom_chk_w¬n
+ (
+__fd
+, 
+__buf
+, 
+__n
+, 
+	`__bos0
+ (__buf), 
+__æags
+,
+
+74 
+__addr
+, 
+__addr_Ën
+);
+
+76  
+	`__»cväom_®Ÿs
+ (
+__fd
+, 
+__buf
+, 
+__n
+, 
+__æags
+, 
+__addr
+, 
+__addr_Ën
+);
+
+77 
+	}
+}
+
+	@/usr/include/bits/stat.h
+
+18 #ià!
+defšed
+ 
+_SYS_STAT_H
+ && !defšed 
+_FCNTL_H
+
+
+22 #iâdeà
+_BITS_STAT_H
+
+
+23 
+	#_BITS_STAT_H
+ 1
+
+	)
+
+26 #iâdeà
+__x86_64__
+
+
+27 
+	#_STAT_VER_LINUX_OLD
+ 1
+
+	)
+
+28 
+	#_STAT_VER_KERNEL
+ 1
+
+	)
+
+29 
+	#_STAT_VER_SVR4
+ 2
+
+	)
+
+30 
+	#_STAT_VER_LINUX
+ 3
+
+	)
+
+33 
+	#_MKNOD_VER_LINUX
+ 1
+
+	)
+
+34 
+	#_MKNOD_VER_SVR4
+ 2
+
+	)
+
+35 
+	#_MKNOD_VER
+ 
+_MKNOD_VER_LINUX
+
+
+	)
+
+37 
+	#_STAT_VER_KERNEL
+ 0
+
+	)
+
+38 
+	#_STAT_VER_LINUX
+ 1
+
+	)
+
+41 
+	#_MKNOD_VER_LINUX
+ 0
+
+	)
+
+44 
+	#_STAT_VER
+ 
+_STAT_VER_LINUX
+
+
+	)
+
+46 
+	s¡©
+
+
+48 
+__dev_t
+ 
+	m¡_dev
+;
+
+49 #iâdeà
+__x86_64__
+
+
+50 
+	m__·d1
+;
+
+52 #ià
+defšed
+ 
+__x86_64__
+ || !defšed 
+__USE_FILE_OFFSET64
+
+
+53 
+__šo_t
+ 
+	m¡_šo
+;
+
+55 
+__šo_t
+ 
+	m__¡_šo
+;
+
+57 #iâdeà
+__x86_64__
+
+
+58 
+__mode_t
+ 
+	m¡_mode
+;
+
+59 
+__ƚk_t
+ 
+	m¡_ƚk
+;
+
+61 
+__ƚk_t
+ 
+	m¡_ƚk
+;
+
+62 
+__mode_t
+ 
+	m¡_mode
+;
+
+64 
+__uid_t
+ 
+	m¡_uid
+;
+
+65 
+__gid_t
+ 
+	m¡_gid
+;
+
+66 #ifdeà
+__x86_64__
+
+
+67 
+	m__·d0
+;
+
+69 
+__dev_t
+ 
+	m¡_rdev
+;
+
+70 #iâdeà
+__x86_64__
+
+
+71 
+	m__·d2
+;
+
+73 #ià
+defšed
+ 
+__x86_64__
+ || !defšed 
+__USE_FILE_OFFSET64
+
+
+74 
+__off_t
+ 
+	m¡_size
+;
+
+76 
+__off64_t
+ 
+	m¡_size
+;
+
+78 
+__blksize_t
+ 
+	m¡_blksize
+;
+
+79 #ià
+defšed
+ 
+__x86_64__
+ || !defšed 
+__USE_FILE_OFFSET64
+
+
+80 
+__blkút_t
+ 
+	m¡_blocks
+;
+
+82 
+__blkút64_t
+ 
+	m¡_blocks
+;
+
+84 #ifdeà
+__USE_XOPEN2K8
+
+
+91 
+time¥ec
+ 
+	m¡_©im
+;
+
+92 
+time¥ec
+ 
+	m¡_mtim
+;
+
+93 
+time¥ec
+ 
+	m¡_ùim
+;
+
+94 
+	#¡_©ime
+ 
+¡_©im
+.
+tv_£c
+
+
+	)
+
+95 
+	#¡_mtime
+ 
+¡_mtim
+.
+tv_£c
+
+
+	)
+
+96 
+	#¡_ùime
+ 
+¡_ùim
+.
+tv_£c
+
+
+	)
+
+98 
+__time_t
+ 
+	m¡_©ime
+;
+
+99 
+__sysÿÎ_ulÚg_t
+ 
+	m¡_©im’£c
+;
+
+100 
+__time_t
+ 
+	m¡_mtime
+;
+
+101 
+__sysÿÎ_ulÚg_t
+ 
+	m¡_mtim’£c
+;
+
+102 
+__time_t
+ 
+	m¡_ùime
+;
+
+103 
+__sysÿÎ_ulÚg_t
+ 
+	m¡_ùim’£c
+;
+
+105 #ifdeà
+__x86_64__
+
+
+106 
+__sysÿÎ_¦Úg_t
+ 
+	m__glibc_ȣrved
+[3];
+
+108 #iâdeà
+__USE_FILE_OFFSET64
+
+
+109 
+	m__glibc_ȣrved4
+;
+
+110 
+	m__glibc_ȣrved5
+;
+
+112 
+__šo64_t
+ 
+	m¡_šo
+;
+
+117 #ifdeà
+__USE_LARGEFILE64
+
+
+119 
+	s¡©64
+
+
+121 
+__dev_t
+ 
+	m¡_dev
+;
+
+122 #ifdeà
+__x86_64__
+
+
+123 
+__šo64_t
+ 
+	m¡_šo
+;
+
+124 
+__ƚk_t
+ 
+	m¡_ƚk
+;
+
+125 
+__mode_t
+ 
+	m¡_mode
+;
+
+127 
+	m__·d1
+;
+
+128 
+__šo_t
+ 
+	m__¡_šo
+;
+
+129 
+__mode_t
+ 
+	m¡_mode
+;
+
+130 
+__ƚk_t
+ 
+	m¡_ƚk
+;
+
+132 
+__uid_t
+ 
+	m¡_uid
+;
+
+133 
+__gid_t
+ 
+	m¡_gid
+;
+
+134 #ifdeà
+__x86_64__
+
+
+135 
+	m__·d0
+;
+
+136 
+__dev_t
+ 
+	m¡_rdev
+;
+
+137 
+__off_t
+ 
+	m¡_size
+;
+
+139 
+__dev_t
+ 
+	m¡_rdev
+;
+
+140 
+	m__·d2
+;
+
+141 
+__off64_t
+ 
+	m¡_size
+;
+
+143 
+__blksize_t
+ 
+	m¡_blksize
+;
+
+144 
+__blkút64_t
+ 
+	m¡_blocks
+;
+
+145 #ifdeà
+__USE_XOPEN2K8
+
+
+152 
+time¥ec
+ 
+	m¡_©im
+;
+
+153 
+time¥ec
+ 
+	m¡_mtim
+;
+
+154 
+time¥ec
+ 
+	m¡_ùim
+;
+
+156 
+__time_t
+ 
+	m¡_©ime
+;
+
+157 
+__sysÿÎ_ulÚg_t
+ 
+	m¡_©im’£c
+;
+
+158 
+__time_t
+ 
+	m¡_mtime
+;
+
+159 
+__sysÿÎ_ulÚg_t
+ 
+	m¡_mtim’£c
+;
+
+160 
+__time_t
+ 
+	m¡_ùime
+;
+
+161 
+__sysÿÎ_ulÚg_t
+ 
+	m¡_ùim’£c
+;
+
+163 #ifdeà
+__x86_64__
+
+
+164 
+__sysÿÎ_¦Úg_t
+ 
+	m__glibc_ȣrved
+[3];
+
+166 
+__šo64_t
+ 
+	m¡_šo
+;
+
+172 
+	#_STATBUF_ST_BLKSIZE
+
+
+	)
+
+173 
+	#_STATBUF_ST_RDEV
+
+
+	)
+
+175 
+	#_STATBUF_ST_NSEC
+
+
+	)
+
+179 
+	#__S_IFMT
+ 0170000
+
+	)
+
+182 
+	#__S_IFDIR
+ 0040000
+
+	)
+
+183 
+	#__S_IFCHR
+ 0020000
+
+	)
+
+184 
+	#__S_IFBLK
+ 0060000
+
+	)
+
+185 
+	#__S_IFREG
+ 0100000
+
+	)
+
+186 
+	#__S_IFIFO
+ 0010000
+
+	)
+
+187 
+	#__S_IFLNK
+ 0120000
+
+	)
+
+188 
+	#__S_IFSOCK
+ 0140000
+
+	)
+
+192 
+	#__S_TYPEISMQ
+(
+buf
+è((buf)->
+¡_mode
+ - (buf)->¡_mode)
+
+	)
+
+193 
+	#__S_TYPEISSEM
+(
+buf
+è((buf)->
+¡_mode
+ - (buf)->¡_mode)
+
+	)
+
+194 
+	#__S_TYPEISSHM
+(
+buf
+è((buf)->
+¡_mode
+ - (buf)->¡_mode)
+
+	)
+
+198 
+	#__S_ISUID
+ 04000
+
+	)
+
+199 
+	#__S_ISGID
+ 02000
+
+	)
+
+200 
+	#__S_ISVTX
+ 01000
+
+	)
+
+201 
+	#__S_IREAD
+ 0400
+
+	)
+
+202 
+	#__S_IWRITE
+ 0200
+
+	)
+
+203 
+	#__S_IEXEC
+ 0100
+
+	)
+
+205 #ifdeà
+__USE_ATFILE
+
+
+206 
+	#UTIME_NOW
+ ((1È<< 30è- 1l)
+
+	)
+
+207 
+	#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štf
+)
+
+25 
+	$__LDBL_REDIR_DECL
+ (
+´štf
+)
+
+26 
+	$__LDBL_REDIR_DECL
+ (
+¥rštf
+)
+
+27 
+	$__LDBL_REDIR_DECL
+ (
+vårštf
+)
+
+28 
+	$__LDBL_REDIR_DECL
+ (
+v´štf
+)
+
+29 
+	$__LDBL_REDIR_DECL
+ (
+v¥rštf
+)
+
+30 #ià
+defšed
+ 
+__USE_ISOC99
+ && !defšed 
+__USE_GNU
+ \
+
+31 && !
+defšed
+ 
+__REDIRECT
+ \
+
+32 && (
+defšed
+ 
+__STRICT_ANSI__
+ || defšed 
+__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šed
+ 
+__USE_ISOC99
+ || defšed 
+__USE_UNIX98
+
+
+44 
+__BEGIN_NAMESPACE_C99
+
+
+45 
+	$__LDBL_REDIR_DECL
+ (
+¢´štf
+)
+
+46 
+	$__LDBL_REDIR_DECL
+ (
+v¢´štf
+)
+
+47 
+__END_NAMESPACE_C99
+
+
+50 #ifdef 
+__USE_ISOC99
+
+
+51 
+__BEGIN_NAMESPACE_C99
+
+
+52 #ià!
+defšed
+ 
+__USE_GNU
+ && !defšed 
+__REDIRECT
+ \
+
+53 && (
+defšed
+ 
+__STRICT_ANSI__
+ || defšed 
+__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´štf
+)
+
+67 
+	$__LDBL_REDIR_DECL
+ (
+d´štf
+)
+
+70 #ifdeà
+__USE_GNU
+
+
+71 
+	$__LDBL_REDIR_DECL
+ (
+va¥rštf
+)
+
+72 
+	$__LDBL_REDIR_DECL
+ (
+__a¥rštf
+)
+
+73 
+	$__LDBL_REDIR_DECL
+ (
+a¥rštf
+)
+
+74 
+	$__LDBL_REDIR_DECL
+ (
+ob¡ack_´štf
+)
+
+75 
+	$__LDBL_REDIR_DECL
+ (
+ob¡ack_v´štf
+)
+
+78 #ià
+__USE_FORTIFY_LEVEL
+ > 0 && 
+defšed
+ 
+__fÜtify_funùiÚ
+
+
+79 
+	$__LDBL_REDIR_DECL
+ (
+__¥rštf_chk
+)
+
+80 
+	$__LDBL_REDIR_DECL
+ (
+__v¥rštf_chk
+)
+
+81 #ià
+defšed
+ 
+__USE_ISOC99
+ || defšed 
+__USE_UNIX98
+
+
+82 
+	$__LDBL_REDIR_DECL
+ (
+__¢´štf_chk
+)
+
+83 
+	$__LDBL_REDIR_DECL
+ (
+__v¢´štf_chk
+)
+
+85 #ià
+__USE_FORTIFY_LEVEL
+ > 1
+
+86 
+	$__LDBL_REDIR_DECL
+ (
+__årštf_chk
+)
+
+87 
+	$__LDBL_REDIR_DECL
+ (
+__´štf_chk
+)
+
+88 
+	$__LDBL_REDIR_DECL
+ (
+__vårštf_chk
+)
+
+89 
+	$__LDBL_REDIR_DECL
+ (
+__v´štf_chk
+)
+
+90 #ifdeà
+__USE_XOPEN2K8
+
+
+91 
+	$__LDBL_REDIR_DECL
+ (
+__d´štf_chk
+)
+
+92 
+	$__LDBL_REDIR_DECL
+ (
+__vd´štf_chk
+)
+
+94 #ifdeà
+__USE_GNU
+
+
+95 
+	$__LDBL_REDIR_DECL
+ (
+__a¥rštf_chk
+)
+
+96 
+	$__LDBL_REDIR_DECL
+ (
+__va¥rštf_chk
+)
+
+97 
+	$__LDBL_REDIR_DECL
+ (
+__ob¡ack_´štf_chk
+)
+
+98 
+	$__LDBL_REDIR_DECL
+ (
+__ob¡ack_v´štf_chk
+)
+
+	@/usr/include/bits/stdio.h
+
+19 #iâdeà
+_STDIO_H
+
+
+23 #iâdeà
+__ex‹º_šlše
+
+
+24 
+	#__STDIO_INLINE
+ 
+šlše
+
+
+	)
+
+26 
+	#__STDIO_INLINE
+ 
+__ex‹º_šlše
+
+
+	)
+
+30 #ifdeà
+__USE_EXTERN_INLINES
+
+
+33 #ià!(
+__USE_FORTIFY_LEVEL
+ > 0 && 
+defšed
+ 
+__fÜtify_funùiÚ
+)
+
+35 
+__STDIO_INLINE
+ 
+
+36 
+	$v´štf
+ (cÚ¡ *
+__»¡riù
+ 
+__fmt
+, 
+_G_va_li¡
+ 
+__¬g
+)
+
+38  
+	`vårštf
+ (
+¡dout
+, 
+__fmt
+, 
+__¬g
+);
+
+39 
+	}
+}
+
+43 
+__STDIO_INLINE
+ 
+
+44 
+	$g‘ch¬
+ ()
+
+46  
+	`_IO_g‘c
+ (
+¡dš
+);
+
+47 
+	}
+}
+
+50 #ifdeà
+__USE_MISC
+
+
+52 
+__STDIO_INLINE
+ 
+
+53 
+	$fg‘c_uÆocked
+ (
+FILE
+ *
+__å
+)
+
+55  
+	`_IO_g‘c_uÆocked
+ (
+__å
+);
+
+56 
+	}
+}
+
+60 #ifdeà
+__USE_POSIX
+
+
+62 
+__STDIO_INLINE
+ 
+
+63 
+	$g‘c_uÆocked
+ (
+FILE
+ *
+__å
+)
+
+65  
+	`_IO_g‘c_uÆocked
+ (
+__å
+);
+
+66 
+	}
+}
+
+69 
+__STDIO_INLINE
+ 
+
+70 
+	$g‘ch¬_uÆocked
+ ()
+
+72  
+	`_IO_g‘c_uÆocked
+ (
+¡dš
+);
+
+73 
+	}
+}
+
+78 
+__STDIO_INLINE
+ 
+
+79 
+	$putch¬
+ (
+__c
+)
+
+81  
+	`_IO_putc
+ (
+__c
+, 
+¡dout
+);
+
+82 
+	}
+}
+
+85 #ifdeà
+__USE_MISC
+
+
+87 
+__STDIO_INLINE
+ 
+
+88 
+	$åutc_uÆocked
+ (
+__c
+, 
+FILE
+ *
+__¡»am
+)
+
+90  
+	`_IO_putc_uÆocked
+ (
+__c
+, 
+__¡»am
+);
+
+91 
+	}
+}
+
+95 #ifdeà
+__USE_POSIX
+
+
+97 
+__STDIO_INLINE
+ 
+
+98 
+	$putc_uÆocked
+ (
+__c
+, 
+FILE
+ *
+__¡»am
+)
+
+100  
+	`_IO_putc_uÆocked
+ (
+__c
+, 
+__¡»am
+);
+
+101 
+	}
+}
+
+104 
+__STDIO_INLINE
+ 
+
+105 
+	$putch¬_uÆocked
+ (
+__c
+)
+
+107  
+	`_IO_putc_uÆocked
+ (
+__c
+, 
+¡dout
+);
+
+108 
+	}
+}
+
+112 #ifdef 
+__USE_GNU
+
+
+114 
+__STDIO_INLINE
+ 
+_IO_ssize_t
+
+
+115 
+	$g‘lše
+ (**
+__lš•Œ
+, 
+size_t
+ *
+__n
+, 
+FILE
+ *
+__¡»am
+)
+
+117  
+	`__g‘d–im
+ (
+__lš•Œ
+, 
+__n
+, '\n', 
+__¡»am
+);
+
+118 
+	}
+}
+
+122 #ifdeà
+__USE_MISC
+
+
+124 
+__STDIO_INLINE
+ 
+
+125 
+__NTH
+ (
+	$ãof_uÆocked
+ (
+FILE
+ *
+__¡»am
+))
+
+127  
+	`_IO_ãof_uÆocked
+ (
+__¡»am
+);
+
+128 
+	}
+}
+
+131 
+__STDIO_INLINE
+ 
+
+132 
+__NTH
+ (
+	$ã¼Ü_uÆocked
+ (
+FILE
+ *
+__¡»am
+))
+
+134  
+	`_IO_ã¼Ü_uÆocked
+ (
+__¡»am
+);
+
+135 
+	}
+}
+
+141 #ià
+defšed
+ 
+__USE_MISC
+ && defšed 
+__GNUC__
+ && defšed 
+__OPTIMIZE__
+ \
+
+142 && !
+defšed
+ 
+	g__ýlu¥lus
+
+
+144 
+	#ä—d_uÆocked
+(
+±r
+, 
+size
+, 
+n
+, 
+¡»am
+) \
+
+145 (
+	`__ex‹nsiÚ__
+ ((
+	`__bužtš_cÚ¡ªt_p
+ (
+size
+è&& __bužtš_cÚ¡ªt_°(
+n
+) \
+
+146 && (
+size_t
+è(
+size
+è* (size_tè(
+n
+) <= 8 \
+
+147 && (
+size_t
+è(
+size
+) != 0) \
+
+148 ? ({ *
+__±r
+ = (*è(
+±r
+); \
+
+149 
+FILE
+ *
+__¡»am
+ = (
+¡»am
+); \
+
+150 
+size_t
+ 
+__út
+; \
+
+151 
+__út
+ = (
+size_t
+è(
+size
+è* (size_tè(
+n
+); \
+
+152 
+__út
+ > 0; --__cnt) \
+
+154 
+__c
+ = 
+	`_IO_g‘c_uÆocked
+ (
+__¡»am
+); \
+
+155 ià(
+__c
+ =ð
+EOF
+) \
+
+157 *
+__±r
+++ = 
+__c
+; \
+
+159 ((
+size_t
+è(
+size
+è* (size_tè(
+n
+è- 
+__út
+) \
+
+160 / (
+size_t
+è(
+size
+); }) \
+
+161 : (((
+	`__bužtš_cÚ¡ªt_p
+ (
+size
+è&& (
+size_t
+) (size) == 0) \
+
+162 || (
+	`__bužtš_cÚ¡ªt_p
+ (
+n
+è&& (
+size_t
+) (n) == 0)) \
+
+164 ? ((è(
+±r
+), (è(
+¡»am
+), (è(
+size
+), \
+
+165 (è(
+n
+), (
+size_t
+) 0) \
+
+166 : 
+	`ä—d_uÆocked
+ (
+±r
+, 
+size
+, 
+n
+, 
+¡»am
+))))
+
+	)
+
+168 
+	#fwr™e_uÆocked
+(
+±r
+, 
+size
+, 
+n
+, 
+¡»am
+) \
+
+169 (
+	`__ex‹nsiÚ__
+ ((
+	`__bužtš_cÚ¡ªt_p
+ (
+size
+è&& __bužtš_cÚ¡ªt_°(
+n
+) \
+
+170 && (
+size_t
+è(
+size
+è* (size_tè(
+n
+) <= 8 \
+
+171 && (
+size_t
+è(
+size
+) != 0) \
+
+172 ? ({ cÚ¡ *
+__±r
+ = (cÚ¡ *è(
+±r
+); \
+
+173 
+FILE
+ *
+__¡»am
+ = (
+¡»am
+); \
+
+174 
+size_t
+ 
+__út
+; \
+
+175 
+__ú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žtš_cÚ¡ªt_p
+ (
+size
+è&& (
+size_t
+) (size) == 0) \
+
+182 || (
+	`__bužtš_cÚ¡ªt_p
+ (
+n
+è&& (
+size_t
+) (n) == 0)) \
+
+184 ? ((è(
+±r
+), (è(
+¡»am
+), (è(
+size
+), \
+
+185 (è(
+n
+), (
+size_t
+) 0) \
+
+186 : 
+	`fwr™e_uÆocked
+ (
+±r
+, 
+size
+, 
+n
+, 
+¡»am
+))))
+
+	)
+
+190 #undeà
+__STDIO_INLINE
+
+
+	@/usr/include/bits/stdio2.h
+
+19 #iâdeà
+_STDIO_H
+
+
+23 

+	$__¥rštf_chk
+ (*
+__»¡riù
+ 
+__s
+, 
+__æag
+, 
+size_t
+ 
+__¦’
+,
+
+24 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...è
+__THROW
+;
+
+25 

+	$__v¥rštf_chk
+ (*
+__»¡riù
+ 
+__s
+, 
+__æag
+, 
+size_t
+ 
+__¦’
+,
+
+26 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+,
+
+27 
+_G_va_li¡
+ 
+__­
+è
+__THROW
+;
+
+29 #ifdeà
+__va_¬g_·ck
+
+
+30 
+__fÜtify_funùiÚ
+ 
+
+31 
+	`__NTH
+ (
+	$¥rštf
+ (*
+__»¡riù
+ 
+__s
+, cÚ¡ *__»¡riù 
+__fmt
+, ...))
+
+33  
+	`__bužtš___¥rštf_chk
+ (
+__s
+, 
+__USE_FORTIFY_LEVEL
+ - 1,
+
+34 
+	`__bos
+ (
+__s
+), 
+__fmt
+, 
+	`__va_¬g_·ck
+ ());
+
+35 
+	}
+}
+
+36 #–ià!
+defšed
+ 
+__ýlu¥lus
+
+
+37 
+	#¥rštf
+(
+¡r
+, ...) \
+
+38 
+	`__bužtš___¥rštf_chk
+ (
+¡r
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+	`__bos
+ (str), \
+
+39 
+__VA_ARGS__
+)
+
+	)
+
+42 
+__fÜtify_funùiÚ
+ 
+
+43 
+__NTH
+ (
+	$v¥rštf
+ (*
+__»¡riù
+ 
+__s
+, cÚ¡ *__»¡riù 
+__fmt
+,
+
+44 
+_G_va_li¡
+ 
+__­
+))
+
+46  
+	`__bužtš___v¥rštf_chk
+ (
+__s
+, 
+__USE_FORTIFY_LEVEL
+ - 1,
+
+47 
+	`__bos
+ (
+__s
+), 
+__fmt
+, 
+__­
+);
+
+48 
+	}
+}
+
+50 #ià
+defšed
+ 
+__USE_ISOC99
+ || defšed 
+__USE_UNIX98
+
+
+52 

+	$__¢´štf_chk
+ (*
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+, 
+__æag
+,
+
+53 
+size_t
+ 
+__¦’
+, cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+,
+
+54 ...è
+__THROW
+;
+
+55 

+	$__v¢´štf_chk
+ (*
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+, 
+__æag
+,
+
+56 
+size_t
+ 
+__¦’
+, cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+,
+
+57 
+_G_va_li¡
+ 
+__­
+è
+__THROW
+;
+
+59 #ifdeà
+__va_¬g_·ck
+
+
+60 
+__fÜtify_funùiÚ
+ 
+
+61 
+	`__NTH
+ (
+	$¢´štf
+ (*
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+,
+
+62 cÚ¡ *
+__»¡riù
+ 
+__fmt
+, ...))
+
+64  
+	`__bužtš___¢´štf_chk
+ (
+__s
+, 
+__n
+, 
+__USE_FORTIFY_LEVEL
+ - 1,
+
+65 
+	`__bos
+ (
+__s
+), 
+__fmt
+, 
+	`__va_¬g_·ck
+ ());
+
+66 
+	}
+}
+
+67 #–ià!
+defšed
+ 
+__ýlu¥lus
+
+
+68 
+	#¢´štf
+(
+¡r
+, 
+Ën
+, ...) \
+
+69 
+	`__bužtš___¢´štf_chk
+ (
+¡r
+, 
+Ën
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+	`__bos
+ (str), \
+
+70 
+__VA_ARGS__
+)
+
+	)
+
+73 
+__fÜtify_funùiÚ
+ 
+
+74 
+__NTH
+ (
+	$v¢´štf
+ (*
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+,
+
+75 cÚ¡ *
+__»¡riù
+ 
+__fmt
+, 
+_G_va_li¡
+ 
+__­
+))
+
+77  
+	`__bužtš___v¢´štf_chk
+ (
+__s
+, 
+__n
+, 
+__USE_FORTIFY_LEVEL
+ - 1,
+
+78 
+	`__bos
+ (
+__s
+), 
+__fmt
+, 
+__­
+);
+
+79 
+	}
+}
+
+83 #ià
+__USE_FORTIFY_LEVEL
+ > 1
+
+85 

+__årštf_chk
+ (
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+, 
+__æag
+,
+
+86 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...);
+
+87 

+__´štf_chk
+ (
+__æag
+, cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, ...);
+
+88 

+__vårštf_chk
+ (
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+, 
+__æag
+,
+
+89 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+, 
+_G_va_li¡
+ 
+__­
+);
+
+90 

+__v´štf_chk
+ (
+__æag
+, cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+,
+
+91 
+_G_va_li¡
+ 
+__­
+);
+
+93 #ifdeà
+__va_¬g_·ck
+
+
+94 
+__fÜtify_funùiÚ
+ 
+
+95 
+	$årštf
+ (
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+, cÚ¡ *__»¡riù 
+__fmt
+, ...)
+
+97  
+	`__årštf_chk
+ (
+__¡»am
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+,
+
+98 
+	`__va_¬g_·ck
+ ());
+
+99 
+	}
+}
+
+101 
+__fÜtify_funùiÚ
+ 
+
+102 
+	$´štf
+ (cÚ¡ *
+__»¡riù
+ 
+__fmt
+, ...)
+
+104  
+	`__´štf_chk
+ (
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+, 
+	`__va_¬g_·ck
+ ());
+
+105 
+	}
+}
+
+106 #–ià!
+defšed
+ 
+__ýlu¥lus
+
+
+107 
+	#´štf
+(...) \
+
+108 
+	`__´štf_chk
+ (
+__USE_FORTIFY_LEVEL
+ - 1, 
+__VA_ARGS__
+)
+
+	)
+
+109 
+	#årštf
+(
+¡»am
+, ...) \
+
+110 
+	`__årštf_chk
+ (
+¡»am
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__VA_ARGS__
+)
+
+	)
+
+113 
+__fÜtify_funùiÚ
+ 
+
+114 
+	$v´štf
+ (cÚ¡ *
+__»¡riù
+ 
+__fmt
+, 
+_G_va_li¡
+ 
+__­
+)
+
+116 #ifdeà
+__USE_EXTERN_INLINES
+
+
+117  
+	`__vårštf_chk
+ (
+¡dout
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+, 
+__­
+);
+
+119  
+	`__v´štf_chk
+ (
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+, 
+__­
+);
+
+121 
+	}
+}
+
+123 
+__fÜtify_funùiÚ
+ 
+
+124 
+	$vårštf
+ (
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+,
+
+125 cÚ¡ *
+__»¡riù
+ 
+__fmt
+, 
+_G_va_li¡
+ 
+__­
+)
+
+127  
+	`__vårštf_chk
+ (
+__¡»am
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+, 
+__­
+);
+
+128 
+	}
+}
+
+130 #ifdeà
+__USE_XOPEN2K8
+
+
+131 

+	$__d´štf_chk
+ (
+__fd
+, 
+__æag
+, cÚ¡ *
+__»¡riù
+ 
+__fmt
+,
+
+132 ...è
+	`__©Œibu‹__
+ ((
+	`__fÜm©__
+ (
+__´štf__
+, 3, 4)));
+
+133 

+	$__vd´štf_chk
+ (
+__fd
+, 
+__æag
+,
+
+134 cÚ¡ *
+__»¡riù
+ 
+__fmt
+, 
+_G_va_li¡
+ 
+__¬g
+)
+
+135 
+	`__©Œibu‹__
+ ((
+	`__fÜm©__
+ (
+__´štf__
+, 3, 0)));
+
+137 #ifdeà
+__va_¬g_·ck
+
+
+138 
+__fÜtify_funùiÚ
+ 
+
+139 
+	$d´štf
+ (
+__fd
+, cÚ¡ *
+__»¡riù
+ 
+__fmt
+, ...)
+
+141  
+	`__d´štf_chk
+ (
+__fd
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+,
+
+142 
+	`__va_¬g_·ck
+ ());
+
+143 
+	}
+}
+
+144 #–ià!
+defšed
+ 
+__ýlu¥lus
+
+
+145 
+	#d´štf
+(
+fd
+, ...) \
+
+146 
+	`__d´štf_chk
+ (
+fd
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__VA_ARGS__
+)
+
+	)
+
+149 
+__fÜtify_funùiÚ
+ 
+
+150 
+	$vd´štf
+ (
+__fd
+, cÚ¡ *
+__»¡riù
+ 
+__fmt
+, 
+_G_va_li¡
+ 
+__­
+)
+
+152  
+	`__vd´štf_chk
+ (
+__fd
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+, 
+__­
+);
+
+153 
+	}
+}
+
+156 #ifdeà
+__USE_GNU
+
+
+158 

+	$__a¥rštf_chk
+ (**
+__»¡riù
+ 
+__±r
+, 
+__æag
+,
+
+159 cÚ¡ *
+__»¡riù
+ 
+__fmt
+, ...)
+
+160 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+	$__fÜm©__
+ (
+__´štf__
+, 3, 4))è
+__wur
+;
+
+161 

+	$__va¥rštf_chk
+ (**
+__»¡riù
+ 
+__±r
+, 
+__æag
+,
+
+162 cÚ¡ *
+__»¡riù
+ 
+__fmt
+, 
+_G_va_li¡
+ 
+__¬g
+)
+
+163 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+	$__fÜm©__
+ (
+__´štf__
+, 3, 0))è
+__wur
+;
+
+164 

+	$__ob¡ack_´štf_chk
+ (
+ob¡ack
+ *
+__»¡riù
+ 
+__ob¡ack
+,
+
+165 
+__æag
+, cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+,
+
+167 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+	`__fÜm©__
+ (
+__´štf__
+, 3, 4)));
+
+168 

+	$__ob¡ack_v´štf_chk
+ (
+ob¡ack
+ *
+__»¡riù
+ 
+__ob¡ack
+,
+
+169 
+__æag
+,
+
+170 cÚ¡ *
+__»¡riù
+ 
+__fÜm©
+,
+
+171 
+_G_va_li¡
+ 
+__¬gs
+)
+
+172 
+__THROW
+ 
+	`__©Œibu‹__
+ ((
+	`__fÜm©__
+ (
+__´štf__
+, 3, 0)));
+
+174 #ifdeà
+__va_¬g_·ck
+
+
+175 
+__fÜtify_funùiÚ
+ 
+
+176 
+	`__NTH
+ (
+	$a¥rštf
+ (**
+__»¡riù
+ 
+__±r
+, cÚ¡ *__»¡riù 
+__fmt
+, ...))
+
+178  
+	`__a¥rštf_chk
+ (
+__±r
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+,
+
+179 
+	`__va_¬g_·ck
+ ());
+
+180 
+	}
+}
+
+182 
+__fÜtify_funùiÚ
+ 
+
+183 
+__NTH
+ (
+	$__a¥rštf
+ (**
+__»¡riù
+ 
+__±r
+, cÚ¡ *__»¡riù 
+__fmt
+,
+
+186  
+	`__a¥rštf_chk
+ (
+__±r
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+,
+
+187 
+	`__va_¬g_·ck
+ ());
+
+188 
+	}
+}
+
+190 
+__fÜtify_funùiÚ
+ 
+
+191 
+__NTH
+ (
+	$ob¡ack_´štf
+ (
+ob¡ack
+ *
+__»¡riù
+ 
+__ob¡ack
+,
+
+192 cÚ¡ *
+__»¡riù
+ 
+__fmt
+, ...))
+
+194  
+	`__ob¡ack_´štf_chk
+ (
+__ob¡ack
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+,
+
+195 
+	`__va_¬g_·ck
+ ());
+
+196 
+	}
+}
+
+197 #–ià!
+defšed
+ 
+__ýlu¥lus
+
+
+198 
+	#a¥rštf
+(
+±r
+, ...) \
+
+199 
+	`__a¥rštf_chk
+ (
+±r
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__VA_ARGS__
+)
+
+	)
+
+200 
+	#__a¥rštf
+(
+±r
+, ...) \
+
+201 
+	`__a¥rštf_chk
+ (
+±r
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__VA_ARGS__
+)
+
+	)
+
+202 
+	#ob¡ack_´štf
+(
+ob¡ack
+, ...) \
+
+203 
+	`__ob¡ack_´štf_chk
+ (
+ob¡ack
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__VA_ARGS__
+)
+
+	)
+
+206 
+__fÜtify_funùiÚ
+ 
+
+207 
+__NTH
+ (
+	$va¥rštf
+ (**
+__»¡riù
+ 
+__±r
+, cÚ¡ *__»¡riù 
+__fmt
+,
+
+208 
+_G_va_li¡
+ 
+__­
+))
+
+210  
+	`__va¥rštf_chk
+ (
+__±r
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+, 
+__­
+);
+
+211 
+	}
+}
+
+213 
+__fÜtify_funùiÚ
+ 
+
+214 
+__NTH
+ (
+	$ob¡ack_v´štf
+ (
+ob¡ack
+ *
+__»¡riù
+ 
+__ob¡ack
+,
+
+215 cÚ¡ *
+__»¡riù
+ 
+__fmt
+, 
+_G_va_li¡
+ 
+__­
+))
+
+217  
+	`__ob¡ack_v´štf_chk
+ (
+__ob¡ack
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+,
+
+218 
+__­
+);
+
+219 
+	}
+}
+
+225 #ià!
+defšed
+ 
+__USE_ISOC11
+ \
+
+226 || (
+defšed
+ 
+	g__ýlu¥lus
+ && __ýlu¥lu <ð201103L && !defšed 
+__USE_GNU
+)
+
+227 
*
+	$__g‘s_chk
+ (*
+__¡r
+, 
+size_t
+è
+__wur
+;
+
+228 
*
+	`__REDIRECT
+ (
+__g‘s_w¬n
+, (*
+__¡r
+), 
+g‘s
+)
+
+229 
+__wur
+ 
+	`__w¬Ç‰r
+ ("please use fgets or getline instead, gets can't "
+
+232 
+__fÜtify_funùiÚ
+ 
+__wur
+ *
+
+233 
+	$g‘s
+ (*
+__¡r
+)
+
+235 ià(
+	`__bos
+ (
+__¡r
+è!ð(
+size_t
+) -1)
+
+236  
+	`__g‘s_chk
+ (
+__¡r
+, 
+	`__bos
+ (__str));
+
+237  
+	`__g‘s_w¬n
+ (
+__¡r
+);
+
+238 
+	}
+}
+
+241 
*
+	$__fg‘s_chk
+ (*
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__size
+, 
+__n
+,
+
+242 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+è
+__wur
+;
+
+243 
*
+	`__REDIRECT
+ (
+__fg‘s_®Ÿs
+,
+
+244 (*
+__»¡riù
+ 
+__s
+, 
+__n
+,
+
+245 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+), 
+fg‘s
+è
+__wur
+;
+
+246 
*
+	`__REDIRECT
+ (
+__fg‘s_chk_w¬n
+,
+
+247 (*
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__size
+, 
+__n
+,
+
+248 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+), 
+__fg‘s_chk
+)
+
+249 
+__wur
+ 
+	`__w¬Ç‰r
+ ("fgets called with bigger sizehan†ength "
+
+252 
+__fÜtify_funùiÚ
+ 
+__wur
+ *
+
+253 
+	$fg‘s
+ (*
+__»¡riù
+ 
+__s
+, 
+__n
+, 
+FILE
+ *__»¡riù 
+__¡»am
+)
+
+255 ià(
+	`__bos
+ (
+__s
+è!ð(
+size_t
+) -1)
+
+257 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+) || __n <= 0)
+
+258  
+	`__fg‘s_chk
+ (
+__s
+, 
+	`__bos
+ (__s), 
+__n
+, 
+__¡»am
+);
+
+260 ià((
+size_t
+è
+__n
+ > 
+	`__bos
+ (
+__s
+))
+
+261  
+	`__fg‘s_chk_w¬n
+ (
+__s
+, 
+	`__bos
+ (__s), 
+__n
+, 
+__¡»am
+);
+
+263  
+	`__fg‘s_®Ÿs
+ (
+__s
+, 
+__n
+, 
+__¡»am
+);
+
+264 
+	}
+}
+
+266 
+size_t
+ 
+	$__ä—d_chk
+ (*
+__»¡riù
+ 
+__±r
+, 
+size_t
+ 
+__±¾’
+,
+
+267 
+size_t
+ 
+__size
+, size_ˆ
+__n
+,
+
+268 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+è
+__wur
+;
+
+269 
+size_t
+ 
+	`__REDIRECT
+ (
+__ä—d_®Ÿs
+,
+
+270 (*
+__»¡riù
+ 
+__±r
+, 
+size_t
+ 
+__size
+,
+
+271 
+size_t
+ 
+__n
+, 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+),
+
+272 
+ä—d
+è
+__wur
+;
+
+273 
+size_t
+ 
+	`__REDIRECT
+ (
+__ä—d_chk_w¬n
+,
+
+274 (*
+__»¡riù
+ 
+__±r
+, 
+size_t
+ 
+__±¾’
+,
+
+275 
+size_t
+ 
+__size
+, size_ˆ
+__n
+,
+
+276 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+),
+
+277 
+__ä—d_chk
+)
+
+278 
+__wur
+ 
+	`__w¬Ç‰r
+ ("fread called with bigger size *‚membhan†ength "
+
+281 
+__fÜtify_funùiÚ
+ 
+__wur
+ 
+size_t
+
+
+282 
+	$ä—d
+ (*
+__»¡riù
+ 
+__±r
+, 
+size_t
+ 
+__size
+, size_ˆ
+__n
+,
+
+283 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+)
+
+285 ià(
+	`__bos0
+ (
+__±r
+è!ð(
+size_t
+) -1)
+
+287 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__size
+)
+
+288 || !
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+)
+
+289 || (
+__size
+ | 
+__n
+è>ð(((
+size_t
+) 1) << (8 *  (size_t) / 2)))
+
+290  
+	`__ä—d_chk
+ (
+__±r
+, 
+	`__bos0
+ (__±r), 
+__size
+, 
+__n
+, 
+__¡»am
+);
+
+292 ià(
+__size
+ * 
+__n
+ > 
+	`__bos0
+ (
+__±r
+))
+
+293  
+	`__ä—d_chk_w¬n
+ (
+__±r
+, 
+	`__bos0
+ (__±r), 
+__size
+, 
+__n
+, 
+__¡»am
+);
+
+295  
+	`__ä—d_®Ÿs
+ (
+__±r
+, 
+__size
+, 
+__n
+, 
+__¡»am
+);
+
+296 
+	}
+}
+
+298 #ifdeà
+__USE_GNU
+
+
+299 
*
+	$__fg‘s_uÆocked_chk
+ (*
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__size
+,
+
+300 
+__n
+, 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+è
+__wur
+;
+
+301 
*
+	`__REDIRECT
+ (
+__fg‘s_uÆocked_®Ÿs
+,
+
+302 (*
+__»¡riù
+ 
+__s
+, 
+__n
+,
+
+303 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+), 
+fg‘s_uÆocked
+è
+__wur
+;
+
+304 
*
+	`__REDIRECT
+ (
+__fg‘s_uÆocked_chk_w¬n
+,
+
+305 (*
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__size
+, 
+__n
+,
+
+306 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+), 
+__fg‘s_uÆocked_chk
+)
+
+307 
+__wur
+ 
+	`__w¬Ç‰r
+ ("fgets_unlocked called with bigger sizehan†ength "
+
+310 
+__fÜtify_funùiÚ
+ 
+__wur
+ *
+
+311 
+	$fg‘s_uÆocked
+ (*
+__»¡riù
+ 
+__s
+, 
+__n
+, 
+FILE
+ *__»¡riù 
+__¡»am
+)
+
+313 ià(
+	`__bos
+ (
+__s
+è!ð(
+size_t
+) -1)
+
+315 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+) || __n <= 0)
+
+316  
+	`__fg‘s_uÆocked_chk
+ (
+__s
+, 
+	`__bos
+ (__s), 
+__n
+, 
+__¡»am
+);
+
+318 ià((
+size_t
+è
+__n
+ > 
+	`__bos
+ (
+__s
+))
+
+319  
+	`__fg‘s_uÆocked_chk_w¬n
+ (
+__s
+, 
+	`__bos
+ (__s), 
+__n
+, 
+__¡»am
+);
+
+321  
+	`__fg‘s_uÆocked_®Ÿs
+ (
+__s
+, 
+__n
+, 
+__¡»am
+);
+
+322 
+	}
+}
+
+325 #ifdeà
+__USE_MISC
+
+
+326 #undeà
+ä—d_uÆocked
+
+
+327 
+size_t
+ 
+	$__ä—d_uÆocked_chk
+ (*
+__»¡riù
+ 
+__±r
+, 
+size_t
+ 
+__±¾’
+,
+
+328 
+size_t
+ 
+__size
+, size_ˆ
+__n
+,
+
+329 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+è
+__wur
+;
+
+330 
+size_t
+ 
+	`__REDIRECT
+ (
+__ä—d_uÆocked_®Ÿs
+,
+
+331 (*
+__»¡riù
+ 
+__±r
+, 
+size_t
+ 
+__size
+,
+
+332 
+size_t
+ 
+__n
+, 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+),
+
+333 
+ä—d_uÆocked
+è
+__wur
+;
+
+334 
+size_t
+ 
+	`__REDIRECT
+ (
+__ä—d_uÆocked_chk_w¬n
+,
+
+335 (*
+__»¡riù
+ 
+__±r
+, 
+size_t
+ 
+__±¾’
+,
+
+336 
+size_t
+ 
+__size
+, size_ˆ
+__n
+,
+
+337 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+),
+
+338 
+__ä—d_uÆocked_chk
+)
+
+339 
+__wur
+ 
+	`__w¬Ç‰r
+ ("fread_unlocked called with bigger size *‚membhan "
+
+342 
+__fÜtify_funùiÚ
+ 
+__wur
+ 
+size_t
+
+
+343 
+	$ä—d_uÆocked
+ (*
+__»¡riù
+ 
+__±r
+, 
+size_t
+ 
+__size
+, size_ˆ
+__n
+,
+
+344 
+FILE
+ *
+__»¡riù
+ 
+__¡»am
+)
+
+346 ià(
+	`__bos0
+ (
+__±r
+è!ð(
+size_t
+) -1)
+
+348 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__size
+)
+
+349 || !
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+)
+
+350 || (
+__size
+ | 
+__n
+è>ð(((
+size_t
+) 1) << (8 *  (size_t) / 2)))
+
+351  
+	`__ä—d_uÆocked_chk
+ (
+__±r
+, 
+	`__bos0
+ (__±r), 
+__size
+, 
+__n
+,
+
+352 
+__¡»am
+);
+
+354 ià(
+__size
+ * 
+__n
+ > 
+	`__bos0
+ (
+__±r
+))
+
+355  
+	`__ä—d_uÆocked_chk_w¬n
+ (
+__±r
+, 
+	`__bos0
+ (__±r), 
+__size
+, 
+__n
+,
+
+356 
+__¡»am
+);
+
+359 #ifdeà
+__USE_EXTERN_INLINES
+
+
+360 ià(
+	`__bužtš_cÚ¡ªt_p
+ (
+__size
+)
+
+361 && 
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+)
+
+362 && (
+__size
+ | 
+__n
+è< (((
+size_t
+) 1) << (8 *  (size_t) / 2))
+
+363 && 
+__size
+ * 
+__n
+ <= 8)
+
+365 
+size_t
+ 
+__út
+ = 
+__size
+ * 
+__n
+;
+
+366 *
+__ýŒ
+ = (*è
+__±r
+;
+
+367 ià(
+__út
+ == 0)
+
+370 ; 
+__út
+ > 0; --__cnt)
+
+372 
+__c
+ = 
+	`_IO_g‘c_uÆocked
+ (
+__¡»am
+);
+
+373 ià(
+__c
+ =ð
+EOF
+)
+
+375 *
+__ýŒ
+++ = 
+__c
+;
+
+377  (
+__ýŒ
+ - (*è
+__±r
+è/ 
+__size
+;
+
+380  
+	`__ä—d_uÆocked_®Ÿs
+ (
+__±r
+, 
+__size
+, 
+__n
+, 
+__¡»am
+);
+
+381 
+	}
+}
+
+	@/usr/include/bits/stdio_lim.h
+
+18 #ià!
+defšed
+ 
+_STDIO_H
+ && !defšed 
+__Ãed_FOPEN_MAX
+ && !defšed 
+__Ãed_IOV_MAX
+
+
+22 #ifdeà
+_STDIO_H
+
+
+23 
+	#L_tm²am
+ 20
+
+	)
+
+24 
+	#TMP_MAX
+ 238328
+
+	)
+
+25 
+	#FILENAME_MAX
+ 4096
+
+	)
+
+27 #ifdeà
+__USE_POSIX
+
+
+28 
+	#L_ù”mid
+ 9
+
+	)
+
+29 #ià!
+defšed
+ 
+__USE_XOPEN2K
+ || defšed 
+__USE_GNU
+
+
+30 
+	#L_cu£rid
+ 9
+
+	)
+
+35 #ià
+defšed
+ 
+__Ãed_FOPEN_MAX
+ || defšed 
+_STDIO_H
+
+
+36 #undeà
+FOPEN_MAX
+
+
+37 
+	#FOPEN_MAX
+ 16
+
+	)
+
+40 #ià
+defšed
+ 
+__Ãed_IOV_MAX
+ && !defšed 
+IOV_MAX
+
+
+41 
+	#IOV_MAX
+ 1024
+
+	)
+
+	@/usr/include/bits/stdlib-bsearch.h
+
+19 
+__ex‹º_šlše
+ *
+
+20 
+	$b£¬ch
+ (cÚ¡ *
+__key
+, cÚ¡ *
+__ba£
+, 
+size_t
+ 
+__nmemb
+, size_ˆ
+__size
+,
+
+21 
+__com·r_â_t
+ 
+__com·r
+)
+
+23 
+size_t
+ 
+__l
+, 
+__u
+, 
+__idx
+;
+
+24 cÚ¡ *
+__p
+;
+
+25 
+__com·risÚ
+;
+
+27 
+__l
+ = 0;
+
+28 
+__u
+ = 
+__nmemb
+;
+
+29 
+__l
+ < 
+__u
+)
+
+31 
+__idx
+ = (
+__l
+ + 
+__u
+) / 2;
+
+32 
+__p
+ = (*è(((cÚ¡ *è
+__ba£
+è+ (
+__idx
+ * 
+__size
+));
+
+33 
+__com·risÚ
+ = (*
+__com·r
+è(
+__key
+, 
+__p
+);
+
+34 ià(
+__com·risÚ
+ < 0)
+
+35 
+__u
+ = 
+__idx
+;
+
+36 ià(
+__com·risÚ
+ > 0)
+
+37 
+__l
+ = 
+__idx
+ + 1;
+
+39  (*è
+__p
+;
+
+42  
+NULL
+;
+
+43 
+	}
+}
+
+	@/usr/include/bits/stdlib-float.h
+
+19 #iâdeà
+_STDLIB_H
+
+
+23 #ifdeà
+__USE_EXTERN_INLINES
+
+
+24 
+__BEGIN_NAMESPACE_STD
+
+
+25 
+__ex‹º_šlše
+ 
+
+26 
+__NTH
+ (
+	$©of
+ (cÚ¡ *
+__Ō
+))
+
+28  
+	`¡¹od
+ (
+__Ō
+, (**è
+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 
*
+	$__»®·th_chk
+ (cÚ¡ *
+__»¡riù
+ 
+__Çme
+,
+
+24 *
+__»¡riù
+ 
+__»sÞved
+,
+
+25 
+size_t
+ 
+__»sÞvedËn
+è
+__THROW
+ 
+__wur
+;
+
+26 
*
+	`__REDIRECT_NTH
+ (
+__»®·th_®Ÿs
+,
+
+27 (cÚ¡ *
+__»¡riù
+ 
+__Çme
+,
+
+28 *
+__»¡riù
+ 
+__»sÞved
+), 
+»®·th
+è
+__wur
+;
+
+29 
*
+	`__REDIRECT_NTH
+ (
+__»®·th_chk_w¬n
+,
+
+30 (cÚ¡ *
+__»¡riù
+ 
+__Çme
+,
+
+31 *
+__»¡riù
+ 
+__»sÞved
+,
+
+32 
+size_t
+ 
+__»sÞvedËn
+), 
+__»®·th_chk
+è
+__wur
+
+
+33 
+	`__w¬Ç‰r
+ ("second‡rgument of„ealpath must beƒither NULL or‡t "
+
+36 
+__fÜtify_funùiÚ
+ 
+__wur
+ *
+
+37 
+	`__NTH
+ (
+	$»®·th
+ (cÚ¡ *
+__»¡riù
+ 
+__Çme
+, *__»¡riù 
+__»sÞved
+))
+
+39 ià(
+	`__bos
+ (
+__»sÞved
+è!ð(
+size_t
+) -1)
+
+41 #ià
+defšed
+ 
+_LIBC_LIMITS_H_
+ && defšed 
+PATH_MAX
+
+
+42 ià(
+	`__bos
+ (
+__»sÞved
+è< 
+PATH_MAX
+)
+
+43  
+	`__»®·th_chk_w¬n
+ (
+__Çme
+, 
+__»sÞved
+, 
+	`__bos
+ (__resolved));
+
+45  
+	`__»®·th_chk
+ (
+__Çme
+, 
+__»sÞved
+, 
+	`__bos
+ (__resolved));
+
+48  
+	`__»®·th_®Ÿs
+ (
+__Çme
+, 
+__»sÞved
+);
+
+49 
+	}
+}
+
+52 

+	$__±¢ame_r_chk
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__buæ’
+,
+
+53 
+size_t
+ 
+__ėl
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((2));
+
+54 

+	`__REDIRECT_NTH
+ (
+__±¢ame_r_®Ÿs
+, (
+__fd
+, *
+__buf
+,
+
+55 
+size_t
+ 
+__buæ’
+), 
+±¢ame_r
+)
+
+56 
+	`__nÚnuÎ
+ ((2));
+
+57 

+	`__REDIRECT_NTH
+ (
+__±¢ame_r_chk_w¬n
+,
+
+58 (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__buæ’
+,
+
+59 
+size_t
+ 
+__ėl
+), 
+__±¢ame_r_chk
+)
+
+60 
+	`__nÚnuÎ
+ ((2)è
+	`__w¬Ç‰r
+ ("ptsname_r called with buflen biggerhan "
+
+63 
+__fÜtify_funùiÚ
+ 
+
+64 
+	`__NTH
+ (
+	$±¢ame_r
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__buæ’
+))
+
+66 ià(
+	`__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+68 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__buæ’
+))
+
+69  
+	`__±¢ame_r_chk
+ (
+__fd
+, 
+__buf
+, 
+__buæ’
+, 
+	`__bos
+ (__buf));
+
+70 ià(
+__buæ’
+ > 
+	`__bos
+ (
+__buf
+))
+
+71  
+	`__±¢ame_r_chk_w¬n
+ (
+__fd
+, 
+__buf
+, 
+__buæ’
+, 
+	`__bos
+ (__buf));
+
+73  
+	`__±¢ame_r_®Ÿs
+ (
+__fd
+, 
+__buf
+, 
+__buæ’
+);
+
+74 
+	}
+}
+
+77 

+	$__wùomb_chk
+ (*
+__s
+, 
+wch¬_t
+ 
+__wch¬
+, 
+size_t
+ 
+__buæ’
+)
+
+78 
+__THROW
+ 
+__wur
+;
+
+79 

+	`__REDIRECT_NTH
+ (
+__wùomb_®Ÿs
+, (*
+__s
+, 
+wch¬_t
+ 
+__wch¬
+),
+
+80 
+wùomb
+è
+__wur
+;
+
+82 
+__fÜtify_funùiÚ
+ 
+__wur
+ 
+
+83 
+	`__NTH
+ (
+	$wùomb
+ (*
+__s
+, 
+wch¬_t
+ 
+__wch¬
+))
+
+88 
+	#__STDLIB_MB_LEN_MAX
+ 16
+
+	)
+
+89 #ià
+defšed
+ 
+MB_LEN_MAX
+ && MB_LEN_MAX !ð
+__STDLIB_MB_LEN_MAX
+
+
+92 ià(
+	`__bos
+ (
+__s
+è!ð(
+size_t
+è-1 && 
+__STDLIB_MB_LEN_MAX
+ > __bos (__s))
+
+93  
+	`__wùomb_chk
+ (
+__s
+, 
+__wch¬
+, 
+	`__bos
+ (__s));
+
+94  
+	`__wùomb_®Ÿs
+ (
+__s
+, 
+__wch¬
+);
+
+95 
+	}
+}
+
+98 
+size_t
+ 
+	$__mb¡owcs_chk
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__d¡
+,
+
+99 cÚ¡ *
+__»¡riù
+ 
+__¤c
+,
+
+100 
+size_t
+ 
+__Ën
+, size_ˆ
+__d¡Ën
+è
+__THROW
+;
+
+101 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__mb¡owcs_®Ÿs
+,
+
+102 (
+wch¬_t
+ *
+__»¡riù
+ 
+__d¡
+,
+
+103 cÚ¡ *
+__»¡riù
+ 
+__¤c
+,
+
+104 
+size_t
+ 
+__Ën
+), 
+mb¡owcs
+);
+
+105 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__mb¡owcs_chk_w¬n
+,
+
+106 (
+wch¬_t
+ *
+__»¡riù
+ 
+__d¡
+,
+
+107 cÚ¡ *
+__»¡riù
+ 
+__¤c
+,
+
+108 
+size_t
+ 
+__Ën
+, size_ˆ
+__d¡Ën
+), 
+__mb¡owcs_chk
+)
+
+109 
+	`__w¬Ç‰r
+ ("mbstowcs called with dst buffer smallerhan†en "
+
+112 
+__fÜtify_funùiÚ
+ 
+size_t
+
+
+113 
+	`__NTH
+ (
+	$mb¡owcs
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__d¡
+, cÚ¡ *__»¡riù 
+__¤c
+,
+
+114 
+size_t
+ 
+__Ën
+))
+
+116 ià(
+	`__bos
+ (
+__d¡
+è!ð(
+size_t
+) -1)
+
+118 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__Ën
+))
+
+119  
+	`__mb¡owcs_chk
+ (
+__d¡
+, 
+__¤c
+, 
+__Ën
+,
+
+120 
+	`__bos
+ (
+__d¡
+è/  (
+wch¬_t
+));
+
+122 ià(
+__Ën
+ > 
+	`__bos
+ (
+__d¡
+è/  (
+wch¬_t
+))
+
+123  
+	`__mb¡owcs_chk_w¬n
+ (
+__d¡
+, 
+__¤c
+, 
+__Ën
+,
+
+124 
+	`__bos
+ (
+__d¡
+è/  (
+wch¬_t
+));
+
+126  
+	`__mb¡owcs_®Ÿs
+ (
+__d¡
+, 
+__¤c
+, 
+__Ën
+);
+
+127 
+	}
+}
+
+130 
+size_t
+ 
+	$__wc¡ombs_chk
+ (*
+__»¡riù
+ 
+__d¡
+,
+
+131 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+,
+
+132 
+size_t
+ 
+__Ën
+, size_ˆ
+__d¡Ën
+è
+__THROW
+;
+
+133 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__wc¡ombs_®Ÿs
+,
+
+134 (*
+__»¡riù
+ 
+__d¡
+,
+
+135 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+,
+
+136 
+size_t
+ 
+__Ën
+), 
+wc¡ombs
+);
+
+137 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__wc¡ombs_chk_w¬n
+,
+
+138 (*
+__»¡riù
+ 
+__d¡
+,
+
+139 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+,
+
+140 
+size_t
+ 
+__Ën
+, size_ˆ
+__d¡Ën
+), 
+__wc¡ombs_chk
+)
+
+141 
+	`__w¬Ç‰r
+ ("wcstombs called with dst buffer smallerhan†en");
+
+143 
+__fÜtify_funùiÚ
+ 
+size_t
+
+
+144 
+	`__NTH
+ (
+	$wc¡ombs
+ (*
+__»¡riù
+ 
+__d¡
+, cÚ¡ 
+wch¬_t
+ *__»¡riù 
+__¤c
+,
+
+145 
+size_t
+ 
+__Ën
+))
+
+147 ià(
+	`__bos
+ (
+__d¡
+è!ð(
+size_t
+) -1)
+
+149 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__Ën
+))
+
+150  
+	`__wc¡ombs_chk
+ (
+__d¡
+, 
+__¤c
+, 
+__Ën
+, 
+	`__bos
+ (__dst));
+
+151 ià(
+__Ën
+ > 
+	`__bos
+ (
+__d¡
+))
+
+152  
+	`__wc¡ombs_chk_w¬n
+ (
+__d¡
+, 
+__¤c
+, 
+__Ën
+, 
+	`__bos
+ (__dst));
+
+154  
+	`__wc¡ombs_®Ÿs
+ (
+__d¡
+, 
+__¤c
+, 
+__Ën
+);
+
+155 
+	}
+}
+
+	@/usr/include/bits/string.h
+
+19 #iâdeà
+_STRING_H
+
+
+24 
+	#_STRING_INLINE_uÇligÃd
+ 1
+
+	)
+
+27 
+	#_HAVE_STRING_ARCH_mempýy
+ 1
+
+	)
+
+31 #ià!
+defšed
+ 
+__x86_64__
+ && (defšed 
+__i486__
+ || defšed 
+__³Áium__
+ \
+
+32 || 
+defšed
+ 
+	g__³Áium´o__
+ || defšed 
+	g__³Áium4__
+ \
+
+33 || 
+defšed
+ 
+	g__nocÚa__
+ || defšed 
+	g__©om__
+ \
+
+34 || 
+defšed
+ 
+	g__cÜe2__
+ || defšed 
+	g__cÜei7__
+ \
+
+35 || 
+defšed
+ 
+	g__§ndybridge__
+ || defšed 
+	g__hasw–l__
+ \
+
+36 || 
+defšed
+ 
+	g__bÚÃÎ__
+ || defšed 
+	g__sžv”mÚt__
+ \
+
+37 || 
+defšed
+ 
+	g__k6__
+ || defšed 
+	g__geode__
+ \
+
+38 || 
+defšed
+ 
+	g__k8__
+ || defšed 
+	g__©hlÚ__
+ \
+
+39 || 
+defšed
+ 
+	g__amdçm10__
+ || defšed 
+	g__bdv”1__
+ \
+
+40 || 
+defšed
+ 
+	g__bdv”2__
+ || defšed 
+	g__bdv”3__
+ \
+
+41 || 
+defšed
+ 
+	g__bdv”4__
+ || defšed 
+	g__btv”1__
+ \
+
+42 || 
+defšed
+ 
+	g__btv”2__
+)
+
+46 #ià!
+defšed
+ 
+__NO_STRING_INLINES
+ && defšed 
+__USE_STRING_INLINES
+ \
+
+47 && 
+defšed
+ 
+	g__GNUC__
+ && __GNUC__ >= 2
+
+49 #iâdeà
+__STRING_INLINE
+
+
+50 #iâdeà
+__ex‹º_šlše
+
+
+51 
+	#__STRING_INLINE
+ 
+šlše
+
+
+	)
+
+53 
+	#__STRING_INLINE
+ 
+__ex‹º_šlše
+
+
+	)
+
+58 
+	#__STRING_SMALL_GET16
+(
+¤c
+, 
+idx
+) \
+
+59 ((((cÚ¡ *è(
+¤c
+))[
+idx
+ + 1] << 8) \
+
+60 | ((cÚ¡ *è(
+¤c
+))[
+idx
+])
+
+	)
+
+61 
+	#__STRING_SMALL_GET32
+(
+¤c
+, 
+idx
+) \
+
+62 (((((cÚ¡ *è(
+¤c
+))[
+idx
+ + 3] << 8 \
+
+63 | ((cÚ¡ *è(
+¤c
+))[
+idx
+ + 2]) << 8 \
+
+64 | ((cÚ¡ *è(
+¤c
+))[
+idx
+ + 1]) << 8 \
+
+65 | ((cÚ¡ *è(
+¤c
+))[
+idx
+])
+
+	)
+
+69 
+	#_HAVE_STRING_ARCH_memýy
+ 1
+
+	)
+
+70 
+	#memýy
+(
+de¡
+, 
+¤c
+, 
+n
+) \
+
+71 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+n
+) \
+
+72 ? 
+	`__memýy_c
+ ((
+de¡
+), (
+¤c
+), (
+n
+)) \
+
+73 : 
+	`__memýy_g
+ ((
+de¡
+), (
+¤c
+), (
+n
+))))
+
+	)
+
+74 
+	#__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
+ *
+__memýy_by4
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+,
+
+84 
+size_t
+ 
+__n
+);
+
+86 
+__STRING_INLINE
+ *
+
+87 
+	$__memýy_by4
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+89 
+__d0
+, 
+__d1
+;
+
+90 *
+__tmp
+ = 
+__de¡
+;
+
+91 
+__asm__
+ 
+__vÞ©že__
+
+
+99 : "=&r" (
+__d0
+), "=&r" (
+__tmp
+), "=&r" (
+__¤c
+), "=&r" (
+__d1
+)
+
+100 : "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (
+__n
+ / 4)
+
+102  
+__de¡
+;
+
+103 
+	}
+}
+
+105 
+__STRING_INLINE
+ *
+__memýy_by2
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+,
+
+106 
+size_t
+ 
+__n
+);
+
+108 
+__STRING_INLINE
+ *
+
+109 
+	$__memýy_by2
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+111 
+__d0
+, 
+__d1
+;
+
+112 *
+__tmp
+ = 
+__de¡
+;
+
+113 
+__asm__
+ 
+__vÞ©že__
+
+
+126 : "=&q" (
+__d0
+), "=&r" (
+__tmp
+), "=&r" (
+__¤c
+), "=&r" (
+__d1
+)
+
+127 : "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (
+__n
+ / 2)
+
+129  
+__de¡
+;
+
+130 
+	}
+}
+
+132 
+__STRING_INLINE
+ *
+__memýy_g
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+, 
+size_t
+ 
+__n
+);
+
+134 
+__STRING_INLINE
+ *
+
+135 
+	$__memýy_g
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+137 
+__d0
+, 
+__d1
+, 
+__d2
+;
+
+138 *
+__tmp
+ = 
+__de¡
+;
+
+139 
+__asm__
+ 
+__vÞ©že__
+
+
+150 : "=&c" (
+__d0
+), "=&D" (
+__d1
+), "=&S" (
+__d2
+),
+
+151 "=m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__de¡
+)
+
+152 : "0" (
+__n
+), "1" (
+__tmp
+), "2" (
+__¤c
+),
+
+153 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__¤c
+)
+
+155  
+__de¡
+;
+
+156 
+	}
+}
+
+158 
+	#_HAVE_STRING_ARCH_memmove
+ 1
+
+	)
+
+159 #iâdeà
+_FORCE_INLINES
+
+
+162 
+	#memmove
+(
+de¡
+, 
+¤c
+, 
+n
+è
+	`__memmove_g
+ (de¡, src,‚)
+
+	)
+
+164 
+__STRING_INLINE
+ *
+	$__memmove_g
+ (*, cÚ¡ *, 
+size_t
+)
+
+165 
+	`__asm__
+ ("memmove");
+
+167 
+__STRING_INLINE
+ *
+
+168 
+	$__memmove_g
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+170 
+__d0
+, 
+__d1
+, 
+__d2
+;
+
+171 *
+__tmp
+ = 
+__de¡
+;
+
+172 ià(
+__de¡
+ < 
+__¤c
+)
+
+173 
+__asm__
+ 
+__vÞ©že__
+
+
+176 : "=&c" (
+__d0
+), "=&S" (
+__d1
+), "=&D" (
+__d2
+),
+
+177 "=m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__de¡
+)
+
+178 : "0" (
+__n
+), "1" (
+__¤c
+), "2" (
+__tmp
+),
+
+179 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__¤c
+));
+
+181 
+__asm__
+ 
+__vÞ©že__
+
+
+187 : "=&c" (
+__d0
+), "=&S" (
+__d1
+), "=&D" (
+__d2
+),
+
+188 "=m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__de¡
+)
+
+189 : "0" (
+__n
+), "1" (__À+ (cÚ¡ *è
+__¤c
+),
+
+190 "2" (
+__n
+ + (*è
+__tmp
+),
+
+191 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__¤c
+));
+
+192  
+__de¡
+;
+
+193 
+	}
+}
+
+197 
+	#_HAVE_STRING_ARCH_memcmp
+ 1
+
+	)
+
+198 #iâdeà
+_FORCE_INLINES
+
+
+199 #iâdeà
+__PIC__
+
+
+201 
+__STRING_INLINE
+ 
+
+202 
+	$memcmp
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+, 
+size_t
+ 
+__n
+)
+
+204 
+__d0
+, 
+__d1
+, 
+__d2
+;
+
+205 
+__»s
+;
+
+206 
+__asm__
+ 
+__vÞ©že__
+
+
+214 : "=&a" (
+__»s
+), "=&S" (
+__d0
+), "=&D" (
+__d1
+), "=&c" (
+__d2
+)
+
+215 : "0" (0), "1" (
+__s1
+), "2" (
+__s2
+), "3" (
+__n
+),
+
+216 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__s1
+),
+
+217 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__s2
+)
+
+219  
+__»s
+;
+
+220 
+	}
+}
+
+225 
+	#_HAVE_STRING_ARCH_mem£t
+ 1
+
+	)
+
+226 
+	#_USE_STRING_ARCH_mem£t
+ 1
+
+	)
+
+227 
+	#mem£t
+(
+s
+, 
+c
+, 
+n
+) \
+
+228 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+n
+) && (n) <= 16 \
+
+229 ? ((
+n
+) == 1 \
+
+230 ? 
+	`__mem£t_c1
+ ((
+s
+), (
+c
+)) \
+
+231 : 
+	`__mem£t_gc
+ ((
+s
+), (
+c
+), (
+n
+))) \
+
+232 : (
+	`__bužtš_cÚ¡ªt_p
+ (
+c
+) \
+
+233 ? (
+	`__bužtš_cÚ¡ªt_p
+ (
+n
+) \
+
+234 ? 
+	`__mem£t_cú
+ ((
+s
+), (
+c
+), (
+n
+)) \
+
+235 : 
+	`mem£t
+ ((
+s
+), (
+c
+), (
+n
+))) \
+
+236 : (
+	`__bužtš_cÚ¡ªt_p
+ (
+n
+) \
+
+237 ? 
+	`__mem£t_gú
+ ((
+s
+), (
+c
+), (
+n
+)) \
+
+238 : 
+	`mem£t
+ ((
+s
+), (
+c
+), (
+n
+))))))
+
+	)
+
+240 
+	#__mem£t_c1
+(
+s
+, 
+c
+è({ *
+__s
+ = (s); \
+
+241 *((*è
+__s
+èð(è(
+c
+); \
+
+242 
+__s
+; })
+
+	)
+
+244 
+	#__mem£t_gc
+(
+s
+, 
+c
+, 
+n
+) \
+
+245 ({ *
+__s
+ = (
+s
+); \
+
+247 
+__ui
+; \
+
+248 
+__usi
+; \
+
+249 
+__uc
+; \
+
+250 } *
+__u
+ = 
+__s
+; \
+
+251 
+__c
+ = ((è((è(
+c
+))) * 0x01010101; \
+
+257 ià((
+n
+) == 3 || (n) >= 5) \
+
+258 
+__asm__
+ 
+	`__vÞ©že__
+ ("" : "ô" (
+__c
+) : "0" (__c)); \
+
+261 
+n
+) \
+
+264 
+__u
+->
+__ui
+ = 
+__c
+; \
+
+265 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+267 
+__u
+->
+__ui
+ = 
+__c
+; \
+
+268 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+270 
+__u
+->
+__ui
+ = 
+__c
+; \
+
+271 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+273 
+__u
+->
+__usi
+ = (è
+__c
+; \
+
+274 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 2); \
+
+275 
+__u
+->
+__uc
+ = (è
+__c
+; \
+
+279 
+__u
+->
+__ui
+ = 
+__c
+; \
+
+280 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+282 
+__u
+->
+__ui
+ = 
+__c
+; \
+
+283 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+285 
+__u
+->
+__ui
+ = 
+__c
+; \
+
+286 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+288 
+__u
+->
+__usi
+ = (è
+__c
+; \
+
+292 
+__u
+->
+__ui
+ = 
+__c
+; \
+
+293 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+295 
+__u
+->
+__ui
+ = 
+__c
+; \
+
+296 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+298 
+__u
+->
+__ui
+ = 
+__c
+; \
+
+299 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+301 
+__u
+->
+__uc
+ = (è
+__c
+; \
+
+305 
+__u
+->
+__ui
+ = 
+__c
+; \
+
+306 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+308 
+__u
+->
+__ui
+ = 
+__c
+; \
+
+309 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+311 
+__u
+->
+__ui
+ = 
+__c
+; \
+
+312 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+314 
+__u
+->
+__ui
+ = 
+__c
+; \
+
+319 
+__s
+; })
+
+	)
+
+321 
+	#__mem£t_cú
+(
+s
+, 
+c
+, 
+n
+) \
+
+322 (((
+n
+) % 4 == 0) \
+
+323 ? 
+	`__mem£t_cú_by4
+ (
+s
+, ((è((è(
+c
+))) * 0x01010101,\
+
+324 
+n
+) \
+
+325 : (((
+n
+) % 2 == 0) \
+
+326 ? 
+	`__mem£t_cú_by2
+ (
+s
+, \
+
+327 ((è((è(
+c
+))) * 0x01010101,\
+
+328 
+n
+) \
+
+329 : 
+	`mem£t
+ (
+s
+, 
+c
+, 
+n
+)))
+
+	)
+
+331 
+__STRING_INLINE
+ *
+__mem£t_cú_by4
+ (*
+__s
+, 
+__c
+,
+
+332 
+size_t
+ 
+__n
+);
+
+334 
+__STRING_INLINE
+ *
+
+335 
+	$__mem£t_cú_by4
+ (*
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+)
+
+337 *
+__tmp
+ = 
+__s
+;
+
+338 
+__d0
+;
+
+339 #ifdeà
+__i686__
+
+
+340 
+__asm__
+ 
+__vÞ©že__
+
+
+343 : "=&a" (
+__c
+), "=&D" (
+__tmp
+), "=&c" (
+__d0
+),
+
+344 "=m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__s
+)
+
+345 : "0" ((è
+__c
+), "1" (
+__tmp
+), "2" (
+__n
+ / 4)
+
+348 
+__asm__
+ 
+__vÞ©že__
+
+
+354 : "=&r" (
+__c
+), "=&r" (
+__tmp
+), "=&r" (
+__d0
+),
+
+355 "=m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__s
+)
+
+356 : "0" ((è
+__c
+), "1" (
+__tmp
+), "2" (
+__n
+ / 4)
+
+359  
+__s
+;
+
+360 
+	}
+}
+
+362 
+__STRING_INLINE
+ *
+__mem£t_cú_by2
+ (*
+__s
+, 
+__c
+,
+
+363 
+size_t
+ 
+__n
+);
+
+365 
+__STRING_INLINE
+ *
+
+366 
+	$__mem£t_cú_by2
+ (*
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+)
+
+368 
+__d0
+, 
+__d1
+;
+
+369 *
+__tmp
+ = 
+__s
+;
+
+370 #ifdeà
+__i686__
+
+
+371 
+__asm__
+ 
+__vÞ©že__
+
+
+375 : "=&a" (
+__d0
+), "=&D" (
+__tmp
+), "=&c" (
+__d1
+),
+
+376 "=m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__s
+)
+
+377 : "0" ((è
+__c
+), "1" (
+__tmp
+), "2" (
+__n
+ / 4)
+
+380 
+__asm__
+ 
+__vÞ©že__
+
+
+386 : "=&q" (
+__d0
+), "=&r" (
+__tmp
+), "=&r" (
+__d1
+),
+
+387 "=m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__s
+)
+
+388 : "0" ((è
+__c
+), "1" (
+__tmp
+), "2" (
+__n
+ / 4)
+
+391  
+__s
+;
+
+392 
+	}
+}
+
+394 
+	#__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
+ *
+__mem£t_gú_by4
+ (*
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+);
+
+403 
+__STRING_INLINE
+ *
+
+404 
+	$__mem£t_gú_by4
+ (*
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+)
+
+406 *
+__tmp
+ = 
+__s
+;
+
+407 
+__d0
+;
+
+408 
+__asm__
+ 
+__vÞ©že__
+
+
+418 : "=&q" (
+__c
+), "=&r" (
+__tmp
+), "=&r" (
+__d0
+),
+
+419 "=m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__s
+)
+
+420 : "0" ((è
+__c
+), "1" (
+__tmp
+), "2" (
+__n
+ / 4)
+
+422  
+__s
+;
+
+423 
+	}
+}
+
+425 
+__STRING_INLINE
+ *
+__mem£t_gú_by2
+ (*
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+);
+
+427 
+__STRING_INLINE
+ *
+
+428 
+	$__mem£t_gú_by2
+ (*
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+)
+
+430 
+__d0
+, 
+__d1
+;
+
+431 *
+__tmp
+ = 
+__s
+;
+
+432 
+__asm__
+ 
+__vÞ©že__
+
+
+443 : "=&q" (
+__d0
+), "=&r" (
+__tmp
+), "=&r" (
+__d1
+),
+
+444 "=m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__s
+)
+
+445 : "0" ((è
+__c
+), "1" (
+__tmp
+), "2" (
+__n
+ / 4)
+
+447  
+__s
+;
+
+448 
+	}
+}
+
+452 
+	#_HAVE_STRING_ARCH_memchr
+ 1
+
+	)
+
+453 #iâdeà
+_FORCE_INLINES
+
+
+454 
+__STRING_INLINE
+ *
+
+455 
+	$memchr
+ (cÚ¡ *
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+)
+
+457 
+__d0
+;
+
+458 #ifdeà
+__i686__
+
+
+459 
+__d1
+;
+
+461 *
+__»s
+;
+
+462 ià(
+__n
+ == 0)
+
+463  
+NULL
+;
+
+464 #ifdeà
+__i686__
+
+
+465 
+__asm__
+ 
+__vÞ©že__
+
+
+469 : "=D" (
+__»s
+), "=&c" (
+__d0
+), "=&r" (
+__d1
+)
+
+470 : "a" (
+__c
+), "0" (
+__s
+), "1" (
+__n
+), "2" (1),
+
+471 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__s
+)
+
+474 
+__asm__
+ 
+__vÞ©že__
+
+
+480 : "=D" (
+__»s
+), "=&c" (
+__d0
+)
+
+481 : "a" (
+__c
+), "0" (
+__s
+), "1" (
+__n
+),
+
+482 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__s
+)
+
+485  
+__»s
+ - 1;
+
+486 
+	}
+}
+
+489 
+	#_HAVE_STRING_ARCH_memrchr
+ 1
+
+	)
+
+490 #iâdeà
+_FORCE_INLINES
+
+
+491 
+__STRING_INLINE
+ *
+__memrchr
+ (cÚ¡ *
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+);
+
+493 
+__STRING_INLINE
+ *
+
+494 
+	$__memrchr
+ (cÚ¡ *
+__s
+, 
+__c
+, 
+size_t
+ 
+__n
+)
+
+496 
+__d0
+;
+
+497 #ifdeà
+__i686__
+
+
+498 
+__d1
+;
+
+500 *
+__»s
+;
+
+501 ià(
+__n
+ == 0)
+
+502  
+NULL
+;
+
+503 #ifdeà
+__i686__
+
+
+504 
+__asm__
+ 
+__vÞ©že__
+
+
+510 : "=D" (
+__»s
+), "=&c" (
+__d0
+), "=&r" (
+__d1
+)
+
+511 : "a" (
+__c
+), "0" (
+__s
+ + 
+__n
+ - 1), "1" (__n), "2" (-1),
+
+512 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__s
+)
+
+515 
+__asm__
+ 
+__vÞ©že__
+
+
+522 : "=D" (
+__»s
+), "=&c" (
+__d0
+)
+
+523 : "a" (
+__c
+), "0" (
+__s
+ + 
+__n
+ - 1), "1" (__n),
+
+524 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__s
+)
+
+527  
+__»s
+;
+
+528 
+	}
+}
+
+529 #ifdeà
+__USE_GNU
+
+
+530 
+	#memrchr
+(
+s
+, 
+c
+, 
+n
+è
+	`__memrchr
+ ((s), (c), (n))
+
+	)
+
+535 
+	#_HAVE_STRING_ARCH_¿wmemchr
+ 1
+
+	)
+
+536 
+__STRING_INLINE
+ *
+__¿wmemchr
+ (cÚ¡ *
+__s
+, 
+__c
+);
+
+538 #iâdeà
+_FORCE_INLINES
+
+
+539 
+__STRING_INLINE
+ *
+
+540 
+	$__¿wmemchr
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+542 
+__d0
+;
+
+543 *
+__»s
+;
+
+544 
+__asm__
+ 
+__vÞ©že__
+
+
+547 : "=D" (
+__»s
+), "=&c" (
+__d0
+)
+
+548 : "a" (
+__c
+), "0" (
+__s
+), "1" (0xffffffff),
+
+549 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__s
+)
+
+551  
+__»s
+ - 1;
+
+552 
+	}
+}
+
+553 #ifdeà
+__USE_GNU
+
+
+554 
+__STRING_INLINE
+ *
+
+555 
+	$¿wmemchr
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+557  
+	`__¿wmemchr
+ (
+__s
+, 
+__c
+);
+
+558 
+	}
+}
+
+564 
+	#_HAVE_STRING_ARCH_¡¾’
+ 1
+
+	)
+
+565 
+	#¡¾’
+(
+¡r
+) \
+
+566 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+¡r
+) \
+
+567 ? 
+	`__bužtš_¡¾’
+ (
+¡r
+) \
+
+568 : 
+	`__¡¾’_g
+ (
+¡r
+)))
+
+	)
+
+569 
+__STRING_INLINE
+ 
+size_t
+ 
+__¡¾’_g
+ (cÚ¡ *
+__¡r
+);
+
+571 
+__STRING_INLINE
+ 
+size_t
+
+
+572 
+	$__¡¾’_g
+ (cÚ¡ *
+__¡r
+)
+
+574 
+__dummy
+;
+
+575 cÚ¡ *
+__tmp
+ = 
+__¡r
+;
+
+576 
+__asm__
+ 
+__vÞ©že__
+
+
+582 : "ô" (
+__tmp
+), "=&q" (
+__dummy
+)
+
+583 : "0" (
+__¡r
+),
+
+584 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__¡r
+)
+
+586  
+__tmp
+ - 
+__¡r
+ - 1;
+
+587 
+	}
+}
+
+591 
+	#_HAVE_STRING_ARCH_¡rýy
+ 1
+
+	)
+
+592 
+	#¡rýy
+(
+de¡
+, 
+¤c
+) \
+
+593 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+¤c
+) \
+
+594 ? ( ((
+¤c
+)[0]è=ð1 && 
+	`¡¾’
+ (src) + 1 <= 8 \
+
+595 ? 
+	`__¡rýy_a_sm®l
+ ((
+de¡
+), (
+¤c
+), 
+	`¡¾’
+ (src) + 1) \
+
+596 : (*è
+	`memýy
+ ((*è(
+de¡
+), \
+
+597 (cÚ¡ *è(
+¤c
+), \
+
+598 
+	`¡¾’
+ (
+¤c
+) + 1)) \
+
+599 : 
+	`__¡rýy_g
+ ((
+de¡
+), (
+¤c
+))))
+
+	)
+
+601 
+	#__¡rýy_a_sm®l
+(
+de¡
+, 
+¤c
+, 
+¤þ’
+) \
+
+602 (
+	`__ex‹nsiÚ__
+ ({ *
+__de¡
+ = (
+de¡
+); \
+
+604 
+__ui
+; \
+
+605 
+__usi
+; \
+
+606 
+__uc
+; \
+
+607 
+__c
+; \
+
+608 } *
+__u
+ = (*è
+__de¡
+; \
+
+609 
+¤þ’
+) \
+
+612 
+__u
+->
+__uc
+ = '\0'; \
+
+615 
+__u
+->
+__usi
+ = 
+	`__STRING_SMALL_GET16
+ (
+¤c
+, 0); \
+
+618 
+__u
+->
+__usi
+ = 
+	`__STRING_SMALL_GET16
+ (
+¤c
+, 0); \
+
+619 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __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‹nsiÚ__
+ ((*) __u + 4); \
+
+628 
+__u
+->
+__uc
+ = '\0'; \
+
+631 
+__u
+->
+__ui
+ = 
+	`__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+632 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+633 
+__u
+->
+__usi
+ = 
+	`__STRING_SMALL_GET16
+ (
+¤c
+, 4); \
+
+636 
+__u
+->
+__ui
+ = 
+	`__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+637 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+638 
+__u
+->
+__usi
+ = 
+	`__STRING_SMALL_GET16
+ (
+¤c
+, 4); \
+
+639 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 2); \
+
+640 
+__u
+->
+__uc
+ = '\0'; \
+
+643 
+__u
+->
+__ui
+ = 
+	`__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+644 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+645 
+__u
+->
+__ui
+ = 
+	`__STRING_SMALL_GET32
+ (
+¤c
+, 4); \
+
+648 (*è
+__de¡
+; }))
+
+	)
+
+650 
+__STRING_INLINE
+ *
+__¡rýy_g
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+);
+
+652 
+__STRING_INLINE
+ *
+
+653 
+	$__¡rýy_g
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+)
+
+655 *
+__tmp
+ = 
+__de¡
+;
+
+656 
+__dummy
+;
+
+657 
+__asm__
+ 
+__vÞ©že__
+
+
+666 : "=&r" (
+__¤c
+), "=&r" (
+__tmp
+), "=&q" (
+__dummy
+),
+
+667 "=m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__de¡
+)
+
+668 : "0" (
+__¤c
+), "1" (
+__tmp
+),
+
+669 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__¤c
+)
+
+671  
+__de¡
+;
+
+672 
+	}
+}
+
+675 #ifdeà
+__USE_GNU
+
+
+676 
+	#_HAVE_STRING_ARCH_¡pýy
+ 1
+
+	)
+
+678 
+	#__¡pýy
+(
+de¡
+, 
+¤c
+) \
+
+679 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+¤c
+) \
+
+680 ? (
+	`¡¾’
+ (
+¤c
+) + 1 <= 8 \
+
+681 ? 
+	`__¡pýy_a_sm®l
+ ((
+de¡
+), (
+¤c
+), 
+	`¡¾’
+ (src) + 1) \
+
+682 : 
+	`__¡pýy_c
+ ((
+de¡
+), (
+¤c
+), 
+	`¡¾’
+ (src) + 1)) \
+
+683 : 
+	`__¡pýy_g
+ ((
+de¡
+), (
+¤c
+))))
+
+	)
+
+684 
+	#__¡pýy_c
+(
+de¡
+, 
+¤c
+, 
+¤þ’
+) \
+
+685 ((
+¤þ’
+) % 4 == 0 \
+
+686 ? 
+	`__mempýy_by4
+ (
+de¡
+, 
+¤c
+, 
+¤þ’
+) - 1 \
+
+687 : ((
+¤þ’
+) % 2 == 0 \
+
+688 ? 
+	`__mempýy_by2
+ (
+de¡
+, 
+¤c
+, 
+¤þ’
+) - 1 \
+
+689 : 
+	`__mempýy_byn
+ (
+de¡
+, 
+¤c
+, 
+¤þ’
+è- 1))
+
+	)
+
+692 
+	#¡pýy
+(
+de¡
+, 
+¤c
+è
+	`__¡pýy
+ ((de¡), (¤c))
+
+	)
+
+694 
+	#__¡pýy_a_sm®l
+(
+de¡
+, 
+¤c
+, 
+¤þ’
+) \
+
+695 (
+	`__ex‹nsiÚ__
+ ({ union { \
+
+696 
+__ui
+; \
+
+697 
+__usi
+; \
+
+698 
+__uc
+; \
+
+699 
+__c
+; \
+
+700 } *
+__u
+ = (*è(
+de¡
+); \
+
+701 
+¤þ’
+) \
+
+704 
+__u
+->
+__uc
+ = '\0'; \
+
+707 
+__u
+->
+__usi
+ = 
+	`__STRING_SMALL_GET16
+ (
+¤c
+, 0); \
+
+708 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 1); \
+
+711 
+__u
+->
+__usi
+ = 
+	`__STRING_SMALL_GET16
+ (
+¤c
+, 0); \
+
+712 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 2); \
+
+713 
+__u
+->
+__uc
+ = '\0'; \
+
+716 
+__u
+->
+__ui
+ = 
+	`__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+717 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 3); \
+
+720 
+__u
+->
+__ui
+ = 
+	`__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+721 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+722 
+__u
+->
+__uc
+ = '\0'; \
+
+725 
+__u
+->
+__ui
+ = 
+	`__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+726 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+727 
+__u
+->
+__usi
+ = 
+	`__STRING_SMALL_GET16
+ (
+¤c
+, 4); \
+
+728 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 1); \
+
+731 
+__u
+->
+__ui
+ = 
+	`__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+732 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+733 
+__u
+->
+__usi
+ = 
+	`__STRING_SMALL_GET16
+ (
+¤c
+, 4); \
+
+734 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 2); \
+
+735 
+__u
+->
+__uc
+ = '\0'; \
+
+738 
+__u
+->
+__ui
+ = 
+	`__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+739 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+740 
+__u
+->
+__ui
+ = 
+	`__STRING_SMALL_GET32
+ (
+¤c
+, 4); \
+
+741 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 3); \
+
+744 (*è
+__u
+; }))
+
+	)
+
+746 
+__STRING_INLINE
+ *
+__mempýy_by4
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+,
+
+747 
+size_t
+ 
+__¤þ’
+);
+
+749 
+__STRING_INLINE
+ *
+
+750 
+	$__mempýy_by4
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+, 
+size_t
+ 
+__¤þ’
+)
+
+752 *
+__tmp
+ = 
+__de¡
+;
+
+753 
+__d0
+, 
+__d1
+;
+
+754 
+__asm__
+ 
+__vÞ©že__
+
+
+762 : "=&r" (
+__d0
+), "ô" (
+__tmp
+), "=&r" (
+__¤c
+), "=&r" (
+__d1
+)
+
+763 : "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (
+__¤þ’
+ / 4)
+
+765  
+__tmp
+;
+
+766 
+	}
+}
+
+768 
+__STRING_INLINE
+ *
+__mempýy_by2
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+,
+
+769 
+size_t
+ 
+__¤þ’
+);
+
+771 
+__STRING_INLINE
+ *
+
+772 
+	$__mempýy_by2
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+, 
+size_t
+ 
+__¤þ’
+)
+
+774 *
+__tmp
+ = 
+__de¡
+;
+
+775 
+__d0
+, 
+__d1
+;
+
+776 
+__asm__
+ 
+__vÞ©že__
+
+
+789 : "=&q" (
+__d0
+), "ô" (
+__tmp
+), "=&r" (
+__¤c
+), "=&r" (
+__d1
+),
+
+790 "=m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__¤þ’
+]; } *)
+__de¡
+)
+
+791 : "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (
+__¤þ’
+ / 2),
+
+792 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__¤þ’
+]; } *)
+__¤c
+)
+
+794  
+__tmp
+ + 2;
+
+795 
+	}
+}
+
+797 
+__STRING_INLINE
+ *
+__mempýy_byn
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+,
+
+798 
+size_t
+ 
+__¤þ’
+);
+
+800 
+__STRING_INLINE
+ *
+
+801 
+	$__mempýy_byn
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+, 
+size_t
+ 
+__¤þ’
+)
+
+803 
+__d0
+, 
+__d1
+;
+
+804 *
+__tmp
+ = 
+__de¡
+;
+
+805 
+__asm__
+ 
+__vÞ©že__
+
+
+816 : "=D" (
+__tmp
+), "=&c" (
+__d0
+), "=&S" (
+__d1
+),
+
+817 "=m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__¤þ’
+]; } *)
+__de¡
+)
+
+818 : "0" (
+__tmp
+), "1" (
+__¤þ’
+), "2" (
+__¤c
+),
+
+819 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__¤þ’
+]; } *)
+__¤c
+)
+
+821  
+__tmp
+;
+
+822 
+	}
+}
+
+824 
+__STRING_INLINE
+ *
+__¡pýy_g
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+);
+
+826 
+__STRING_INLINE
+ *
+
+827 
+	$__¡pýy_g
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+)
+
+829 *
+__tmp
+ = 
+__de¡
+;
+
+830 
+__dummy
+;
+
+831 
+__asm__
+ 
+__vÞ©že__
+
+
+840 : "=&r" (
+__¤c
+), "ô" (
+__tmp
+), "=&q" (
+__dummy
+),
+
+841 "=m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__de¡
+)
+
+842 : "0" (
+__¤c
+), "1" (
+__tmp
+),
+
+843 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__¤c
+)
+
+845  
+__tmp
+ - 1;
+
+846 
+	}
+}
+
+851 
+	#_HAVE_STRING_ARCH_¡ºýy
+ 1
+
+	)
+
+852 
+	#¡ºýy
+(
+de¡
+, 
+¤c
+, 
+n
+) \
+
+853 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+¤c
+) \
+
+854 ? ((
+	`¡¾’
+ (
+¤c
+è+ 1 >ð((
+size_t
+è(
+n
+)) \
+
+855 ? (*è
+	`memýy
+ ((*è(
+de¡
+), \
+
+856 (cÚ¡ *è(
+¤c
+), 
+n
+) \
+
+857 : 
+	`__¡ºýy_cg
+ ((
+de¡
+), (
+¤c
+), 
+	`¡¾’
+ (¤cè+ 1, 
+n
+))) \
+
+858 : 
+	`__¡ºýy_gg
+ ((
+de¡
+), (
+¤c
+), 
+n
+)))
+
+	)
+
+859 
+	#__¡ºýy_cg
+(
+de¡
+, 
+¤c
+, 
+¤þ’
+, 
+n
+) \
+
+860 (((
+¤þ’
+) % 4 == 0) \
+
+861 ? 
+	`__¡ºýy_by4
+ (
+de¡
+, 
+¤c
+, 
+¤þ’
+, 
+n
+) \
+
+862 : (((
+¤þ’
+) % 2 == 0) \
+
+863 ? 
+	`__¡ºýy_by2
+ (
+de¡
+, 
+¤c
+, 
+¤þ’
+, 
+n
+) \
+
+864 : 
+	`__¡ºýy_byn
+ (
+de¡
+, 
+¤c
+, 
+¤þ’
+, 
+n
+)))
+
+	)
+
+866 
+__STRING_INLINE
+ *
+__¡ºýy_by4
+ (*
+__de¡
+, cÚ¡ 
+__¤c
+[],
+
+867 
+size_t
+ 
+__¤þ’
+, size_ˆ
+__n
+);
+
+869 
+__STRING_INLINE
+ *
+
+870 
+	$__¡ºýy_by4
+ (*
+__de¡
+, cÚ¡ 
+__¤c
+[], 
+size_t
+ 
+__¤þ’
+, size_ˆ
+__n
+)
+
+872 *
+__tmp
+ = 
+__de¡
+;
+
+873 
+__dummy1
+, 
+__dummy2
+;
+
+874 
+__asm__
+ 
+__vÞ©že__
+
+
+882 : "=&r" (
+__dummy1
+), "ô" (
+__tmp
+), "=&r" (
+__¤c
+), "=&r" (
+__dummy2
+),
+
+883 "=m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__¤þ’
+]; } *)
+__de¡
+)
+
+884 : "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (
+__¤þ’
+ / 4),
+
+885 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__¤þ’
+]; } *)
+__¤c
+)
+
+887 (è
+	`mem£t
+ (
+__tmp
+, '\0', 
+__n
+ - 
+__¤þ’
+);
+
+888  
+__de¡
+;
+
+889 
+	}
+}
+
+891 
+__STRING_INLINE
+ *
+__¡ºýy_by2
+ (*
+__de¡
+, cÚ¡ 
+__¤c
+[],
+
+892 
+size_t
+ 
+__¤þ’
+, size_ˆ
+__n
+);
+
+894 
+__STRING_INLINE
+ *
+
+895 
+	$__¡ºýy_by2
+ (*
+__de¡
+, cÚ¡ 
+__¤c
+[], 
+size_t
+ 
+__¤þ’
+, size_ˆ
+__n
+)
+
+897 *
+__tmp
+ = 
+__de¡
+;
+
+898 
+__dummy1
+, 
+__dummy2
+;
+
+899 
+__asm__
+ 
+__vÞ©že__
+
+
+912 : "=&q" (
+__dummy1
+), "ô" (
+__tmp
+), "=&r" (
+__¤c
+), "=&r" (
+__dummy2
+),
+
+913 "=m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__¤þ’
+]; } *)
+__de¡
+)
+
+914 : "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (
+__¤þ’
+ / 2),
+
+915 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__¤þ’
+]; } *)
+__¤c
+)
+
+917 (è
+	`mem£t
+ (
+__tmp
+ + 2, '\0', 
+__n
+ - 
+__¤þ’
+);
+
+918  
+__de¡
+;
+
+919 
+	}
+}
+
+921 
+__STRING_INLINE
+ *
+__¡ºýy_byn
+ (*
+__de¡
+, cÚ¡ 
+__¤c
+[],
+
+922 
+size_t
+ 
+__¤þ’
+, size_ˆ
+__n
+);
+
+924 
+__STRING_INLINE
+ *
+
+925 
+	$__¡ºýy_byn
+ (*
+__de¡
+, cÚ¡ 
+__¤c
+[], 
+size_t
+ 
+__¤þ’
+, size_ˆ
+__n
+)
+
+927 
+__d0
+, 
+__d1
+;
+
+928 *
+__tmp
+ = 
+__de¡
+;
+
+929 
+__asm__
+ 
+__vÞ©že__
+
+
+940 : "=D" (
+__tmp
+), "=&c" (
+__d0
+), "=&S" (
+__d1
+),
+
+941 "=m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__¤þ’
+]; } *)
+__de¡
+)
+
+942 : "1" (
+__¤þ’
+), "0" (
+__tmp
+),"2" (
+__¤c
+),
+
+943 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__¤þ’
+]; } *)
+__¤c
+)
+
+945 (è
+	`mem£t
+ (
+__tmp
+, '\0', 
+__n
+ - 
+__¤þ’
+);
+
+946  
+__de¡
+;
+
+947 
+	}
+}
+
+949 
+__STRING_INLINE
+ *
+__¡ºýy_gg
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+,
+
+950 
+size_t
+ 
+__n
+);
+
+952 
+__STRING_INLINE
+ *
+
+953 
+	$__¡ºýy_gg
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+955 *
+__tmp
+ = 
+__de¡
+;
+
+956 
+__dummy
+;
+
+957 ià(
+__n
+ > 0)
+
+958 
+__asm__
+ 
+__vÞ©že__
+
+
+974 : "=&r" (
+__¤c
+), "=&r" (
+__tmp
+), "=&q" (
+__dummy
+), "=&r" (
+__n
+)
+
+975 : "0" (
+__¤c
+), "1" (
+__tmp
+), "3" (
+__n
+)
+
+978  
+__de¡
+;
+
+979 
+	}
+}
+
+983 
+	#_HAVE_STRING_ARCH_¡rÿt
+ 1
+
+	)
+
+984 
+	#¡rÿt
+(
+de¡
+, 
+¤c
+) \
+
+985 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+¤c
+) \
+
+986 ? 
+	`__¡rÿt_c
+ ((
+de¡
+), (
+¤c
+), 
+	`¡¾’
+ (src) + 1) \
+
+987 : 
+	`__¡rÿt_g
+ ((
+de¡
+), (
+¤c
+))))
+
+	)
+
+989 
+__STRING_INLINE
+ *
+__¡rÿt_c
+ (*
+__de¡
+, cÚ¡ 
+__¤c
+[],
+
+990 
+size_t
+ 
+__¤þ’
+);
+
+992 
+__STRING_INLINE
+ *
+
+993 
+	$__¡rÿt_c
+ (*
+__de¡
+, cÚ¡ 
+__¤c
+[], 
+size_t
+ 
+__¤þ’
+)
+
+995 #ifdeà
+__i686__
+
+
+996 
+__d0
+;
+
+997 *
+__tmp
+;
+
+998 
+__asm__
+ 
+__vÞ©že__
+
+
+1000 : "=D" (
+__tmp
+), "=&c" (
+__d0
+),
+
+1001 "=m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__de¡
+)
+
+1002 : "0" (
+__de¡
+), "1" (0xffffffff), "a" (0),
+
+1003 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__¤þ’
+]; } *)
+__¤c
+)
+
+1005 --
+__tmp
+;
+
+1007 *
+__tmp
+ = 
+__de¡
+;
+
+1008 
+__asm__
+ 
+__vÞ©že__
+
+
+1014 : "ô" (
+__tmp
+),
+
+1015 "=m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__de¡
+)
+
+1016 : "0" (
+__tmp
+),
+
+1017 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__¤þ’
+]; } *)
+__¤c
+)
+
+1020 (è
+	`memýy
+ (
+__tmp
+, 
+__¤c
+, 
+__¤þ’
+);
+
+1021  
+__de¡
+;
+
+1022 
+	}
+}
+
+1024 
+__STRING_INLINE
+ *
+__¡rÿt_g
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+);
+
+1026 
+__STRING_INLINE
+ *
+
+1027 
+	$__¡rÿt_g
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+)
+
+1029 *
+__tmp
+ = 
+__de¡
+;
+
+1030 
+__dummy
+;
+
+1031 
+__asm__
+ 
+__vÞ©že__
+
+
+1044 : "=&q" (
+__dummy
+), "=&r" (
+__tmp
+), "=&r" (
+__¤c
+),
+
+1045 "=m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__de¡
+)
+
+1046 : "1" (
+__tmp
+), "2" (
+__¤c
+),
+
+1047 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__¤c
+)
+
+1049  
+__de¡
+;
+
+1050 
+	}
+}
+
+1054 
+	#_HAVE_STRING_ARCH_¡ºÿt
+ 1
+
+	)
+
+1055 
+	#¡ºÿt
+(
+de¡
+, 
+¤c
+, 
+n
+) \
+
+1056 (
+	`__ex‹nsiÚ__
+ ({ *
+__de¡
+ = (
+de¡
+); \
+
+1057 
+	`__bužtš_cÚ¡ªt_p
+ (
+¤c
+è&& __bužtš_cÚ¡ªt_°(
+n
+) \
+
+1058 ? (
+	`¡¾’
+ (
+¤c
+è< ((
+size_t
+è(
+n
+)) \
+
+1059 ? 
+	`¡rÿt
+ (
+__de¡
+, (
+¤c
+)) \
+
+1060 : (*(*)
+	`__mempýy
+ (
+	`¡rchr
+ (
+__de¡
+, '\0'), \
+
+1061 (cÚ¡ *è(
+¤c
+), \
+
+1062 (
+n
+)èð0, 
+__de¡
+)) \
+
+1063 : 
+	`__¡ºÿt_g
+ (
+__de¡
+, (
+¤c
+), (
+n
+)); }))
+
+	)
+
+1065 
+__STRING_INLINE
+ *
+__¡ºÿt_g
+ (*
+__de¡
+, cÚ¡ 
+__¤c
+[],
+
+1066 
+size_t
+ 
+__n
+);
+
+1068 
+__STRING_INLINE
+ *
+
+1069 
+	$__¡ºÿt_g
+ (*
+__de¡
+, cÚ¡ 
+__¤c
+[], 
+size_t
+ 
+__n
+)
+
+1071 *
+__tmp
+ = 
+__de¡
+;
+
+1072 
+__dummy
+;
+
+1073 #ifdeà
+__i686__
+
+
+1074 
+__asm__
+ 
+__vÞ©že__
+
+
+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Þ©že__
+
+
+1110 : "=&q" (
+__dummy
+), "=&r" (
+__tmp
+), "=&r" (
+__¤c
+), "=&r" (
+__n
+)
+
+1111 : "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (
+__n
+)
+
+1114  
+__de¡
+;
+
+1115 
+	}
+}
+
+1119 
+	#_HAVE_STRING_ARCH_¡rcmp
+ 1
+
+	)
+
+1120 
+	#¡rcmp
+(
+s1
+, 
+s2
+) \
+
+1121 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+s1
+è&& __bužtš_cÚ¡ªt_°(
+s2
+) \
+
+1122 && ( ((
+s1
+)[0]è!ð1 || 
+	`¡¾’
+ (s1) >= 4) \
+
+1123 && ( ((
+s2
+)[0]è!ð1 || 
+	`¡¾’
+ (s2) >= 4) \
+
+1124 ? 
+	`memcmp
+ ((cÚ¡ *è(
+s1
+), (cÚ¡ *è(
+s2
+), \
+
+1125 (
+	`¡¾’
+ (
+s1
+è< sŒËÀ(
+s2
+) \
+
+1126 ? 
+	`¡¾’
+ (
+s1
+è: sŒËÀ(
+s2
+)) + 1) \
+
+1127 : (
+	`__bužtš_cÚ¡ªt_p
+ (
+s1
+) &&  ((s1)[0]) == 1 \
+
+1128 &&  ((
+s2
+)[0]è=ð1 && 
+	`¡¾’
+ (
+s1
+) < 4 \
+
+1129 ? (
+	`__bužtš_cÚ¡ªt_p
+ (
+s2
+) &&  ((s2)[0]) == 1 \
+
+1130 ? 
+	`__¡rcmp_cc
+ ((cÚ¡ *è(
+s1
+), \
+
+1131 (cÚ¡ *è(
+s2
+), \
+
+1132 
+	`¡¾’
+ (
+s1
+)) \
+
+1133 : 
+	`__¡rcmp_cg
+ ((cÚ¡ *è(
+s1
+), \
+
+1134 (cÚ¡ *è(
+s2
+), \
+
+1135 
+	`¡¾’
+ (
+s1
+))) \
+
+1136 : (
+	`__bužtš_cÚ¡ªt_p
+ (
+s2
+è&&  ((
+s1
+)[0]) == 1 \
+
+1137 &&  ((
+s2
+)[0]è=ð1 && 
+	`¡¾’
+ (s2) < 4 \
+
+1138 ? (
+	`__bužtš_cÚ¡ªt_p
+ (
+s1
+) \
+
+1139 ? 
+	`__¡rcmp_cc
+ ((cÚ¡ *è(
+s1
+), \
+
+1140 (cÚ¡ *è(
+s2
+), \
+
+1141 
+	`¡¾’
+ (
+s2
+)) \
+
+1142 : 
+	`__¡rcmp_gc
+ ((cÚ¡ *è(
+s1
+), \
+
+1143 (cÚ¡ *è(
+s2
+), \
+
+1144 
+	`¡¾’
+ (
+s2
+))) \
+
+1145 : 
+	`__¡rcmp_gg
+ ((
+s1
+), (
+s2
+))))))
+
+	)
+
+1147 
+	#__¡rcmp_cc
+(
+s1
+, 
+s2
+, 
+l
+) \
+
+1148 (
+	`__ex‹nsiÚ__
+ ({ 
+__»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 
+	#__¡rcmp_cg
+(
+s1
+, 
+s2
+, 
+l1
+) \
+
+1162 (
+	`__ex‹nsiÚ__
+ ({ cÚ¡ *
+__s2
+ = (
+s2
+); \
+
+1163 
+__»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 
+	#__¡rcmp_gc
+(
+s1
+, 
+s2
+, 
+l2
+) \
+
+1177 (
+	`__ex‹nsiÚ__
+ ({ cÚ¡ *
+__s1
+ = (
+s1
+); \
+
+1178 
+__»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
+ 
+__¡rcmp_gg
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+);
+
+1193 
+__STRING_INLINE
+ 
+
+1194 
+	$__¡rcmp_gg
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+)
+
+1196 
+__»s
+;
+
+1197 
+__asm__
+ 
+__vÞ©že__
+
+
+1213 : "=q" (
+__»s
+), "=&r" (
+__s1
+), "=&r" (
+__s2
+)
+
+1214 : "1" (
+__s1
+), "2" (
+__s2
+),
+
+1215 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__s1
+),
+
+1216 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__s2
+)
+
+1218  
+__»s
+;
+
+1219 
+	}
+}
+
+1223 
+	#_HAVE_STRING_ARCH_¡ºcmp
+ 1
+
+	)
+
+1224 
+	#¡ºcmp
+(
+s1
+, 
+s2
+, 
+n
+) \
+
+1225 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+s1
+è&& 
+	`¡¾’
+ (s1è< ((
+size_t
+è(
+n
+)) \
+
+1226 ? 
+	`¡rcmp
+ ((
+s1
+), (
+s2
+)) \
+
+1227 : (
+	`__bužtš_cÚ¡ªt_p
+ (
+s2
+è&& 
+	`¡¾’
+ (s2è< ((
+size_t
+è(
+n
+))\
+
+1228 ? 
+	`¡rcmp
+ ((
+s1
+), (
+s2
+)) \
+
+1229 : 
+	`__¡ºcmp_g
+ ((
+s1
+), (
+s2
+), (
+n
+)))))
+
+	)
+
+1231 
+__STRING_INLINE
+ 
+__¡ºcmp_g
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+,
+
+1232 
+size_t
+ 
+__n
+);
+
+1234 
+__STRING_INLINE
+ 
+
+1235 
+	$__¡ºcmp_g
+ (cÚ¡ *
+__s1
+, cÚ¡ *
+__s2
+, 
+size_t
+ 
+__n
+)
+
+1237 
+__»s
+;
+
+1238 
+__asm__
+ 
+__vÞ©že__
+
+
+1257 : "=q" (
+__»s
+), "=&r" (
+__s1
+), "=&r" (
+__s2
+), "=&r" (
+__n
+)
+
+1258 : "1" (
+__s1
+), "2" (
+__s2
+), "3" (
+__n
+),
+
+1259 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__s1
+),
+
+1260 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__n
+]; } *)
+__s2
+)
+
+1262  
+__»s
+;
+
+1263 
+	}
+}
+
+1267 
+	#_HAVE_STRING_ARCH_¡rchr
+ 1
+
+	)
+
+1268 
+	#_USE_STRING_ARCH_¡rchr
+ 1
+
+	)
+
+1269 
+	#¡rchr
+(
+s
+, 
+c
+) \
+
+1270 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+c
+) \
+
+1271 ? ((
+c
+) == '\0' \
+
+1272 ? (*è
+	`__¿wmemchr
+ ((
+s
+), (
+c
+)) \
+
+1273 : 
+	`__¡rchr_c
+ ((
+s
+), ((
+c
+) & 0xff) << 8)) \
+
+1274 : 
+	`__¡rchr_g
+ ((
+s
+), (
+c
+))))
+
+	)
+
+1276 
+__STRING_INLINE
+ *
+__¡rchr_c
+ (cÚ¡ *
+__s
+, 
+__c
+);
+
+1278 
+__STRING_INLINE
+ *
+
+1279 
+	$__¡rchr_c
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+1281 
+__d0
+;
+
+1282 *
+__»s
+;
+
+1283 
+__asm__
+ 
+__vÞ©že__
+
+
+1293 : "ô" (
+__»s
+), "=&a" (
+__d0
+)
+
+1294 : "0" (
+__s
+), "1" (
+__c
+),
+
+1295 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1297  
+__»s
+;
+
+1298 
+	}
+}
+
+1300 
+__STRING_INLINE
+ *
+__¡rchr_g
+ (cÚ¡ *
+__s
+, 
+__c
+);
+
+1302 
+__STRING_INLINE
+ *
+
+1303 
+	$__¡rchr_g
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+1305 
+__d0
+;
+
+1306 *
+__»s
+;
+
+1307 
+__asm__
+ 
+__vÞ©že__
+
+
+1318 : "ô" (
+__»s
+), "=&a" (
+__d0
+)
+
+1319 : "0" (
+__s
+), "1" (
+__c
+),
+
+1320 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1322  
+__»s
+;
+
+1323 
+	}
+}
+
+1327 
+	#_HAVE_STRING_ARCH_¡rchºul
+ 1
+
+	)
+
+1328 
+	#__¡rchºul
+(
+s
+, 
+c
+) \
+
+1329 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+c
+) \
+
+1330 ? ((
+c
+) == '\0' \
+
+1331 ? (*è
+	`__¿wmemchr
+ ((
+s
+), 
+c
+) \
+
+1332 : 
+	`__¡rchºul_c
+ ((
+s
+), ((
+c
+) & 0xff) << 8)) \
+
+1333 : 
+	`__¡rchºul_g
+ ((
+s
+), 
+c
+)))
+
+	)
+
+1335 
+__STRING_INLINE
+ *
+__¡rchºul_c
+ (cÚ¡ *
+__s
+, 
+__c
+);
+
+1337 
+__STRING_INLINE
+ *
+
+1338 
+	$__¡rchºul_c
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+1340 
+__d0
+;
+
+1341 *
+__»s
+;
+
+1342 
+__asm__
+ 
+__vÞ©že__
+
+
+1352 : "ô" (
+__»s
+), "=&a" (
+__d0
+)
+
+1353 : "0" (
+__s
+), "1" (
+__c
+),
+
+1354 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1356  
+__»s
+;
+
+1357 
+	}
+}
+
+1359 
+__STRING_INLINE
+ *
+__¡rchºul_g
+ (cÚ¡ *
+__s
+, 
+__c
+);
+
+1361 
+__STRING_INLINE
+ *
+
+1362 
+	$__¡rchºul_g
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+1364 
+__d0
+;
+
+1365 *
+__»s
+;
+
+1366 
+__asm__
+ 
+__vÞ©že__
+
+
+1377 : "ô" (
+__»s
+), "=&a" (
+__d0
+)
+
+1378 : "0" (
+__s
+), "1" (
+__c
+),
+
+1379 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1381  
+__»s
+;
+
+1382 
+	}
+}
+
+1383 #ifdeà
+__USE_GNU
+
+
+1384 
+	#¡rchºul
+(
+s
+, 
+c
+è
+	`__¡rchºul
+ ((s), (c))
+
+	)
+
+1388 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN_EXTENDED
+
+
+1390 
+	#_HAVE_STRING_ARCH_šdex
+ 1
+
+	)
+
+1391 
+	#šdex
+(
+s
+, 
+c
+) \
+
+1392 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+c
+) \
+
+1393 ? 
+	`__¡rchr_c
+ ((
+s
+), ((
+c
+) & 0xff) << 8) \
+
+1394 : 
+	`__¡rchr_g
+ ((
+s
+), (
+c
+))))
+
+	)
+
+1399 
+	#_HAVE_STRING_ARCH_¡¼chr
+ 1
+
+	)
+
+1400 
+	#¡¼chr
+(
+s
+, 
+c
+) \
+
+1401 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+c
+) \
+
+1402 ? 
+	`__¡¼chr_c
+ ((
+s
+), ((
+c
+) & 0xff) << 8) \
+
+1403 : 
+	`__¡¼chr_g
+ ((
+s
+), (
+c
+))))
+
+	)
+
+1405 #ifdeà
+__i686__
+
+
+1406 
+__STRING_INLINE
+ *
+__¡¼chr_c
+ (cÚ¡ *
+__s
+, 
+__c
+);
+
+1408 
+__STRING_INLINE
+ *
+
+1409 
+	$__¡¼chr_c
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+1411 
+__d0
+, 
+__d1
+;
+
+1412 *
+__»s
+;
+
+1413 
+__asm__
+ 
+__vÞ©že__
+
+
+1421 : "=d" (
+__»s
+), "=&S" (
+__d0
+), "=&a" (
+__d1
+)
+
+1422 : "0" (1), "1" (
+__s
+), "2" (
+__c
+),
+
+1423 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1425  
+__»s
+ - 1;
+
+1426 
+	}
+}
+
+1428 
+__STRING_INLINE
+ *
+__¡¼chr_g
+ (cÚ¡ *
+__s
+, 
+__c
+);
+
+1430 
+__STRING_INLINE
+ *
+
+1431 
+	$__¡¼chr_g
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+1433 
+__d0
+, 
+__d1
+;
+
+1434 *
+__»s
+;
+
+1435 
+__asm__
+ 
+__vÞ©že__
+
+
+1444 : "=d" (
+__»s
+), "=&S" (
+__d0
+), "=&a" (
+__d1
+)
+
+1445 : "0" (1), "1" (
+__s
+), "2" (
+__c
+),
+
+1446 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1448  
+__»s
+ - 1;
+
+1449 
+	}
+}
+
+1451 
+__STRING_INLINE
+ *
+__¡¼chr_c
+ (cÚ¡ *
+__s
+, 
+__c
+);
+
+1453 
+__STRING_INLINE
+ *
+
+1454 
+	$__¡¼chr_c
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+1456 
+__d0
+, 
+__d1
+;
+
+1457 *
+__»s
+;
+
+1458 
+__asm__
+ 
+__vÞ©že__
+
+
+1468 : "=d" (
+__»s
+), "=&S" (
+__d0
+), "=&a" (
+__d1
+)
+
+1469 : "0" (0), "1" (
+__s
+), "2" (
+__c
+),
+
+1470 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1472  
+__»s
+;
+
+1473 
+	}
+}
+
+1475 
+__STRING_INLINE
+ *
+__¡¼chr_g
+ (cÚ¡ *
+__s
+, 
+__c
+);
+
+1477 
+__STRING_INLINE
+ *
+
+1478 
+	$__¡¼chr_g
+ (cÚ¡ *
+__s
+, 
+__c
+)
+
+1480 
+__d0
+, 
+__d1
+;
+
+1481 *
+__»s
+;
+
+1482 
+__asm__
+ 
+__vÞ©že__
+
+
+1493 : "ô" (
+__»s
+), "=&S" (
+__d0
+), "=&a" (
+__d1
+)
+
+1494 : "0" (0), "1" (
+__s
+), "2" (
+__c
+),
+
+1495 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1497  
+__»s
+;
+
+1498 
+	}
+}
+
+1502 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN_EXTENDED
+
+
+1504 
+	#_HAVE_STRING_ARCH_ršdex
+ 1
+
+	)
+
+1505 
+	#ršdex
+(
+s
+, 
+c
+) \
+
+1506 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+c
+) \
+
+1507 ? 
+	`__¡¼chr_c
+ ((
+s
+), ((
+c
+) & 0xff) << 8) \
+
+1508 : 
+	`__¡¼chr_g
+ ((
+s
+), (
+c
+))))
+
+	)
+
+1514 
+	#_HAVE_STRING_ARCH_¡rc¥n
+ 1
+
+	)
+
+1515 
+	#¡rc¥n
+(
+s
+, 
+»jeù
+) \
+
+1516 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+»jeù
+) &&  ((reject)[0]) == 1 \
+
+1517 ? ((
+»jeù
+)[0] == '\0' \
+
+1518 ? 
+	`¡¾’
+ (
+s
+) \
+
+1519 : ((
+»jeù
+)[1] == '\0' \
+
+1520 ? 
+	`__¡rc¥n_c1
+ ((
+s
+), (((
+»jeù
+)[0] << 8) & 0xff00)) \
+
+1521 : 
+	`__¡rc¥n_cg
+ ((
+s
+), (
+»jeù
+), 
+	`¡¾’
+ (reject)))) \
+
+1522 : 
+	`__¡rc¥n_g
+ ((
+s
+), (
+»jeù
+))))
+
+	)
+
+1524 
+__STRING_INLINE
+ 
+size_t
+ 
+__¡rc¥n_c1
+ (cÚ¡ *
+__s
+, 
+__»jeù
+);
+
+1526 #iâdeà
+_FORCE_INLINES
+
+
+1527 
+__STRING_INLINE
+ 
+size_t
+
+
+1528 
+	$__¡rc¥n_c1
+ (cÚ¡ *
+__s
+, 
+__»jeù
+)
+
+1530 
+__d0
+;
+
+1531 *
+__»s
+;
+
+1532 
+__asm__
+ 
+__vÞ©že__
+
+
+1541 : "ô" (
+__»s
+), "=&a" (
+__d0
+)
+
+1542 : "0" (
+__s
+), "1" (
+__»jeù
+),
+
+1543 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1545  (
+__»s
+ - 1è- 
+__s
+;
+
+1546 
+	}
+}
+
+1549 
+__STRING_INLINE
+ 
+size_t
+ 
+__¡rc¥n_cg
+ (cÚ¡ *
+__s
+, cÚ¡ 
+__»jeù
+[],
+
+1550 
+size_t
+ 
+__»jeù_Ën
+);
+
+1552 
+__STRING_INLINE
+ 
+size_t
+
+
+1553 
+	$__¡rc¥n_cg
+ (cÚ¡ *
+__s
+, cÚ¡ 
+__»jeù
+[], 
+size_t
+ 
+__»jeù_Ën
+)
+
+1555 
+__d0
+, 
+__d1
+, 
+__d2
+;
+
+1556 cÚ¡ *
+__»s
+;
+
+1557 
+__asm__
+ 
+__vÞ©že__
+
+
+1568 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+)
+
+1569 : "0" (
+__s
+), "d" (
+__»jeù
+), "g" (
+__»jeù_Ën
+)
+
+1571  (
+__»s
+ - 1è- 
+__s
+;
+
+1572 
+	}
+}
+
+1574 
+__STRING_INLINE
+ 
+size_t
+ 
+__¡rc¥n_g
+ (cÚ¡ *
+__s
+, cÚ¡ *
+__»jeù
+);
+
+1575 #ifdeà
+__PIC__
+
+
+1577 
+__STRING_INLINE
+ 
+size_t
+
+
+1578 
+	$__¡rc¥n_g
+ (cÚ¡ *
+__s
+, cÚ¡ *
+__»jeù
+)
+
+1580 
+__d0
+, 
+__d1
+, 
+__d2
+;
+
+1581 cÚ¡ *
+__»s
+;
+
+1582 
+__asm__
+ 
+__vÞ©že__
+
+
+1599 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+)
+
+1600 : "r" (
+__»jeù
+), "0" (
+__s
+), "1" (0), "2" (0xffffffff)
+
+1602  (
+__»s
+ - 1è- 
+__s
+;
+
+1603 
+	}
+}
+
+1605 
+__STRING_INLINE
+ 
+size_t
+
+
+1606 
+	$__¡rc¥n_g
+ (cÚ¡ *
+__s
+, cÚ¡ *
+__»jeù
+)
+
+1608 
+__d0
+, 
+__d1
+, 
+__d2
+, 
+__d3
+;
+
+1609 cÚ¡ *
+__»s
+;
+
+1610 
+__asm__
+ 
+__vÞ©že__
+
+
+1624 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+), "=&d" (
+__d3
+)
+
+1625 : "0" (
+__s
+), "1" (0), "2" (0xffffffff), "3" (
+__»jeù
+), "b" (__reject)
+
+1628  (
+__»s
+ - 1è- 
+__s
+;
+
+1629 
+	}
+}
+
+1635 
+	#_HAVE_STRING_ARCH_¡r¥n
+ 1
+
+	)
+
+1636 
+	#¡r¥n
+(
+s
+, 
+acû±
+) \
+
+1637 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+acû±
+) &&  ((accept)[0]) == 1 \
+
+1638 ? ((
+acû±
+)[0] == '\0' \
+
+1639 ? ((è(
+s
+), 0) \
+
+1640 : ((
+acû±
+)[1] == '\0' \
+
+1641 ? 
+	`__¡r¥n_c1
+ ((
+s
+), (((
+acû±
+)[0] << 8 ) & 0xff00)) \
+
+1642 : 
+	`__¡r¥n_cg
+ ((
+s
+), (
+acû±
+), 
+	`¡¾’
+ (accept)))) \
+
+1643 : 
+	`__¡r¥n_g
+ ((
+s
+), (
+acû±
+))))
+
+	)
+
+1645 #iâdeà
+_FORCE_INLINES
+
+
+1646 
+__STRING_INLINE
+ 
+size_t
+ 
+__¡r¥n_c1
+ (cÚ¡ *
+__s
+, 
+__acû±
+);
+
+1648 
+__STRING_INLINE
+ 
+size_t
+
+
+1649 
+	$__¡r¥n_c1
+ (cÚ¡ *
+__s
+, 
+__acû±
+)
+
+1651 
+__d0
+;
+
+1652 *
+__»s
+;
+
+1654 
+__asm__
+ 
+__vÞ©že__
+
+
+1660 : "ô" (
+__»s
+), "=&q" (
+__d0
+)
+
+1661 : "0" (
+__s
+), "1" (
+__acû±
+),
+
+1662 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1664  (
+__»s
+ - 1è- 
+__s
+;
+
+1665 
+	}
+}
+
+1668 
+__STRING_INLINE
+ 
+size_t
+ 
+__¡r¥n_cg
+ (cÚ¡ *
+__s
+, cÚ¡ 
+__acû±
+[],
+
+1669 
+size_t
+ 
+__acû±_Ën
+);
+
+1671 
+__STRING_INLINE
+ 
+size_t
+
+
+1672 
+	$__¡r¥n_cg
+ (cÚ¡ *
+__s
+, cÚ¡ 
+__acû±
+[], 
+size_t
+ 
+__acû±_Ën
+)
+
+1674 
+__d0
+, 
+__d1
+, 
+__d2
+;
+
+1675 cÚ¡ *
+__»s
+;
+
+1676 
+__asm__
+ 
+__vÞ©že__
+
+
+1687 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+)
+
+1688 : "0" (
+__s
+), "g" (
+__acû±
+), "g" (
+__acû±_Ën
+),
+
+1691 "m" ( *(¡ruù { 
+__x
+[0xfffffff]; } *)
+__s
+),
+
+1692 "m" ( *(¡ruù { 
+__ex‹nsiÚ__
+ 
+__x
+[
+__acû±_Ën
+]; } *)
+__acû±
+)
+
+1694  (
+__»s
+ - 1è- 
+__s
+;
+
+1695 
+	}
+}
+
+1697 
+__STRING_INLINE
+ 
+size_t
+ 
+__¡r¥n_g
+ (cÚ¡ *
+__s
+, cÚ¡ *
+__acû±
+);
+
+1698 #ifdeà
+__PIC__
+
+
+1700 
+__STRING_INLINE
+ 
+size_t
+
+
+1701 
+	$__¡r¥n_g
+ (cÚ¡ *
+__s
+, cÚ¡ *
+__acû±
+)
+
+1703 
+__d0
+, 
+__d1
+, 
+__d2
+;
+
+1704 cÚ¡ *
+__»s
+;
+
+1705 
+__asm__
+ 
+__vÞ©že__
+
+
+1721 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+)
+
+1722 : "d" (
+__acû±
+), "0" (
+__s
+), "1" (0), "2" (0xffffffff), "3" (__accept)
+
+1724  (
+__»s
+ - 1è- 
+__s
+;
+
+1725 
+	}
+}
+
+1727 
+__STRING_INLINE
+ 
+size_t
+
+
+1728 
+	$__¡r¥n_g
+ (cÚ¡ *
+__s
+, cÚ¡ *
+__acû±
+)
+
+1730 
+__d0
+, 
+__d1
+, 
+__d2
+, 
+__d3
+;
+
+1731 cÚ¡ *
+__»s
+;
+
+1732 
+__asm__
+ 
+__vÞ©že__
+
+
+1746 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+), "=&d" (
+__d3
+)
+
+1747 : "0" (
+__s
+), "1" (0), "2" (0xffffffff), "3" (
+__acû±
+), "b" (__accept)
+
+1749  (
+__»s
+ - 1è- 
+__s
+;
+
+1750 
+	}
+}
+
+1755 
+	#_HAVE_STRING_ARCH_¡½brk
+ 1
+
+	)
+
+1756 
+	#¡½brk
+(
+s
+, 
+acû±
+) \
+
+1757 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+acû±
+) &&  ((accept)[0]) == 1 \
+
+1758 ? ((
+acû±
+)[0] == '\0' \
+
+1759 ? ((è(
+s
+), (*) 0) \
+
+1760 : ((
+acû±
+)[1] == '\0' \
+
+1761 ? 
+	`¡rchr
+ ((
+s
+), (
+acû±
+)[0]) \
+
+1762 : 
+	`__¡½brk_cg
+ ((
+s
+), (
+acû±
+), 
+	`¡¾’
+ (accept)))) \
+
+1763 : 
+	`__¡½brk_g
+ ((
+s
+), (
+acû±
+))))
+
+	)
+
+1765 
+__STRING_INLINE
+ *
+__¡½brk_cg
+ (cÚ¡ *
+__s
+, cÚ¡ 
+__acû±
+[],
+
+1766 
+size_t
+ 
+__acû±_Ën
+);
+
+1768 
+__STRING_INLINE
+ *
+
+1769 
+	$__¡½brk_cg
+ (cÚ¡ *
+__s
+, cÚ¡ 
+__acû±
+[], 
+size_t
+ 
+__acû±_Ën
+)
+
+1771 
+__d0
+, 
+__d1
+, 
+__d2
+;
+
+1772 *
+__»s
+;
+
+1773 
+__asm__
+ 
+__vÞ©že__
+
+
+1788 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+)
+
+1789 : "0" (
+__s
+), "d" (
+__acû±
+), "g" (
+__acû±_Ën
+)
+
+1791  
+__»s
+;
+
+1792 
+	}
+}
+
+1794 
+__STRING_INLINE
+ *
+__¡½brk_g
+ (cÚ¡ *
+__s
+, cÚ¡ *
+__acû±
+);
+
+1795 #ifdeà
+__PIC__
+
+
+1797 
+__STRING_INLINE
+ *
+
+1798 
+	$__¡½brk_g
+ (cÚ¡ *
+__s
+, cÚ¡ *
+__acû±
+)
+
+1800 
+__d0
+, 
+__d1
+, 
+__d2
+;
+
+1801 *
+__»s
+;
+
+1802 
+__asm__
+ 
+__vÞ©že__
+
+
+1823 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+)
+
+1824 : "d" (
+__acû±
+), "0" (
+__s
+), "1" (0), "2" (0xffffffff)
+
+1826  
+__»s
+;
+
+1827 
+	}
+}
+
+1829 
+__STRING_INLINE
+ *
+
+1830 
+	$__¡½brk_g
+ (cÚ¡ *
+__s
+, cÚ¡ *
+__acû±
+)
+
+1832 
+__d0
+, 
+__d1
+, 
+__d2
+, 
+__d3
+;
+
+1833 *
+__»s
+;
+
+1834 
+__asm__
+ 
+__vÞ©že__
+
+
+1853 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&d" (
+__d2
+), "=&D" (
+__d3
+)
+
+1854 : "0" (
+__s
+), "1" (0), "2" (0xffffffff), "b" (
+__acû±
+)
+
+1856  
+__»s
+;
+
+1857 
+	}
+}
+
+1862 
+	#_HAVE_STRING_ARCH_¡r¡r
+ 1
+
+	)
+
+1863 
+	#¡r¡r
+(
+hay¡ack
+, 
+ÃedË
+) \
+
+1864 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+ÃedË
+) &&  ((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 
+	`¡¾’
+ (
+ÃedË
+)))) \
+
+1871 : 
+	`__¡r¡r_g
+ ((
+hay¡ack
+), (
+ÃedË
+))))
+
+	)
+
+1875 
+__STRING_INLINE
+ *
+__¡r¡r_cg
+ (cÚ¡ *
+__hay¡ack
+,
+
+1876 cÚ¡ 
+__ÃedË
+[],
+
+1877 
+size_t
+ 
+__ÃedË_Ën
+);
+
+1879 
+__STRING_INLINE
+ *
+
+1880 
+	$__¡r¡r_cg
+ (cÚ¡ *
+__hay¡ack
+, cÚ¡ 
+__ÃedË
+[],
+
+1881 
+size_t
+ 
+__ÃedË_Ën
+)
+
+1883 
+__d0
+, 
+__d1
+, 
+__d2
+;
+
+1884 *
+__»s
+;
+
+1885 
+__asm__
+ 
+__vÞ©že__
+
+
+1898 : "=&a" (
+__»s
+), "=&S" (
+__d0
+), "=&D" (
+__d1
+), "=&c" (
+__d2
+)
+
+1899 : "g" (
+__ÃedË_Ën
+), "1" (
+__hay¡ack
+), "d" (
+__ÃedË
+)
+
+1901  
+__»s
+;
+
+1902 
+	}
+}
+
+1904 
+__STRING_INLINE
+ *
+__¡r¡r_g
+ (cÚ¡ *
+__hay¡ack
+,
+
+1905 cÚ¡ *
+__ÃedË
+);
+
+1906 #ifdeà
+__PIC__
+
+
+1908 
+__STRING_INLINE
+ *
+
+1909 
+	$__¡r¡r_g
+ (cÚ¡ *
+__hay¡ack
+, cÚ¡ *
+__ÃedË
+)
+
+1911 
+__d0
+, 
+__d1
+, 
+__d2
+;
+
+1912 *
+__»s
+;
+
+1913 
+__asm__
+ 
+__vÞ©že__
+
+
+1932 : "=&a" (
+__»s
+), "=&c" (
+__d0
+), "=&S" (
+__d1
+), "=&D" (
+__d2
+)
+
+1933 : "0" (0), "1" (0xffffffff), "2" (
+__hay¡ack
+), "3" (
+__ÃedË
+),
+
+1934 "d" (
+__ÃedË
+)
+
+1936  
+__»s
+;
+
+1937 
+	}
+}
+
+1939 
+__STRING_INLINE
+ *
+
+1940 
+	$__¡r¡r_g
+ (cÚ¡ *
+__hay¡ack
+, cÚ¡ *
+__ÃedË
+)
+
+1942 
+__d0
+, 
+__d1
+, 
+__d2
+, 
+__d3
+;
+
+1943 *
+__»s
+;
+
+1944 
+__asm__
+ 
+__vÞ©že__
+
+
+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  
+__»s
+;
+
+1966 
+	}
+}
+
+1972 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN_EXTENDED
+
+
+1973 #ifdeà
+__i686__
+
+
+1974 
+	#_HAVE_STRING_ARCH_ffs
+ 1
+
+	)
+
+1975 
+	#ffs
+(
+wÜd
+è(
+	`__bužtš_cÚ¡ªt_p
+ (word) \
+
+1976 ? 
+	`__bužtš_ffs
+ (
+wÜd
+) \
+
+1977 : ({ 
+__út
+, 
+__tmp
+; \
+
+1978 
+__asm__
+ 
+__vÞ©že__
+ \
+
+1981 : "=&r" (
+__út
+), "ô" (
+__tmp
+) \
+
+1982 : "rm" (
+wÜd
+), "1" (-1)); \
+
+1983 
+__út
+ + 1; }))
+
+	)
+
+1985 #iâdeà
+ff¦
+
+
+1986 
+	#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 
+	#__STRING_INLINE
+ 
+šlše
+
+
+	)
+
+45 
+	#__STRING_INLINE
+ 
+__ex‹º_šlše
+
+
+	)
+
+49 #ià
+_STRING_INLINE_uÇligÃd
+
+
+51 
+	~<’dŸn.h
+>
+
+52 
+	~<b™s/ty³s.h
+>
+
+54 #ià
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+55 
+	#__STRING2_SMALL_GET16
+(
+¤c
+, 
+idx
+) \
+
+56 (((cÚ¡ *è(cÚ¡ *è(
+¤c
+))[
+idx
+ + 1] << 8 \
+
+57 | ((cÚ¡ *è(cÚ¡ *è(
+¤c
+))[
+idx
+])
+
+	)
+
+58 
+	#__STRING2_SMALL_GET32
+(
+¤c
+, 
+idx
+) \
+
+59 (((((cÚ¡ *è(cÚ¡ *è(
+¤c
+))[
+idx
+ + 3] << 8 \
+
+60 | ((cÚ¡ *è(cÚ¡ *è(
+¤c
+))[
+idx
+ + 2]) << 8 \
+
+61 | ((cÚ¡ *è(cÚ¡ *è(
+¤c
+))[
+idx
+ + 1]) << 8 \
+
+62 | ((cÚ¡ *è(cÚ¡ *è(
+¤c
+))[
+idx
+])
+
+	)
+
+64 
+	#__STRING2_SMALL_GET16
+(
+¤c
+, 
+idx
+) \
+
+65 (((cÚ¡ *è(cÚ¡ *è(
+¤c
+))[
+idx
+] << 8 \
+
+66 | ((cÚ¡ *è(cÚ¡ *è(
+¤c
+))[
+idx
+ + 1])
+
+	)
+
+67 
+	#__STRING2_SMALL_GET32
+(
+¤c
+, 
+idx
+) \
+
+68 (((((cÚ¡ *è(cÚ¡ *è(
+¤c
+))[
+idx
+] << 8 \
+
+69 | ((cÚ¡ *è(cÚ¡ *è(
+¤c
+))[
+idx
+ + 1]) << 8 \
+
+70 | ((cÚ¡ *è(cÚ¡ *è(
+¤c
+))[
+idx
+ + 2]) << 8 \
+
+71 | ((cÚ¡ *è(cÚ¡ *è(
+¤c
+))[
+idx
+ + 3])
+
+	)
+
+76 
+	#__STRING2_COPY_TYPE
+(
+N
+) \
+
+77 ¡ruù { 
+__¬r
+[
+N
+]; } \
+
+78 
+	t__©Œibu‹__
+ ((
+	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 
+	#__¡ršg2_1b±r_p
+(
+__x
+) \
+
+93 ((
+size_t
+)(cÚ¡ *)((
+__x
+è+ 1è- (size_t)(cÚ¡ *)(__xè=ð1)
+
+	)
+
+96 #ià!
+defšed
+ 
+_HAVE_STRING_ARCH_mem£t
+
+
+97 #ià!
+__GNUC_PREREQ
+ (3, 0)
+
+98 #ià
+_STRING_INLINE_uÇligÃd
+
+
+99 
+	#mem£t
+(
+s
+, 
+c
+, 
+n
+) \
+
+100 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+n
+) && (n) <= 16 \
+
+101 ? ((
+n
+) == 1 \
+
+102 ? 
+	`__mem£t_1
+ (
+s
+, 
+c
+) \
+
+103 : 
+	`__mem£t_gc
+ (
+s
+, 
+c
+, 
+n
+)) \
+
+104 : (
+	`__bužtš_cÚ¡ªt_p
+ (
+c
+) && (c) == '\0' \
+
+105 ? ({ *
+__s
+ = (
+s
+); 
+	`__bz”o
+ (__s, 
+n
+); __s; }) \
+
+106 : 
+	`mem£t
+ (
+s
+, 
+c
+, 
+n
+))))
+
+	)
+
+108 
+	#__mem£t_1
+(
+s
+, 
+c
+è({ *
+__s
+ = (s); \
+
+109 *((
+__ušt8_t
+ *è
+__s
+èð(__ušt8_tè
+c
+; __s; })
+
+	)
+
+111 
+	#__mem£t_gc
+(
+s
+, 
+c
+, 
+n
+) \
+
+112 ({ *
+__s
+ = (
+s
+); \
+
+114 
+__ui
+; \
+
+115 
+__usi
+; \
+
+116 
+__uc
+; \
+
+117 } *
+__u
+ = 
+__s
+; \
+
+118 
+__ušt8_t
+ 
+__c
+ = (__ušt8_tè(
+c
+); \
+
+121 (è(
+n
+)) \
+
+124 
+__u
+->
+__ui
+ = 
+__c
+ * 0x01010101; \
+
+125 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+127 
+__u
+->
+__ui
+ = 
+__c
+ * 0x01010101; \
+
+128 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+130 
+__u
+->
+__ui
+ = 
+__c
+ * 0x01010101; \
+
+131 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+133 
+__u
+->
+__usi
+ = (è
+__c
+ * 0x0101; \
+
+134 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 2); \
+
+135 
+__u
+->
+__uc
+ = (è
+__c
+; \
+
+139 
+__u
+->
+__ui
+ = 
+__c
+ * 0x01010101; \
+
+140 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+142 
+__u
+->
+__ui
+ = 
+__c
+ * 0x01010101; \
+
+143 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+145 
+__u
+->
+__ui
+ = 
+__c
+ * 0x01010101; \
+
+146 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+148 
+__u
+->
+__usi
+ = (è
+__c
+ * 0x0101; \
+
+152 
+__u
+->
+__ui
+ = 
+__c
+ * 0x01010101; \
+
+153 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+155 
+__u
+->
+__ui
+ = 
+__c
+ * 0x01010101; \
+
+156 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+158 
+__u
+->
+__ui
+ = 
+__c
+ * 0x01010101; \
+
+159 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+161 
+__u
+->
+__uc
+ = (è
+__c
+; \
+
+165 
+__u
+->
+__ui
+ = 
+__c
+ * 0x01010101; \
+
+166 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+168 
+__u
+->
+__ui
+ = 
+__c
+ * 0x01010101; \
+
+169 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+171 
+__u
+->
+__ui
+ = 
+__c
+ * 0x01010101; \
+
+172 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4); \
+
+174 
+__u
+->
+__ui
+ = 
+__c
+ * 0x01010101; \
+
+179 
+__s
+; })
+
+	)
+
+181 
+	#mem£t
+(
+s
+, 
+c
+, 
+n
+) \
+
+182 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+c
+) && (c) == '\0' \
+
+183 ? ({ *
+__s
+ = (
+s
+); 
+	`__bz”o
+ (__s, 
+n
+); __s; }) \
+
+184 : 
+	`mem£t
+ (
+s
+, 
+c
+, 
+n
+)))
+
+	)
+
+193 #ià
+__GNUC_PREREQ
+ (2, 91)
+
+194 
+	#__bz”o
+(
+s
+, 
+n
+è
+	`__bužtš_mem£t
+ (s, '\0',‚)
+
+	)
+
+202 #ifdeà
+__USE_GNU
+
+
+203 #ià!
+defšed
+ 
+_HAVE_STRING_ARCH_mempýy
+ || defšed 
+_FORCE_INLINES
+
+
+204 #iâdeà
+_HAVE_STRING_ARCH_mempýy
+
+
+205 #ià
+__GNUC_PREREQ
+ (3, 4)
+
+206 
+	#__mempýy
+(
+de¡
+, 
+¤c
+, 
+n
+è
+	`__bužtš_mempýy
+ (de¡, src,‚)
+
+	)
+
+207 #–ià
+__GNUC_PREREQ
+ (3, 0)
+
+208 
+	#__mempýy
+(
+de¡
+, 
+¤c
+, 
+n
+) \
+
+209 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+¤c
+è&& __bužtš_cÚ¡ªt_°(
+n
+) \
+
+210 && 
+	`__¡ršg2_1b±r_p
+ (
+¤c
+è&& 
+n
+ <= 8 \
+
+211 ? 
+	`__bužtš_memýy
+ (
+de¡
+, 
+¤c
+, 
+n
+) + (n) \
+
+212 : 
+	`__mempýy
+ (
+de¡
+, 
+¤c
+, 
+n
+)))
+
+	)
+
+214 
+	#__mempýy
+(
+de¡
+, 
+¤c
+, 
+n
+) \
+
+215 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+¤c
+è&& __bužtš_cÚ¡ªt_°(
+n
+) \
+
+216 && 
+	`__¡ršg2_1b±r_p
+ (
+¤c
+è&& 
+n
+ <= 8 \
+
+217 ? 
+	`__mempýy_sm®l
+ (
+de¡
+, 
+	`__mempýy_¬gs
+ (
+¤c
+), 
+n
+) \
+
+218 : 
+	`__mempýy
+ (
+de¡
+, 
+¤c
+, 
+n
+)))
+
+	)
+
+222 
+	#mempýy
+(
+de¡
+, 
+¤c
+, 
+n
+è
+	`__mempýy
+ (de¡, src,‚)
+
+	)
+
+225 #ià!
+__GNUC_PREREQ
+ (3, 0è|| 
+defšed
+ 
+_FORCE_INLINES
+
+
+226 #ià
+_STRING_INLINE_uÇligÃd
+
+
+227 #iâdeà
+_FORCE_INLINES
+
+
+228 
+	#__mempýy_¬gs
+(
+¤c
+) \
+
+229 ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[2], \
+
+230 ((cÚ¡ *è(
+¤c
+))[4], ((const *) (src))[6], \
+
+231 
+__ex‹nsiÚ__
+ 
+	`__STRING2_SMALL_GET16
+ (
+¤c
+, 0), \
+
+232 
+__ex‹nsiÚ__
+ 
+	`__STRING2_SMALL_GET16
+ (
+¤c
+, 4), \
+
+233 
+__ex‹nsiÚ__
+ 
+	`__STRING2_SMALL_GET32
+ (
+¤c
+, 0), \
+
+234 
+__ex‹nsiÚ__
+ 
+	`__STRING2_SMALL_GET32
+ (
+¤c
+, 4)
+
+	)
+
+236 
+__STRING_INLINE
+ *
+__mempýy_sm®l
+ (*, , , , ,
+
+237 
+__ušt16_t
+, __ušt16_t, 
+__ušt32_t
+,
+
+238 
+__ušt32_t
+, 
+size_t
+);
+
+239 
+__STRING_INLINE
+ *
+
+240 
+	$__mempýy_sm®l
+ (*
+__de¡1
+,
+
+241 
+__¤c0_1
+, 
+__¤c2_1
+, 
+__¤c4_1
+, 
+__¤c6_1
+,
+
+242 
+__ušt16_t
+ 
+__¤c0_2
+, __ušt16_ˆ
+__¤c4_2
+,
+
+243 
+__ušt32_t
+ 
+__¤c0_4
+, __ušt32_ˆ
+__¤c4_4
+,
+
+244 
+size_t
+ 
+__¤þ’
+)
+
+247 
+__ušt32_t
+ 
+__ui
+;
+
+248 
+__ušt16_t
+ 
+__usi
+;
+
+249 
+__uc
+;
+
+250 
+__c
+;
+
+251 } *
+__u
+ = 
+__de¡1
+;
+
+252 (è
+__¤þ’
+)
+
+255 
+__u
+->
+__c
+ = 
+__¤c0_1
+;
+
+256 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 1);
+
+259 
+__u
+->
+__usi
+ = 
+__¤c0_2
+;
+
+260 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 2);
+
+263 
+__u
+->
+__usi
+ = 
+__¤c0_2
+;
+
+264 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 2);
+
+265 
+__u
+->
+__c
+ = 
+__¤c2_1
+;
+
+266 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 1);
+
+269 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+270 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4);
+
+273 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+274 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4);
+
+275 
+__u
+->
+__c
+ = 
+__¤c4_1
+;
+
+276 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 1);
+
+279 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+280 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4);
+
+281 
+__u
+->
+__usi
+ = 
+__¤c4_2
+;
+
+282 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 2);
+
+285 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+286 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4);
+
+287 
+__u
+->
+__usi
+ = 
+__¤c4_2
+;
+
+288 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 2);
+
+289 
+__u
+->
+__c
+ = 
+__¤c6_1
+;
+
+290 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 1);
+
+293 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+294 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4);
+
+295 
+__u
+->
+__ui
+ = 
+__¤c4_4
+;
+
+296 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4);
+
+299  (*è
+__u
+;
+
+300 
+	}
+}
+
+302 #iâdeà
+_FORCE_INLINES
+
+
+303 
+	#__mempýy_¬gs
+(
+¤c
+) \
+
+304 ((cÚ¡ *è(
+¤c
+))[0], \
+
+305 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR2
+) \
+
+306 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1] } }), \
+
+307 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR3
+) \
+
+308 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+309 ((cÚ¡ *è(
+¤c
+))[2] } }), \
+
+310 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR4
+) \
+
+311 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+312 ((cÚ¡ *è(
+¤c
+))[2], ((const *) (src))[3] } }), \
+
+313 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR5
+) \
+
+314 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+315 ((cÚ¡ *è(
+¤c
+))[2], ((const *) (src))[3], \
+
+316 ((cÚ¡ *è(
+¤c
+))[4] } }), \
+
+317 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR6
+) \
+
+318 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+319 ((cÚ¡ *è(
+¤c
+))[2], ((const *) (src))[3], \
+
+320 ((cÚ¡ *è(
+¤c
+))[4], ((const *) (src))[5] } }), \
+
+321 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR7
+) \
+
+322 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+323 ((cÚ¡ *è(
+¤c
+))[2], ((const *) (src))[3], \
+
+324 ((cÚ¡ *è(
+¤c
+))[4], ((const *) (src))[5], \
+
+325 ((cÚ¡ *è(
+¤c
+))[6] } }), \
+
+326 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR8
+) \
+
+327 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+328 ((cÚ¡ *è(
+¤c
+))[2], ((const *) (src))[3], \
+
+329 ((cÚ¡ *è(
+¤c
+))[4], ((const *) (src))[5], \
+
+330 ((cÚ¡ *è(
+¤c
+))[6], ((cÚ¡ *è(¤c))[7] } })
+
+	)
+
+332 
+__STRING_INLINE
+ *
+__mempýy_sm®l
+ (*, , 
+__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
+ *
+
+340 
+	$__mempýy_sm®l
+ (*
+__de¡
+, 
+__¤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
+ 
+__¤þ’
+)
+
+347 
+__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 (è
+__¤þ’
+)
+
+359 
+__u
+->
+__c
+ = 
+__¤c1
+;
+
+362 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ2
+ = 
+__¤c2
+;
+
+365 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ3
+ = 
+__¤c3
+;
+
+368 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ4
+ = 
+__¤c4
+;
+
+371 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ5
+ = 
+__¤c5
+;
+
+374 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ6
+ = 
+__¤c6
+;
+
+377 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ7
+ = 
+__¤c7
+;
+
+380 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ8
+ = 
+__¤c8
+;
+
+383  
+	`__ex‹nsiÚ__
+ ((*è
+__u
+ + 
+__¤þ’
+);
+
+384 
+	}
+}
+
+392 #iâdeà
+_HAVE_STRING_ARCH_¡rchr
+
+
+393 
*
+__¿wmemchr
+ (cÚ¡ *
+__s
+, 
+__c
+);
+
+394 #ià
+__GNUC_PREREQ
+ (3, 2)
+
+395 
+	#¡rchr
+(
+s
+, 
+c
+) \
+
+396 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+c
+è&& !__bužtš_cÚ¡ªt_°(
+s
+) \
+
+397 && (
+c
+) == '\0' \
+
+398 ? (*è
+	`__¿wmemchr
+ (
+s
+, 
+c
+) \
+
+399 : 
+	`__bužtš_¡rchr
+ (
+s
+, 
+c
+)))
+
+	)
+
+401 
+	#¡rchr
+(
+s
+, 
+c
+) \
+
+402 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+c
+) && (c) == '\0' \
+
+403 ? (*è
+	`__¿wmemchr
+ (
+s
+, 
+c
+) \
+
+404 : 
+	`¡rchr
+ (
+s
+, 
+c
+)))
+
+	)
+
+410 #ià(!
+defšed
+ 
+_HAVE_STRING_ARCH_¡rýy
+ && !
+__GNUC_PREREQ
+ (3, 0)) \
+
+411 || 
+defšed
+ 
+	g_FORCE_INLINES
+
+
+412 #ià!
+defšed
+ 
+_HAVE_STRING_ARCH_¡rýy
+ && !
+__GNUC_PREREQ
+ (3, 0)
+
+413 
+	#¡rýy
+(
+de¡
+, 
+¤c
+) \
+
+414 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+¤c
+) \
+
+415 ? (
+	`__¡ršg2_1b±r_p
+ (
+¤c
+è&& 
+	`¡¾’
+ (src) + 1 <= 8 \
+
+416 ? 
+	`__¡rýy_sm®l
+ (
+de¡
+, 
+	`__¡rýy_¬gs
+ (
+¤c
+), \
+
+417 
+	`¡¾’
+ (
+¤c
+) + 1) \
+
+418 : (*è
+	`memýy
+ (
+de¡
+, 
+¤c
+, 
+	`¡¾’
+ (src) + 1)) \
+
+419 : 
+	`¡rýy
+ (
+de¡
+, 
+¤c
+)))
+
+	)
+
+422 #ià
+_STRING_INLINE_uÇligÃd
+
+
+423 #iâdeà
+_FORCE_INLINES
+
+
+424 
+	#__¡rýy_¬gs
+(
+¤c
+) \
+
+425 
+__ex‹nsiÚ__
+ 
+	`__STRING2_SMALL_GET16
+ (
+¤c
+, 0), \
+
+426 
+__ex‹nsiÚ__
+ 
+	`__STRING2_SMALL_GET16
+ (
+¤c
+, 4), \
+
+427 
+__ex‹nsiÚ__
+ 
+	`__STRING2_SMALL_GET32
+ (
+¤c
+, 0), \
+
+428 
+__ex‹nsiÚ__
+ 
+	`__STRING2_SMALL_GET32
+ (
+¤c
+, 4)
+
+	)
+
+430 
+__STRING_INLINE
+ *
+__¡rýy_sm®l
+ (*, 
+__ušt16_t
+, __uint16_t,
+
+431 
+__ušt32_t
+, __ušt32_t, 
+size_t
+);
+
+432 
+__STRING_INLINE
+ *
+
+433 
+	$__¡rýy_sm®l
+ (*
+__de¡
+,
+
+434 
+__ušt16_t
+ 
+__¤c0_2
+, __ušt16_ˆ
+__¤c4_2
+,
+
+435 
+__ušt32_t
+ 
+__¤c0_4
+, __ušt32_ˆ
+__¤c4_4
+,
+
+436 
+size_t
+ 
+__¤þ’
+)
+
+439 
+__ušt32_t
+ 
+__ui
+;
+
+440 
+__ušt16_t
+ 
+__usi
+;
+
+441 
+__uc
+;
+
+442 } *
+__u
+ = (*è
+__de¡
+;
+
+443 (è
+__¤þ’
+)
+
+446 
+__u
+->
+__uc
+ = '\0';
+
+449 
+__u
+->
+__usi
+ = 
+__¤c0_2
+;
+
+452 
+__u
+->
+__usi
+ = 
+__¤c0_2
+;
+
+453 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 2);
+
+454 
+__u
+->
+__uc
+ = '\0';
+
+457 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+460 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+461 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4);
+
+462 
+__u
+->
+__uc
+ = '\0';
+
+465 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+466 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4);
+
+467 
+__u
+->
+__usi
+ = 
+__¤c4_2
+;
+
+470 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+471 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4);
+
+472 
+__u
+->
+__usi
+ = 
+__¤c4_2
+;
+
+473 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 2);
+
+474 
+__u
+->
+__uc
+ = '\0';
+
+477 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+478 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4);
+
+479 
+__u
+->
+__ui
+ = 
+__¤c4_4
+;
+
+482  
+__de¡
+;
+
+483 
+	}
+}
+
+485 #iâdeà
+_FORCE_INLINES
+
+
+486 
+	#__¡rýy_¬gs
+(
+¤c
+) \
+
+487 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR2
+) \
+
+488 { { ((cÚ¡ *è(
+¤c
+))[0], '\0' } }), \
+
+489 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR3
+) \
+
+490 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+492 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR4
+) \
+
+493 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+494 ((cÚ¡ *è(
+¤c
+))[2], '\0' } }), \
+
+495 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR5
+) \
+
+496 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+497 ((cÚ¡ *è(
+¤c
+))[2], ((const *) (src))[3], \
+
+499 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR6
+) \
+
+500 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+501 ((cÚ¡ *è(
+¤c
+))[2], ((const *) (src))[3], \
+
+502 ((cÚ¡ *è(
+¤c
+))[4], '\0' } }), \
+
+503 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR7
+) \
+
+504 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+505 ((cÚ¡ *è(
+¤c
+))[2], ((const *) (src))[3], \
+
+506 ((cÚ¡ *è(
+¤c
+))[4], ((const *) (src))[5], \
+
+508 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR8
+) \
+
+509 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+510 ((cÚ¡ *è(
+¤c
+))[2], ((const *) (src))[3], \
+
+511 ((cÚ¡ *è(
+¤c
+))[4], ((const *) (src))[5], \
+
+512 ((cÚ¡ *è(
+¤c
+))[6], '\0' } })
+
+	)
+
+514 
+__STRING_INLINE
+ *
+__¡rýy_sm®l
+ (*, 
+__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
+ *
+
+522 
+	$__¡rýy_sm®l
+ (*
+__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
+ 
+__¤þ’
+)
+
+529 
+__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
+ = (*è
+__de¡
+;
+
+538 (è
+__¤þ’
+)
+
+541 
+__u
+->
+__c
+ = '\0';
+
+544 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ2
+ = 
+__¤c2
+;
+
+547 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ3
+ = 
+__¤c3
+;
+
+550 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ4
+ = 
+__¤c4
+;
+
+553 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ5
+ = 
+__¤c5
+;
+
+556 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ6
+ = 
+__¤c6
+;
+
+559 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ7
+ = 
+__¤c7
+;
+
+562 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ8
+ = 
+__¤c8
+;
+
+565  
+__de¡
+;
+
+566 
+	}
+}
+
+572 #ifdeà
+__USE_GNU
+
+
+573 #ià!
+defšed
+ 
+_HAVE_STRING_ARCH_¡pýy
+ || defšed 
+_FORCE_INLINES
+
+
+574 #iâdeà
+_HAVE_STRING_ARCH_¡pýy
+
+
+575 #ià
+__GNUC_PREREQ
+ (3, 4)
+
+576 
+	#__¡pýy
+(
+de¡
+, 
+¤c
+è
+	`__bužtš_¡pýy
+ (de¡, src)
+
+	)
+
+577 #–ià
+__GNUC_PREREQ
+ (3, 0)
+
+578 
+	#__¡pýy
+(
+de¡
+, 
+¤c
+) \
+
+579 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+¤c
+) \
+
+580 ? (
+	`__¡ršg2_1b±r_p
+ (
+¤c
+è&& 
+	`¡¾’
+ (src) + 1 <= 8 \
+
+581 ? 
+	`__bužtš_¡rýy
+ (
+de¡
+, 
+¤c
+è+ 
+	`¡¾’
+ (src) \
+
+582 : ((*è(
+__mempýy
+è(
+de¡
+, 
+¤c
+, 
+	`¡¾’
+ (src) + 1) \
+
+584 : 
+	`__¡pýy
+ (
+de¡
+, 
+¤c
+)))
+
+	)
+
+586 
+	#__¡pýy
+(
+de¡
+, 
+¤c
+) \
+
+587 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+¤c
+) \
+
+588 ? (
+	`__¡ršg2_1b±r_p
+ (
+¤c
+è&& 
+	`¡¾’
+ (src) + 1 <= 8 \
+
+589 ? 
+	`__¡pýy_sm®l
+ (
+de¡
+, 
+	`__¡pýy_¬gs
+ (
+¤c
+), \
+
+590 
+	`¡¾’
+ (
+¤c
+) + 1) \
+
+591 : ((*è(
+__mempýy
+è(
+de¡
+, 
+¤c
+, 
+	`¡¾’
+ (src) + 1) \
+
+593 : 
+	`__¡pýy
+ (
+de¡
+, 
+¤c
+)))
+
+	)
+
+597 
+	#¡pýy
+(
+de¡
+, 
+¤c
+è
+	`__¡pýy
+ (de¡, src)
+
+	)
+
+600 #ià!
+__GNUC_PREREQ
+ (3, 0è|| 
+defšed
+ 
+_FORCE_INLINES
+
+
+601 #ià
+_STRING_INLINE_uÇligÃd
+
+
+602 #iâdeà
+_FORCE_INLINES
+
+
+603 
+	#__¡pýy_¬gs
+(
+¤c
+) \
+
+604 
+__ex‹nsiÚ__
+ 
+	`__STRING2_SMALL_GET16
+ (
+¤c
+, 0), \
+
+605 
+__ex‹nsiÚ__
+ 
+	`__STRING2_SMALL_GET16
+ (
+¤c
+, 4), \
+
+606 
+__ex‹nsiÚ__
+ 
+	`__STRING2_SMALL_GET32
+ (
+¤c
+, 0), \
+
+607 
+__ex‹nsiÚ__
+ 
+	`__STRING2_SMALL_GET32
+ (
+¤c
+, 4)
+
+	)
+
+609 
+__STRING_INLINE
+ *
+__¡pýy_sm®l
+ (*, 
+__ušt16_t
+, __uint16_t,
+
+610 
+__ušt32_t
+, __ušt32_t, 
+size_t
+);
+
+611 
+__STRING_INLINE
+ *
+
+612 
+	$__¡pýy_sm®l
+ (*
+__de¡
+,
+
+613 
+__ušt16_t
+ 
+__¤c0_2
+, __ušt16_ˆ
+__¤c4_2
+,
+
+614 
+__ušt32_t
+ 
+__¤c0_4
+, __ušt32_ˆ
+__¤c4_4
+,
+
+615 
+size_t
+ 
+__¤þ’
+)
+
+618 
+__ui
+;
+
+619 
+__usi
+;
+
+620 
+__uc
+;
+
+621 
+__c
+;
+
+622 } *
+__u
+ = (*è
+__de¡
+;
+
+623 (è
+__¤þ’
+)
+
+626 
+__u
+->
+__uc
+ = '\0';
+
+629 
+__u
+->
+__usi
+ = 
+__¤c0_2
+;
+
+630 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 1);
+
+633 
+__u
+->
+__usi
+ = 
+__¤c0_2
+;
+
+634 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 2);
+
+635 
+__u
+->
+__uc
+ = '\0';
+
+638 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+639 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 3);
+
+642 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+643 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4);
+
+644 
+__u
+->
+__uc
+ = '\0';
+
+647 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+648 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4);
+
+649 
+__u
+->
+__usi
+ = 
+__¤c4_2
+;
+
+650 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 1);
+
+653 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+654 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4);
+
+655 
+__u
+->
+__usi
+ = 
+__¤c4_2
+;
+
+656 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 2);
+
+657 
+__u
+->
+__uc
+ = '\0';
+
+660 
+__u
+->
+__ui
+ = 
+__¤c0_4
+;
+
+661 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 4);
+
+662 
+__u
+->
+__ui
+ = 
+__¤c4_4
+;
+
+663 
+__u
+ = 
+	`__ex‹nsiÚ__
+ ((*) __u + 3);
+
+666  &
+__u
+->
+__c
+;
+
+667 
+	}
+}
+
+669 #iâdeà
+_FORCE_INLINES
+
+
+670 
+	#__¡pýy_¬gs
+(
+¤c
+) \
+
+671 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR2
+) \
+
+672 { { ((cÚ¡ *è(
+¤c
+))[0], '\0' } }), \
+
+673 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR3
+) \
+
+674 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+676 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR4
+) \
+
+677 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+678 ((cÚ¡ *è(
+¤c
+))[2], '\0' } }), \
+
+679 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR5
+) \
+
+680 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+681 ((cÚ¡ *è(
+¤c
+))[2], ((const *) (src))[3], \
+
+683 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR6
+) \
+
+684 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+685 ((cÚ¡ *è(
+¤c
+))[2], ((const *) (src))[3], \
+
+686 ((cÚ¡ *è(
+¤c
+))[4], '\0' } }), \
+
+687 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR7
+) \
+
+688 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+689 ((cÚ¡ *è(
+¤c
+))[2], ((const *) (src))[3], \
+
+690 ((cÚ¡ *è(
+¤c
+))[4], ((const *) (src))[5], \
+
+692 
+	`__ex‹nsiÚ__
+ ((
+__STRING2_COPY_ARR8
+) \
+
+693 { { ((cÚ¡ *è(
+¤c
+))[0], ((const *) (src))[1], \
+
+694 ((cÚ¡ *è(
+¤c
+))[2], ((const *) (src))[3], \
+
+695 ((cÚ¡ *è(
+¤c
+))[4], ((const *) (src))[5], \
+
+696 ((cÚ¡ *è(
+¤c
+))[6], '\0' } })
+
+	)
+
+698 
+__STRING_INLINE
+ *
+__¡pýy_sm®l
+ (*, 
+__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
+ *
+
+706 
+	$__¡pýy_sm®l
+ (*
+__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
+ 
+__¤þ’
+)
+
+713 
+__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
+ = (*è
+__de¡
+;
+
+722 (è
+__¤þ’
+)
+
+725 
+__u
+->
+__c
+ = '\0';
+
+728 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ2
+ = 
+__¤c2
+;
+
+731 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ3
+ = 
+__¤c3
+;
+
+734 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ4
+ = 
+__¤c4
+;
+
+737 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ5
+ = 
+__¤c5
+;
+
+740 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ6
+ = 
+__¤c6
+;
+
+743 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ7
+ = 
+__¤c7
+;
+
+746 
+__ex‹nsiÚ__
+ 
+__u
+->
+__sÿ8
+ = 
+__¤c8
+;
+
+749  
+__de¡
+ + 
+__¤þ’
+ - 1;
+
+750 
+	}
+}
+
+758 #iâdeà
+_HAVE_STRING_ARCH_¡ºýy
+
+
+759 #ià
+__GNUC_PREREQ
+ (3, 2)
+
+760 
+	#¡ºýy
+(
+de¡
+, 
+¤c
+, 
+n
+è
+	`__bužtš_¡ºýy
+ (de¡, src,‚)
+
+	)
+
+762 
+	#¡ºýy
+(
+de¡
+, 
+¤c
+, 
+n
+) \
+
+763 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+¤c
+è&& __bužtš_cÚ¡ªt_°(
+n
+) \
+
+764 ? (
+	`¡¾’
+ (
+¤c
+è+ 1 >ð((
+size_t
+è(
+n
+)) \
+
+765 ? (*è
+	`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 
+	#¡ºÿt
+(
+de¡
+, 
+¤c
+, 
+n
+) \
+
+776 (
+	`__ex‹nsiÚ__
+ ({ *
+__de¡
+ = (
+de¡
+); \
+
+777 
+	`__bužtš_cÚ¡ªt_p
+ (
+¤c
+è&& __bužtš_cÚ¡ªt_°(
+n
+) \
+
+778 ? (
+	`¡¾’
+ (
+¤c
+è< ((
+size_t
+è(
+n
+)) \
+
+779 ? 
+	`¡rÿt
+ (
+__de¡
+, 
+¤c
+) \
+
+780 : (*((*è
+	`__mempýy
+ (
+	`¡rchr
+ (
+__de¡
+, '\0'), \
+
+781 
+¤c
+, 
+n
+)èð'\0', 
+__de¡
+)) \
+
+782 : 
+	`¡ºÿt
+ (
+de¡
+, 
+¤c
+, 
+n
+); }))
+
+	)
+
+783 #–ià
+__GNUC_PREREQ
+ (3, 2)
+
+784 
+	#¡ºÿt
+(
+de¡
+, 
+¤c
+, 
+n
+è
+	`__bužtš_¡ºÿt
+ (de¡, src,‚)
+
+	)
+
+786 
+	#¡ºÿt
+(
+de¡
+, 
+¤c
+, 
+n
+) \
+
+787 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+¤c
+è&& __bužtš_cÚ¡ªt_°(
+n
+) \
+
+788 ? (
+	`¡¾’
+ (
+¤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 
+	#¡rcmp
+(
+s1
+, 
+s2
+) \
+
+800 
+__ex‹nsiÚ__
+ \
+
+801 ({ 
+size_t
+ 
+__s1_Ën
+, 
+__s2_Ën
+; \
+
+802 (
+	`__bužtš_cÚ¡ªt_p
+ (
+s1
+è&& __bužtš_cÚ¡ªt_°(
+s2
+) \
+
+803 && (
+__s1_Ën
+ = 
+	`__bužtš_¡¾’
+ (
+s1
+), 
+__s2_Ën
+ = __bužtš_¡¾’ (
+s2
+), \
+
+804 (!
+	`__¡ršg2_1b±r_p
+ (
+s1
+è|| 
+__s1_Ën
+ >= 4) \
+
+805 && (!
+	`__¡ršg2_1b±r_p
+ (
+s2
+è|| 
+__s2_Ën
+ >= 4)) \
+
+806 ? 
+	`__bužtš_¡rcmp
+ (
+s1
+, 
+s2
+) \
+
+807 : (
+	`__bužtš_cÚ¡ªt_p
+ (
+s1
+è&& 
+	`__¡ršg2_1b±r_p
+ (s1) \
+
+808 && (
+__s1_Ën
+ = 
+	`__bužtš_¡¾’
+ (
+s1
+), __s1_len < 4) \
+
+809 ? (
+	`__bužtš_cÚ¡ªt_p
+ (
+s2
+è&& 
+	`__¡ršg2_1b±r_p
+ (s2) \
+
+810 ? 
+	`__bužtš_¡rcmp
+ (
+s1
+, 
+s2
+) \
+
+811 : 
+	`__¡rcmp_cg
+ (
+s1
+, 
+s2
+, 
+__s1_Ën
+)) \
+
+812 : (
+	`__bužtš_cÚ¡ªt_p
+ (
+s2
+è&& 
+	`__¡ršg2_1b±r_p
+ (s2) \
+
+813 && (
+__s2_Ën
+ = 
+	`__bužtš_¡¾’
+ (
+s2
+), __s2_len < 4) \
+
+814 ? (
+	`__bužtš_cÚ¡ªt_p
+ (
+s1
+è&& 
+	`__¡ršg2_1b±r_p
+ (s1) \
+
+815 ? 
+	`__bužtš_¡rcmp
+ (
+s1
+, 
+s2
+) \
+
+816 : 
+	`__¡rcmp_gc
+ (
+s1
+, 
+s2
+, 
+__s2_Ën
+)) \
+
+817 : 
+	`__bužtš_¡rcmp
+ (
+s1
+, 
+s2
+)))); })
+
+	)
+
+819 
+	#¡rcmp
+(
+s1
+, 
+s2
+) \
+
+820 
+__ex‹nsiÚ__
+ \
+
+821 ({ 
+size_t
+ 
+__s1_Ën
+, 
+__s2_Ën
+; \
+
+822 (
+	`__bužtš_cÚ¡ªt_p
+ (
+s1
+è&& __bužtš_cÚ¡ªt_°(
+s2
+) \
+
+823 && (
+__s1_Ën
+ = 
+	`¡¾’
+ (
+s1
+), 
+__s2_Ën
+ = sŒËÀ(
+s2
+), \
+
+824 (!
+	`__¡ršg2_1b±r_p
+ (
+s1
+è|| 
+__s1_Ën
+ >= 4) \
+
+825 && (!
+	`__¡ršg2_1b±r_p
+ (
+s2
+è|| 
+__s2_Ën
+ >= 4)) \
+
+826 ? 
+	`memcmp
+ ((cÚ¡ *è(
+s1
+), (cÚ¡ *è(
+s2
+), \
+
+827 (
+__s1_Ën
+ < 
+__s2_Ën
+ ? __s1_len : __s2_len) + 1) \
+
+828 : (
+	`__bužtš_cÚ¡ªt_p
+ (
+s1
+è&& 
+	`__¡ršg2_1b±r_p
+ (s1) \
+
+829 && (
+__s1_Ën
+ = 
+	`¡¾’
+ (
+s1
+), __s1_len < 4) \
+
+830 ? (
+	`__bužtš_cÚ¡ªt_p
+ (
+s2
+è&& 
+	`__¡ršg2_1b±r_p
+ (s2) \
+
+831 ? 
+	`__¡rcmp_cc
+ (
+s1
+, 
+s2
+, 
+__s1_Ën
+) \
+
+832 : 
+	`__¡rcmp_cg
+ (
+s1
+, 
+s2
+, 
+__s1_Ën
+)) \
+
+833 : (
+	`__bužtš_cÚ¡ªt_p
+ (
+s2
+è&& 
+	`__¡ršg2_1b±r_p
+ (s2) \
+
+834 && (
+__s2_Ën
+ = 
+	`¡¾’
+ (
+s2
+), __s2_len < 4) \
+
+835 ? (
+	`__bužtš_cÚ¡ªt_p
+ (
+s1
+è&& 
+	`__¡ršg2_1b±r_p
+ (s1) \
+
+836 ? 
+	`__¡rcmp_cc
+ (
+s1
+, 
+s2
+, 
+__s2_Ën
+) \
+
+837 : 
+	`__¡rcmp_gc
+ (
+s1
+, 
+s2
+, 
+__s2_Ën
+)) \
+
+838 : 
+	`¡rcmp
+ (
+s1
+, 
+s2
+)))); })
+
+	)
+
+841 
+	#__¡rcmp_cc
+(
+s1
+, 
+s2
+, 
+l
+) \
+
+842 (
+	`__ex‹nsiÚ__
+ ({ 
+__»suÉ
+ = \
+
+843 (((cÚ¡ *è(cÚ¡ *è(
+s1
+))[0] \
+
+844 - ((cÚ¡ *è(cÚ¡ *)(
+s2
+))[0]); \
+
+845 ià(
+l
+ > 0 && 
+__»suÉ
+ == 0) \
+
+847 
+__»suÉ
+ = (((const *) \
+
+848 (cÚ¡ *è(
+s1
+))[1] \
+
+850 (cÚ¡ *è(
+s2
+))[1]); \
+
+851 ià(
+l
+ > 1 && 
+__»suÉ
+ == 0) \
+
+853 
+__»suÉ
+ = \
+
+855 (cÚ¡ *è(
+s1
+))[2] \
+
+857 (cÚ¡ *è(
+s2
+))[2]); \
+
+858 ià(
+l
+ > 2 && 
+__»suÉ
+ == 0) \
+
+859 
+__»suÉ
+ = \
+
+861 (cÚ¡ *è(
+s1
+))[3] \
+
+863 (cÚ¡ *è(
+s2
+))[3]); \
+
+866 
+__»suÉ
+; }))
+
+	)
+
+868 
+	#__¡rcmp_cg
+(
+s1
+, 
+s2
+, 
+l1
+) \
+
+869 (
+	`__ex‹nsiÚ__
+ ({ cÚ¡ *
+__s2
+ = \
+
+870 (cÚ¡ *è(cÚ¡ *è(
+s2
+); \
+
+871 
+__»suÉ
+ = \
+
+872 (((cÚ¡ *è(cÚ¡ *è(
+s1
+))[0] \
+
+873 - 
+__s2
+[0]); \
+
+874 ià(
+l1
+ > 0 && 
+__»suÉ
+ == 0) \
+
+876 
+__»suÉ
+ = (((const *) \
+
+877 (cÚ¡ *è(
+s1
+))[1] - 
+__s2
+[1]); \
+
+878 ià(
+l1
+ > 1 && 
+__»suÉ
+ == 0) \
+
+880 
+__»suÉ
+ = (((const *) \
+
+881 (cÚ¡ *è(
+s1
+))[2] - 
+__s2
+[2]); \
+
+882 ià(
+l1
+ > 2 && 
+__»suÉ
+ == 0) \
+
+883 
+__»suÉ
+ = (((const *) \
+
+884 (cÚ¡ *è(
+s1
+))[3] \
+
+885 - 
+__s2
+[3]); \
+
+888 
+__»suÉ
+; }))
+
+	)
+
+890 
+	#__¡rcmp_gc
+(
+s1
+, 
+s2
+, 
+l2
+è(- 
+	`__¡rcmp_cg
+ (s2, s1,†2))
+
+	)
+
+895 #iâdeà
+_HAVE_STRING_ARCH_¡ºcmp
+
+
+896 
+	#¡ºcmp
+(
+s1
+, 
+s2
+, 
+n
+) \
+
+897 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+n
+) \
+
+898 && ((
+	`__bužtš_cÚ¡ªt_p
+ (
+s1
+) \
+
+899 && 
+	`¡¾’
+ (
+s1
+è< ((
+size_t
+è(
+n
+))) \
+
+900 || (
+	`__bužtš_cÚ¡ªt_p
+ (
+s2
+) \
+
+901 && 
+	`¡¾’
+ (
+s2
+è< ((
+size_t
+è(
+n
+)))) \
+
+902 ? 
+	`¡rcmp
+ (
+s1
+, 
+s2
+è: 
+	`¡ºcmp
+ (s1, s2, 
+n
+)))
+
+	)
+
+908 #ià!
+defšed
+ 
+_HAVE_STRING_ARCH_¡rc¥n
+ || defšed 
+_FORCE_INLINES
+
+
+909 #iâdeà
+_HAVE_STRING_ARCH_¡rc¥n
+
+
+910 #ià
+__GNUC_PREREQ
+ (3, 2)
+
+911 
+	#¡rc¥n
+(
+s
+, 
+»jeù
+) \
+
+912 
+__ex‹nsiÚ__
+ \
+
+913 ({ 
+__r0
+, 
+__r1
+, 
+__r2
+; \
+
+914 (
+	`__bužtš_cÚ¡ªt_p
+ (
+»jeù
+è&& 
+	`__¡ršg2_1b±r_p
+ (reject) \
+
+915 ? ((
+	`__bužtš_cÚ¡ªt_p
+ (
+s
+è&& 
+	`__¡ršg2_1b±r_p
+ (s)) \
+
+916 ? 
+	`__bužtš_¡rc¥n
+ (
+s
+, 
+»jeù
+) \
+
+917 : ((
+__r0
+ = ((cÚ¡ *è(
+»jeù
+))[0], __r0 == '\0') \
+
+918 ? 
+	`¡¾’
+ (
+s
+) \
+
+919 : ((
+__r1
+ = ((cÚ¡ *è(
+»jeù
+))[1], __r1 == '\0') \
+
+920 ? 
+	`__¡rc¥n_c1
+ (
+s
+, 
+__r0
+) \
+
+921 : ((
+__r2
+ = ((cÚ¡ *è(
+»jeù
+))[2], __r2 == '\0') \
+
+922 ? 
+	`__¡rc¥n_c2
+ (
+s
+, 
+__r0
+, 
+__r1
+) \
+
+923 : (((cÚ¡ *è(
+»jeù
+))[3] == '\0' \
+
+924 ? 
+	`__¡rc¥n_c3
+ (
+s
+, 
+__r0
+, 
+__r1
+, 
+__r2
+) \
+
+925 : 
+	`__bužtš_¡rc¥n
+ (
+s
+, 
+»jeù
+)))))) \
+
+926 : 
+	`__bužtš_¡rc¥n
+ (
+s
+, 
+»jeù
+)); })
+
+	)
+
+928 
+	#¡rc¥n
+(
+s
+, 
+»jeù
+) \
+
+929 
+__ex‹nsiÚ__
+ \
+
+930 ({ 
+__r0
+, 
+__r1
+, 
+__r2
+; \
+
+931 (
+	`__bužtš_cÚ¡ªt_p
+ (
+»jeù
+è&& 
+	`__¡ršg2_1b±r_p
+ (reject) \
+
+932 ? ((
+__r0
+ = ((cÚ¡ *è(
+»jeù
+))[0], __r0 == '\0') \
+
+933 ? 
+	`¡¾’
+ (
+s
+) \
+
+934 : ((
+__r1
+ = ((cÚ¡ *è(
+»jeù
+))[1], __r1 == '\0') \
+
+935 ? 
+	`__¡rc¥n_c1
+ (
+s
+, 
+__r0
+) \
+
+936 : ((
+__r2
+ = ((cÚ¡ *è(
+»jeù
+))[2], __r2 == '\0') \
+
+937 ? 
+	`__¡rc¥n_c2
+ (
+s
+, 
+__r0
+, 
+__r1
+) \
+
+938 : (((cÚ¡ *è(
+»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Ú¡ *
+__s
+, 
+__»jeù
+);
+
+946 
+__STRING_INLINE
+ 
+size_t
+
+
+947 
+	$__¡rc¥n_c1
+ (cÚ¡ *
+__s
+, 
+__»jeù
+)
+
+949 
+size_t
+ 
+__»suÉ
+ = 0;
+
+950 
+__s
+[
+__»suÉ
+] !ð'\0' && __s[__»suÉ] !ð
+__»jeù
+)
+
+951 ++
+__»suÉ
+;
+
+952  
+__»suÉ
+;
+
+953 
+	}
+}
+
+955 
+__STRING_INLINE
+ 
+size_t
+ 
+__¡rc¥n_c2
+ (cÚ¡ *
+__s
+, 
+__»jeù1
+,
+
+956 
+__»jeù2
+);
+
+957 
+__STRING_INLINE
+ 
+size_t
+
+
+958 
+	$__¡rc¥n_c2
+ (cÚ¡ *
+__s
+, 
+__»jeù1
+, 
+__»jeù2
+)
+
+960 
+size_t
+ 
+__»suÉ
+ = 0;
+
+961 
+__s
+[
+__»suÉ
+] !ð'\0' && __s[__»suÉ] !ð
+__»jeù1
+
+
+962 && 
+__s
+[
+__»suÉ
+] !ð
+__»jeù2
+)
+
+963 ++
+__»suÉ
+;
+
+964  
+__»suÉ
+;
+
+965 
+	}
+}
+
+967 
+__STRING_INLINE
+ 
+size_t
+ 
+__¡rc¥n_c3
+ (cÚ¡ *
+__s
+, 
+__»jeù1
+,
+
+968 
+__»jeù2
+, 
+__»jeù3
+);
+
+969 
+__STRING_INLINE
+ 
+size_t
+
+
+970 
+	$__¡rc¥n_c3
+ (cÚ¡ *
+__s
+, 
+__»jeù1
+, 
+__»jeù2
+,
+
+971 
+__»jeù3
+)
+
+973 
+size_t
+ 
+__»suÉ
+ = 0;
+
+974 
+__s
+[
+__»suÉ
+] !ð'\0' && __s[__»suÉ] !ð
+__»jeù1
+
+
+975 && 
+__s
+[
+__»suÉ
+] !ð
+__»jeù2
+ && __s[__»suÉ] !ð
+__»jeù3
+)
+
+976 ++
+__»suÉ
+;
+
+977  
+__»suÉ
+;
+
+978 
+	}
+}
+
+984 #ià!
+defšed
+ 
+_HAVE_STRING_ARCH_¡r¥n
+ || defšed 
+_FORCE_INLINES
+
+
+985 #iâdeà
+_HAVE_STRING_ARCH_¡r¥n
+
+
+986 #ià
+__GNUC_PREREQ
+ (3, 2)
+
+987 
+	#¡r¥n
+(
+s
+, 
+acû±
+) \
+
+988 
+__ex‹nsiÚ__
+ \
+
+989 ({ 
+__a0
+, 
+__a1
+, 
+__a2
+; \
+
+990 (
+	`__bužtš_cÚ¡ªt_p
+ (
+acû±
+è&& 
+	`__¡ršg2_1b±r_p
+ (accept) \
+
+991 ? ((
+	`__bužtš_cÚ¡ªt_p
+ (
+s
+è&& 
+	`__¡ršg2_1b±r_p
+ (s)) \
+
+992 ? 
+	`__bužtš_¡r¥n
+ (
+s
+, 
+acû±
+) \
+
+993 : ((
+__a0
+ = ((cÚ¡ *è(
+acû±
+))[0], __a0 == '\0') \
+
+994 ? ((è(
+s
+), (
+size_t
+) 0) \
+
+995 : ((
+__a1
+ = ((cÚ¡ *è(
+acû±
+))[1], __a1 == '\0') \
+
+996 ? 
+	`__¡r¥n_c1
+ (
+s
+, 
+__a0
+) \
+
+997 : ((
+__a2
+ = ((cÚ¡ *è(
+acû±
+))[2], __a2 == '\0') \
+
+998 ? 
+	`__¡r¥n_c2
+ (
+s
+, 
+__a0
+, 
+__a1
+) \
+
+999 : (((cÚ¡ *è(
+acû±
+))[3] == '\0' \
+
+1000 ? 
+	`__¡r¥n_c3
+ (
+s
+, 
+__a0
+, 
+__a1
+, 
+__a2
+) \
+
+1001 : 
+	`__bužtš_¡r¥n
+ (
+s
+, 
+acû±
+)))))) \
+
+1002 : 
+	`__bužtš_¡r¥n
+ (
+s
+, 
+acû±
+)); })
+
+	)
+
+1004 
+	#¡r¥n
+(
+s
+, 
+acû±
+) \
+
+1005 
+__ex‹nsiÚ__
+ \
+
+1006 ({ 
+__a0
+, 
+__a1
+, 
+__a2
+; \
+
+1007 (
+	`__bužtš_cÚ¡ªt_p
+ (
+acû±
+è&& 
+	`__¡ršg2_1b±r_p
+ (accept) \
+
+1008 ? ((
+__a0
+ = ((cÚ¡ *è(
+acû±
+))[0], __a0 == '\0') \
+
+1009 ? ((è(
+s
+), (
+size_t
+) 0) \
+
+1010 : ((
+__a1
+ = ((cÚ¡ *è(
+acû±
+))[1], __a1 == '\0') \
+
+1011 ? 
+	`__¡r¥n_c1
+ (
+s
+, 
+__a0
+) \
+
+1012 : ((
+__a2
+ = ((cÚ¡ *è(
+acû±
+))[2], __a2 == '\0') \
+
+1013 ? 
+	`__¡r¥n_c2
+ (
+s
+, 
+__a0
+, 
+__a1
+) \
+
+1014 : (((cÚ¡ *è(
+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Ú¡ *
+__s
+, 
+__acû±
+);
+
+1022 
+__STRING_INLINE
+ 
+size_t
+
+
+1023 
+	$__¡r¥n_c1
+ (cÚ¡ *
+__s
+, 
+__acû±
+)
+
+1025 
+size_t
+ 
+__»suÉ
+ = 0;
+
+1027 
+__s
+[
+__»suÉ
+] =ð
+__acû±
+)
+
+1028 ++
+__»suÉ
+;
+
+1029  
+__»suÉ
+;
+
+1030 
+	}
+}
+
+1032 
+__STRING_INLINE
+ 
+size_t
+ 
+__¡r¥n_c2
+ (cÚ¡ *
+__s
+, 
+__acû±1
+,
+
+1033 
+__acû±2
+);
+
+1034 
+__STRING_INLINE
+ 
+size_t
+
+
+1035 
+	$__¡r¥n_c2
+ (cÚ¡ *
+__s
+, 
+__acû±1
+, 
+__acû±2
+)
+
+1037 
+size_t
+ 
+__»suÉ
+ = 0;
+
+1039 
+__s
+[
+__»suÉ
+] =ð
+__acû±1
+ || __s[__»suÉ] =ð
+__acû±2
+)
+
+1040 ++
+__»suÉ
+;
+
+1041  
+__»suÉ
+;
+
+1042 
+	}
+}
+
+1044 
+__STRING_INLINE
+ 
+size_t
+ 
+__¡r¥n_c3
+ (cÚ¡ *
+__s
+, 
+__acû±1
+,
+
+1045 
+__acû±2
+, 
+__acû±3
+);
+
+1046 
+__STRING_INLINE
+ 
+size_t
+
+
+1047 
+	$__¡r¥n_c3
+ (cÚ¡ *
+__s
+, 
+__acû±1
+, 
+__acû±2
+, 
+__acû±3
+)
+
+1049 
+size_t
+ 
+__»suÉ
+ = 0;
+
+1051 
+__s
+[
+__»suÉ
+] =ð
+__acû±1
+ || __s[__»suÉ] =ð
+__acû±2
+
+
+1052 || 
+__s
+[
+__»suÉ
+] =ð
+__acû±3
+)
+
+1053 ++
+__»suÉ
+;
+
+1054  
+__»suÉ
+;
+
+1055 
+	}
+}
+
+1060 #ià!
+defšed
+ 
+_HAVE_STRING_ARCH_¡½brk
+ || defšed 
+_FORCE_INLINES
+
+
+1061 #iâdeà
+_HAVE_STRING_ARCH_¡½brk
+
+
+1062 #ià
+__GNUC_PREREQ
+ (3, 2)
+
+1063 
+	#¡½brk
+(
+s
+, 
+acû±
+) \
+
+1064 
+__ex‹nsiÚ__
+ \
+
+1065 ({ 
+__a0
+, 
+__a1
+, 
+__a2
+; \
+
+1066 (
+	`__bužtš_cÚ¡ªt_p
+ (
+acû±
+è&& 
+	`__¡ršg2_1b±r_p
+ (accept) \
+
+1067 ? ((
+	`__bužtš_cÚ¡ªt_p
+ (
+s
+è&& 
+	`__¡ršg2_1b±r_p
+ (s)) \
+
+1068 ? 
+	`__bužtš_¡½brk
+ (
+s
+, 
+acû±
+) \
+
+1069 : ((
+__a0
+ = ((cÚ¡ *è(
+acû±
+))[0], __a0 == '\0') \
+
+1070 ? ((è(
+s
+), (*è
+NULL
+) \
+
+1071 : ((
+__a1
+ = ((cÚ¡ *è(
+acû±
+))[1], __a1 == '\0') \
+
+1072 ? 
+	`__bužtš_¡rchr
+ (
+s
+, 
+__a0
+) \
+
+1073 : ((
+__a2
+ = ((cÚ¡ *è(
+acû±
+))[2], __a2 == '\0') \
+
+1074 ? 
+	`__¡½brk_c2
+ (
+s
+, 
+__a0
+, 
+__a1
+) \
+
+1075 : (((cÚ¡ *è(
+acû±
+))[3] == '\0' \
+
+1076 ? 
+	`__¡½brk_c3
+ (
+s
+, 
+__a0
+, 
+__a1
+, 
+__a2
+) \
+
+1077 : 
+	`__bužtš_¡½brk
+ (
+s
+, 
+acû±
+)))))) \
+
+1078 : 
+	`__bužtš_¡½brk
+ (
+s
+, 
+acû±
+)); })
+
+	)
+
+1080 
+	#¡½brk
+(
+s
+, 
+acû±
+) \
+
+1081 
+__ex‹nsiÚ__
+ \
+
+1082 ({ 
+__a0
+, 
+__a1
+, 
+__a2
+; \
+
+1083 (
+	`__bužtš_cÚ¡ªt_p
+ (
+acû±
+è&& 
+	`__¡ršg2_1b±r_p
+ (accept) \
+
+1084 ? ((
+__a0
+ = ((cÚ¡ *è(
+acû±
+))[0], __a0 == '\0') \
+
+1085 ? ((è(
+s
+), (*è
+NULL
+) \
+
+1086 : ((
+__a1
+ = ((cÚ¡ *è(
+acû±
+))[1], __a1 == '\0') \
+
+1087 ? 
+	`¡rchr
+ (
+s
+, 
+__a0
+) \
+
+1088 : ((
+__a2
+ = ((cÚ¡ *è(
+acû±
+))[2], __a2 == '\0') \
+
+1089 ? 
+	`__¡½brk_c2
+ (
+s
+, 
+__a0
+, 
+__a1
+) \
+
+1090 : (((cÚ¡ *è(
+acû±
+))[3] == '\0' \
+
+1091 ? 
+	`__¡½brk_c3
+ (
+s
+, 
+__a0
+, 
+__a1
+, 
+__a2
+) \
+
+1092 : 
+	`¡½brk
+ (
+s
+, 
+acû±
+))))) \
+
+1093 : 
+	`¡½brk
+ (
+s
+, 
+acû±
+)); })
+
+	)
+
+1097 
+__STRING_INLINE
+ *
+__¡½brk_c2
+ (cÚ¡ *
+__s
+, 
+__acû±1
+,
+
+1098 
+__acû±2
+);
+
+1099 
+__STRING_INLINE
+ *
+
+1100 
+	$__¡½brk_c2
+ (cÚ¡ *
+__s
+, 
+__acû±1
+, 
+__acû±2
+)
+
+1103 *
+__s
+ !ð'\0' && *__ !ð
+__acû±1
+ && *__ !ð
+__acû±2
+)
+
+1104 ++
+__s
+;
+
+1105  *
+__s
+ =ð'\0' ? 
+NULL
+ : (*è(
+size_t
+) __s;
+
+1106 
+	}
+}
+
+1108 
+__STRING_INLINE
+ *
+__¡½brk_c3
+ (cÚ¡ *
+__s
+, 
+__acû±1
+,
+
+1109 
+__acû±2
+, 
+__acû±3
+);
+
+1110 
+__STRING_INLINE
+ *
+
+1111 
+	$__¡½brk_c3
+ (cÚ¡ *
+__s
+, 
+__acû±1
+, 
+__acû±2
+, 
+__acû±3
+)
+
+1114 *
+__s
+ !ð'\0' && *__ !ð
+__acû±1
+ && *__ !ð
+__acû±2
+
+
+1115 && *
+__s
+ !ð
+__acû±3
+)
+
+1116 ++
+__s
+;
+
+1117  *
+__s
+ =ð'\0' ? 
+NULL
+ : (*è(
+size_t
+) __s;
+
+1118 
+	}
+}
+
+1124 #ià!
+defšed
+ 
+_HAVE_STRING_ARCH_¡r¡r
+ && !
+__GNUC_PREREQ
+ (2, 97)
+
+1125 
+	#¡r¡r
+(
+hay¡ack
+, 
+ÃedË
+) \
+
+1126 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+ÃedË
+è&& 
+	`__¡ršg2_1b±r_p
+ (needle) \
+
+1127 ? (((cÚ¡ *è(
+ÃedË
+))[0] == '\0' \
+
+1128 ? (*è(
+size_t
+è(
+hay¡ack
+) \
+
+1129 : (((cÚ¡ *è(
+ÃedË
+))[1] == '\0' \
+
+1130 ? 
+	`¡rchr
+ (
+hay¡ack
+, \
+
+1131 ((cÚ¡ *è(
+ÃedË
+))[0]) \
+
+1132 : 
+	`¡r¡r
+ (
+hay¡ack
+, 
+ÃedË
+))) \
+
+1133 : 
+	`¡r¡r
+ (
+hay¡ack
+, 
+ÃedË
+)))
+
+	)
+
+1137 #ià!
+defšed
+ 
+_HAVE_STRING_ARCH_¡¹ok_r
+ || defšed 
+_FORCE_INLINES
+
+
+1138 #iâdeà
+_HAVE_STRING_ARCH_¡¹ok_r
+
+
+1139 
+	#__¡¹ok_r
+(
+s
+, 
+£p
+, 
+Ãx
+) \
+
+1140 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+£p
+è&& 
+	`__¡ršg2_1b±r_p
+ (sep) \
+
+1141 && ((cÚ¡ *è(
+£p
+))[0] != '\0' \
+
+1142 && ((cÚ¡ *è(
+£p
+))[1] == '\0' \
+
+1143 ? 
+	`__¡¹ok_r_1c
+ (
+s
+, ((cÚ¡ *è(
+£p
+))[0], 
+Ãx
+) \
+
+1144 : 
+	`__¡¹ok_r
+ (
+s
+, 
+£p
+, 
+Ãx
+)))
+
+	)
+
+1147 
+__STRING_INLINE
+ *
+__¡¹ok_r_1c
+ (*
+__s
+, 
+__£p
+, **
+__Ãx
+);
+
+1148 
+__STRING_INLINE
+ *
+
+1149 
+	$__¡¹ok_r_1c
+ (*
+__s
+, 
+__£p
+, **
+__Ãx
+)
+
+1151 *
+__»suÉ
+;
+
+1152 ià(
+__s
+ =ð
+NULL
+)
+
+1153 
+__s
+ = *
+__Ãx
+;
+
+1154 *
+__s
+ =ð
+__£p
+)
+
+1155 ++
+__s
+;
+
+1156 
+__»suÉ
+ = 
+NULL
+;
+
+1157 ià(*
+__s
+ != '\0')
+
+1159 
+__»suÉ
+ = 
+__s
+++;
+
+1160 *
+__s
+ != '\0')
+
+1161 ià(*
+__s
+++ =ð
+__£p
+)
+
+1163 
+__s
+[-1] = '\0';
+
+1167 *
+__Ãx
+ = 
+__s
+;
+
+1168  
+__»suÉ
+;
+
+1169 
+	}
+}
+
+1170 #ifdeà
+__USE_POSIX
+
+
+1171 
+	#¡¹ok_r
+(
+s
+, 
+£p
+, 
+Ãx
+è
+	`__¡¹ok_r
+ (s, s•,‚ex)
+
+	)
+
+1176 #ià!
+defšed
+ 
+_HAVE_STRING_ARCH_¡r£p
+ || defšed 
+_FORCE_INLINES
+
+
+1177 #iâdeà
+_HAVE_STRING_ARCH_¡r£p
+
+
+1179 
*
+__¡r£p_g
+ (**
+__¡ršgp
+, cÚ¡ *
+__d–im
+);
+
+1180 
+	#__¡r£p
+(
+s
+, 
+»jeù
+) \
+
+1181 
+__ex‹nsiÚ__
+ \
+
+1182 ({ 
+__r0
+, 
+__r1
+, 
+__r2
+; \
+
+1183 (
+	`__bužtš_cÚ¡ªt_p
+ (
+»jeù
+è&& 
+	`__¡ršg2_1b±r_p
+ (reject) \
+
+1184 && (
+__r0
+ = ((cÚ¡ *è(
+»jeù
+))[0], \
+
+1185 ((cÚ¡ *è(
+»jeù
+))[0] != '\0') \
+
+1186 ? ((
+__r1
+ = ((cÚ¡ *è(
+»jeù
+))[1], \
+
+1187 ((cÚ¡ *è(
+»jeù
+))[1] == '\0') \
+
+1188 ? 
+	`__¡r£p_1c
+ (
+s
+, 
+__r0
+) \
+
+1189 : ((
+__r2
+ = ((cÚ¡ *è(
+»jeù
+))[2], __r2 == '\0') \
+
+1190 ? 
+	`__¡r£p_2c
+ (
+s
+, 
+__r0
+, 
+__r1
+) \
+
+1191 : (((cÚ¡ *è(
+»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
+ *
+__¡r£p_1c
+ (**
+__s
+, 
+__»jeù
+);
+
+1198 
+__STRING_INLINE
+ *
+
+1199 
+	$__¡r£p_1c
+ (**
+__s
+, 
+__»jeù
+)
+
+1201 *
+__»tv®
+ = *
+__s
+;
+
+1202 ià(
+__»tv®
+ !ð
+NULL
+ && (*
+__s
+ = 
+	`¡rchr
+ (__»tv®, 
+__»jeù
+)) != NULL)
+
+1203 *(*
+__s
+)++ = '\0';
+
+1204  
+__»tv®
+;
+
+1205 
+	}
+}
+
+1207 
+__STRING_INLINE
+ *
+__¡r£p_2c
+ (**
+__s
+, 
+__»jeù1
+, 
+__»jeù2
+);
+
+1208 
+__STRING_INLINE
+ *
+
+1209 
+	$__¡r£p_2c
+ (**
+__s
+, 
+__»jeù1
+, 
+__»jeù2
+)
+
+1211 *
+__»tv®
+ = *
+__s
+;
+
+1212 ià(
+__»tv®
+ !ð
+NULL
+)
+
+1214 *
+__ý
+ = 
+__»tv®
+;
+
+1217 ià(*
+__ý
+ == '\0')
+
+1219 
+__ý
+ = 
+NULL
+;
+
+1222 ià(*
+__ý
+ =ð
+__»jeù1
+ || *__ý =ð
+__»jeù2
+)
+
+1224 *
+__ý
+++ = '\0';
+
+1227 ++
+__ý
+;
+
+1229 *
+__s
+ = 
+__ý
+;
+
+1231  
+__»tv®
+;
+
+1232 
+	}
+}
+
+1234 
+__STRING_INLINE
+ *
+__¡r£p_3c
+ (**
+__s
+, 
+__»jeù1
+, 
+__»jeù2
+,
+
+1235 
+__»jeù3
+);
+
+1236 
+__STRING_INLINE
+ *
+
+1237 
+	$__¡r£p_3c
+ (**
+__s
+, 
+__»jeù1
+, 
+__»jeù2
+, 
+__»jeù3
+)
+
+1239 *
+__»tv®
+ = *
+__s
+;
+
+1240 ià(
+__»tv®
+ !ð
+NULL
+)
+
+1242 *
+__ý
+ = 
+__»tv®
+;
+
+1245 ià(*
+__ý
+ == '\0')
+
+1247 
+__ý
+ = 
+NULL
+;
+
+1250 ià(*
+__ý
+ =ð
+__»jeù1
+ || *__ý =ð
+__»jeù2
+ || *__ý =ð
+__»jeù3
+)
+
+1252 *
+__ý
+++ = '\0';
+
+1255 ++
+__ý
+;
+
+1257 *
+__s
+ = 
+__ý
+;
+
+1259  
+__»tv®
+;
+
+1260 
+	}
+}
+
+1261 #ifdeà
+__USE_MISC
+
+
+1262 
+	#¡r£p
+(
+s
+, 
+»jeù
+è
+	`__¡r£p
+ (s,„ejeù)
+
+	)
+
+1269 #ifdeà
+__USE_MISC
+
+
+1271 #ià!
+defšed
+ 
+_HAVE_STRING_ARCH_¡rdup
+ || !defšed 
+_HAVE_STRING_ARCH_¡ºdup
+
+
+1272 
+	#__Ãed_m®loc_ªd_ÿÎoc
+
+
+	)
+
+1273 
+	~<¡dlib.h
+>
+
+1276 #iâdeà
+_HAVE_STRING_ARCH_¡rdup
+
+
+1278 
*
+	$__¡rdup
+ (cÚ¡ *
+__¡ršg
+è
+__THROW
+ 
+__©Œibu‹_m®loc__
+;
+
+1279 
+	#__¡rdup
+(
+s
+) \
+
+1280 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+s
+è&& 
+	`__¡ršg2_1b±r_p
+ (s) \
+
+1281 ? (((cÚ¡ *è(
+s
+))[0] == '\0' \
+
+1282 ? (*è
+	`ÿÎoc
+ ((
+size_t
+) 1, (size_t) 1) \
+
+1283 : ({ 
+size_t
+ 
+__Ën
+ = 
+	`¡¾’
+ (
+s
+) + 1; \
+
+1284 *
+__»tv®
+ = (*è
+	`m®loc
+ (
+__Ën
+); \
+
+1285 ià(
+__»tv®
+ !ð
+NULL
+) \
+
+1286 
+__»tv®
+ = (*è
+	`memýy
+ (__»tv®, 
+s
+, 
+__Ën
+); \
+
+1287 
+__»tv®
+; 
+	}
+})) \
+
+1288 : 
+	`__¡rdup
+ (
+s
+)))
+
+	)
+
+1290 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K8
+
+
+1291 
+	#¡rdup
+(
+s
+è
+	`__¡rdup
+ (s)
+
+	)
+
+1295 #iâdeà
+_HAVE_STRING_ARCH_¡ºdup
+
+
+1297 
*
+	$__¡ºdup
+ (cÚ¡ *
+__¡ršg
+, 
+size_t
+ 
+__n
+)
+
+1298 
+__THROW
+ 
+__©Œibu‹_m®loc__
+;
+
+1299 
+	#__¡ºdup
+(
+s
+, 
+n
+) \
+
+1300 (
+	`__ex‹nsiÚ__
+ (
+	`__bužtš_cÚ¡ªt_p
+ (
+s
+è&& 
+	`__¡ršg2_1b±r_p
+ (s) \
+
+1301 ? (((cÚ¡ *è(
+s
+))[0] == '\0' \
+
+1302 ? (*è
+	`ÿÎoc
+ ((
+size_t
+) 1, (size_t) 1) \
+
+1303 : ({ 
+size_t
+ 
+__Ën
+ = 
+	`¡¾’
+ (
+s
+) + 1; \
+
+1304 
+size_t
+ 
+__n
+ = (
+n
+); \
+
+1305 *
+__»tv®
+; \
+
+1306 ià(
+__n
+ < 
+__Ën
+) \
+
+1307 
+__Ën
+ = 
+__n
+ + 1; \
+
+1308 
+__»tv®
+ = (*è
+	`m®loc
+ (
+__Ën
+); \
+
+1309 ià(
+__»tv®
+ !ð
+NULL
+) \
+
+1311 
+__»tv®
+[
+__Ën
+ - 1] = '\0'; \
+
+1312 
+__»tv®
+ = (*è
+	`memýy
+ (__»tv®, 
+s
+, \
+
+1313 
+__Ën
+ - 1); \
+
+1315 
+__»tv®
+; 
+	}
+})) \
+
+1316 : 
+	`__¡ºdup
+ (
+s
+, 
+n
+)))
+
+	)
+
+1318 #ifdeà
+__USE_XOPEN2K8
+
+
+1319 
+	#¡ºdup
+(
+s
+, 
+n
+è
+	`__¡ºdup
+ (s,‚)
+
+	)
+
+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”o_Ë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”o
+
+
+49 
+__fÜtify_funùiÚ
+ *
+
+50 
+__NTH
+ (
+	$memýy
+ (*
+__»¡riù
+ 
+__de¡
+, cÚ¡ *__»¡riù 
+__¤c
+,
+
+51 
+size_t
+ 
+__Ën
+))
+
+53  
+	`__bužtš___memýy_chk
+ (
+__de¡
+, 
+__¤c
+, 
+__Ën
+, 
+	`__bos0
+ (__dest));
+
+54 
+	}
+}
+
+56 
+__fÜtify_funùiÚ
+ *
+
+57 
+__NTH
+ (
+	$memmove
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+, 
+size_t
+ 
+__Ën
+))
+
+59  
+	`__bužtš___memmove_chk
+ (
+__de¡
+, 
+__¤c
+, 
+__Ën
+, 
+	`__bos0
+ (__dest));
+
+60 
+	}
+}
+
+62 #ifdeà
+__USE_GNU
+
+
+63 
+__fÜtify_funùiÚ
+ *
+
+64 
+__NTH
+ (
+	$mempýy
+ (*
+__»¡riù
+ 
+__de¡
+, cÚ¡ *__»¡riù 
+__¤c
+,
+
+65 
+size_t
+ 
+__Ën
+))
+
+67  
+	`__bužtš___mempýy_chk
+ (
+__de¡
+, 
+__¤c
+, 
+__Ën
+, 
+	`__bos0
+ (__dest));
+
+68 
+	}
+}
+
+77 
+__fÜtify_funùiÚ
+ *
+
+78 
+__NTH
+ (
+	$mem£t
+ (*
+__de¡
+, 
+__ch
+, 
+size_t
+ 
+__Ën
+))
+
+82 #ià!
+	`__GNUC_PREREQ
+ (5,0)
+
+83 ià(
+	`__bužtš_cÚ¡ªt_p
+ (
+__Ën
+) && __len == 0
+
+84 && (!
+	`__bužtš_cÚ¡ªt_p
+ (
+__ch
+) || __ch != 0))
+
+86 
+	`__w¬n_mem£t_z”o_Ën
+ ();
+
+87  
+__de¡
+;
+
+90  
+	`__bužtš___mem£t_chk
+ (
+__de¡
+, 
+__ch
+, 
+__Ën
+, 
+	`__bos0
+ (__dest));
+
+91 
+	}
+}
+
+93 #ifdeà
+__USE_MISC
+
+
+94 
+__fÜtify_funùiÚ
+ 
+
+95 
+__NTH
+ (
+	$bcÝy
+ (cÚ¡ *
+__¤c
+, *
+__de¡
+, 
+size_t
+ 
+__Ën
+))
+
+97 (è
+	`__bužtš___memmove_chk
+ (
+__de¡
+, 
+__¤c
+, 
+__Ën
+, 
+	`__bos0
+ (__dest));
+
+98 
+	}
+}
+
+100 
+__fÜtify_funùiÚ
+ 
+
+101 
+__NTH
+ (
+	$bz”o
+ (*
+__de¡
+, 
+size_t
+ 
+__Ën
+))
+
+103 (è
+	`__bužtš___mem£t_chk
+ (
+__de¡
+, '\0', 
+__Ën
+, 
+	`__bos0
+ (__dest));
+
+104 
+	}
+}
+
+107 
+__fÜtify_funùiÚ
+ *
+
+108 
+__NTH
+ (
+	$¡rýy
+ (*
+__»¡riù
+ 
+__de¡
+, cÚ¡ *__»¡riù 
+__¤c
+))
+
+110  
+	`__bužtš___¡rýy_chk
+ (
+__de¡
+, 
+__¤c
+, 
+	`__bos
+ (__dest));
+
+111 
+	}
+}
+
+113 #ifdeà
+__USE_GNU
+
+
+114 
+__fÜtify_funùiÚ
+ *
+
+115 
+__NTH
+ (
+	$¡pýy
+ (*
+__»¡riù
+ 
+__de¡
+, cÚ¡ *__»¡riù 
+__¤c
+))
+
+117  
+	`__bužtš___¡pýy_chk
+ (
+__de¡
+, 
+__¤c
+, 
+	`__bos
+ (__dest));
+
+118 
+	}
+}
+
+122 
+__fÜtify_funùiÚ
+ *
+
+123 
+__NTH
+ (
+	$¡ºýy
+ (*
+__»¡riù
+ 
+__de¡
+, cÚ¡ *__»¡riù 
+__¤c
+,
+
+124 
+size_t
+ 
+__Ën
+))
+
+126  
+	`__bužtš___¡ºýy_chk
+ (
+__de¡
+, 
+__¤c
+, 
+__Ën
+, 
+	`__bos
+ (__dest));
+
+127 
+	}
+}
+
+130 
*
+	$__¡²ýy_chk
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+, 
+size_t
+ 
+__n
+,
+
+131 
+size_t
+ 
+__de¡Ën
+è
+__THROW
+;
+
+132 
*
+	`__REDIRECT_NTH
+ (
+__¡²ýy_®Ÿs
+, (*
+__de¡
+, cÚ¡ *
+__¤c
+,
+
+133 
+size_t
+ 
+__n
+), 
+¡²ýy
+);
+
+135 
+__fÜtify_funùiÚ
+ *
+
+136 
+	`__NTH
+ (
+	$¡²ýy
+ (*
+__de¡
+, cÚ¡ *
+__¤c
+, 
+size_t
+ 
+__n
+))
+
+138 ià(
+	`__bos
+ (
+__de¡
+è!ð(
+size_t
+) -1
+
+139 && (!
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+è|| __À> 
+	`__bos
+ (
+__de¡
+)))
+
+140  
+	`__¡²ýy_chk
+ (
+__de¡
+, 
+__¤c
+, 
+__n
+, 
+	`__bos
+ (__dest));
+
+141  
+	`__¡²ýy_®Ÿs
+ (
+__de¡
+, 
+__¤c
+, 
+__n
+);
+
+142 
+	}
+}
+
+145 
+__fÜtify_funùiÚ
+ *
+
+146 
+__NTH
+ (
+	$¡rÿt
+ (*
+__»¡riù
+ 
+__de¡
+, cÚ¡ *__»¡riù 
+__¤c
+))
+
+148  
+	`__bužtš___¡rÿt_chk
+ (
+__de¡
+, 
+__¤c
+, 
+	`__bos
+ (__dest));
+
+149 
+	}
+}
+
+152 
+__fÜtify_funùiÚ
+ *
+
+153 
+__NTH
+ (
+	$¡ºÿt
+ (*
+__»¡riù
+ 
+__de¡
+, cÚ¡ *__»¡riù 
+__¤c
+,
+
+154 
+size_t
+ 
+__Ën
+))
+
+156  
+	`__bužtš___¡ºÿt_chk
+ (
+__de¡
+, 
+__¤c
+, 
+__Ën
+, 
+	`__bos
+ (__dest));
+
+157 
+	}
+}
+
+	@/usr/include/bits/sys_errlist.h
+
+19 #iâdeà
+_STDIO_H
+
+
+25 #ifdeà 
+__USE_MISC
+
+
+26 

+sys_ü
+;
+
+27 
cÚ¡ *cÚ¡ 
+sys_”¾i¡
+[];
+
+29 #ifdeà 
+__USE_GNU
+
+
+30 

+_sys_ü
+;
+
+31 
cÚ¡ *cÚ¡ 
+_sys_”¾i¡
+[];
+
+	@/usr/include/bits/time.h
+
+23 #ià
+defšed
+ 
+__Ãed_timev®
+ || defšed 
+__USE_GNU
+
+
+24 #iâdeà
+_STRUCT_TIMEVAL
+
+
+25 
+	#_STRUCT_TIMEVAL
+ 1
+
+	)
+
+26 
+	~<b™s/ty³s.h
+>
+
+30 
+	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 
+	#_BITS_TIME_H
+ 1
+
+	)
+
+48 
+	#CLOCKS_PER_SEC
+ ((
+þock_t
+è1000000)
+
+	)
+
+50 #ià(!
+defšed
+ 
+__STRICT_ANSI__
+ || defšed 
+__USE_POSIX
+) \
+
+51 && !
+defšed
+ 
+	g__USE_XOPEN2K
+
+
+54 
+	~<b™s/ty³s.h
+>
+
+55 

+__syscÚf
+ ();
+
+56 
+	#CLK_TCK
+ ((
+__þock_t
+è
+	`__syscÚf
+ (2)è
+
+	)
+
+59 #ifdeà
+__USE_POSIX199309
+
+
+61 
+	#CLOCK_REALTIME
+ 0
+
+	)
+
+63 
+	#CLOCK_MONOTONIC
+ 1
+
+	)
+
+65 
+	#CLOCK_PROCESS_CPUTIME_ID
+ 2
+
+	)
+
+67 
+	#CLOCK_THREAD_CPUTIME_ID
+ 3
+
+	)
+
+69 
+	#CLOCK_MONOTONIC_RAW
+ 4
+
+	)
+
+71 
+	#CLOCK_REALTIME_COARSE
+ 5
+
+	)
+
+73 
+	#CLOCK_MONOTONIC_COARSE
+ 6
+
+	)
+
+75 
+	#CLOCK_BOOTTIME
+ 7
+
+	)
+
+77 
+	#CLOCK_REALTIME_ALARM
+ 8
+
+	)
+
+79 
+	#CLOCK_BOOTTIME_ALARM
+ 9
+
+	)
+
+81 
+	#CLOCK_TAI
+ 11
+
+	)
+
+84 
+	#TIMER_ABSTIME
+ 1
+
+	)
+
+87 #ifdeà
+__USE_GNU
+
+
+88 
+	~<b™s/timex.h
+>
+
+90 
+__BEGIN_DECLS
+
+
+93 

+	$þock_adjtime
+ (
+__þockid_t
+ 
+__þock_id
+, 
+timex
+ *
+__utx
+è
+__THROW
+;
+
+95 
+__END_DECLS
+
+
+101 #undeà
+__Ãed_timev®
+
+
+	@/usr/include/bits/types.h
+
+23 #iâdef 
+_BITS_TYPES_H
+
+
+24 
+	#_BITS_TYPES_H
+ 1
+
+	)
+
+26 
+	~<ã©u»s.h
+>
+
+27 
+	~<b™s/wÜdsize.h
+>
+
+30 
+	t__u_ch¬
+;
+
+31 
+	t__u_shÜt
+;
+
+32 
+	t__u_št
+;
+
+33 
+	t__u_lÚg
+;
+
+36 sigÃd 
+	t__št8_t
+;
+
+37 
+	t__ušt8_t
+;
+
+38 sigÃd 
+	t__št16_t
+;
+
+39 
+	t__ušt16_t
+;
+
+40 sigÃd 
+	t__št32_t
+;
+
+41 
+	t__ušt32_t
+;
+
+42 #ià
+__WORDSIZE
+ == 64
+
+43 sigÃd 
+	t__št64_t
+;
+
+44 
+	t__ušt64_t
+;
+
+46 
+__ex‹nsiÚ__
+ sigÃd 
+	t__št64_t
+;
+
+47 
+__ex‹nsiÚ__
+ 
+	t__ušt64_t
+;
+
+51 #ià
+__WORDSIZE
+ == 64
+
+52 
+	t__quad_t
+;
+
+53 
+	t__u_quad_t
+;
+
+55 
+__ex‹nsiÚ__
+ 
+	t__quad_t
+;
+
+56 
+__ex‹nsiÚ__
+ 
+	t__u_quad_t
+;
+
+89 
+	#__S16_TYPE
+ 
+
+	)
+
+90 
+	#__U16_TYPE
+ 
+
+	)
+
+91 
+	#__S32_TYPE
+ 
+
+	)
+
+92 
+	#__U32_TYPE
+ 
+
+	)
+
+93 
+	#__SLONGWORD_TYPE
+ 
+
+	)
+
+94 
+	#__ULONGWORD_TYPE
+ 
+
+	)
+
+95 #ià
+__WORDSIZE
+ == 32
+
+96 
+	#__SQUAD_TYPE
+ 
+__quad_t
+
+
+	)
+
+97 
+	#__UQUAD_TYPE
+ 
+__u_quad_t
+
+
+	)
+
+98 
+	#__SWORD_TYPE
+ 
+
+	)
+
+99 
+	#__UWORD_TYPE
+ 
+
+	)
+
+100 
+	#__SLONG32_TYPE
+ 
+
+	)
+
+101 
+	#__ULONG32_TYPE
+ 
+
+	)
+
+102 
+	#__S64_TYPE
+ 
+__quad_t
+
+
+	)
+
+103 
+	#__U64_TYPE
+ 
+__u_quad_t
+
+
+	)
+
+106 
+	#__STD_TYPE
+ 
+__ex‹nsiÚ__
+ 
+
+	)
+
+107 #–ià
+__WORDSIZE
+ == 64
+
+108 
+	t__SQUAD_TYPE
+ 
+
+	)
+
+109 
+	t__UQUAD_TYPE
+ 
+
+	)
+
+110 
+	t__SWORD_TYPE
+ 
+
+	)
+
+111 
+	t__UWORD_TYPE
+ 
+
+	)
+
+112 
+	t__SLONG32_TYPE
+ 
+
+	)
+
+113 
+	t__ULONG32_TYPE
+ 
+
+	)
+
+114 
+	t__S64_TYPE
+ 
+
+	)
+
+115 
+	t__U64_TYPE
+ 
+
+	)
+
+117 
+	t__STD_TYPE
+ 
+
+	)
+
+121 
+	~<b™s/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__šo_t
+;
+
+128 
+__STD_TYPE
+ 
+__INO64_T_TYPE
+ 
+	g__šo64_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”_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žút_t
+;
+
+167 
+__STD_TYPE
+ 
+__FSFILCNT64_T_TYPE
+ 
+	g__fsfžú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 
+__off64_t
+ 
+	t__loff_t
+;
+
+182 
+__quad_t
+ *
+	t__qaddr_t
+;
+
+183 *
+	t__ÿddr_t
+;
+
+186 
+__STD_TYPE
+ 
+__SWORD_TYPE
+ 
+	g__šŒ_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 
+ssize_t
+ 
+	$__»ad_chk
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+,
+
+24 
+size_t
+ 
+__buæ’
+è
+__wur
+;
+
+25 
+ssize_t
+ 
+	`__REDIRECT
+ (
+__»ad_®Ÿs
+, (
+__fd
+, *
+__buf
+,
+
+26 
+size_t
+ 
+__nby‹s
+), 
+»ad
+è
+__wur
+;
+
+27 
+ssize_t
+ 
+	`__REDIRECT
+ (
+__»ad_chk_w¬n
+,
+
+28 (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+,
+
+29 
+size_t
+ 
+__buæ’
+), 
+__»ad_chk
+)
+
+30 
+__wur
+ 
+	`__w¬Ç‰r
+ ("read called with bigger†engthhan size of "
+
+33 
+__fÜtify_funùiÚ
+ 
+__wur
+ 
+ssize_t
+
+
+34 
+	$»ad
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+)
+
+36 ià(
+	`__bos0
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+38 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__nby‹s
+))
+
+39  
+	`__»ad_chk
+ (
+__fd
+, 
+__buf
+, 
+__nby‹s
+, 
+	`__bos0
+ (__buf));
+
+41 ià(
+__nby‹s
+ > 
+	`__bos0
+ (
+__buf
+))
+
+42  
+	`__»ad_chk_w¬n
+ (
+__fd
+, 
+__buf
+, 
+__nby‹s
+, 
+	`__bos0
+ (__buf));
+
+44  
+	`__»ad_®Ÿs
+ (
+__fd
+, 
+__buf
+, 
+__nby‹s
+);
+
+45 
+	}
+}
+
+47 #ifdeà
+__USE_UNIX98
+
+
+48 
+ssize_t
+ 
+	$__´—d_chk
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+,
+
+49 
+__off_t
+ 
+__off£t
+, 
+size_t
+ 
+__bufsize
+è
+__wur
+;
+
+50 
+ssize_t
+ 
+	$__´—d64_chk
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+,
+
+51 
+__off64_t
+ 
+__off£t
+, 
+size_t
+ 
+__bufsize
+è
+__wur
+;
+
+52 
+ssize_t
+ 
+	`__REDIRECT
+ (
+__´—d_®Ÿs
+,
+
+53 (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+,
+
+54 
+__off_t
+ 
+__off£t
+), 
+´—d
+è
+__wur
+;
+
+55 
+ssize_t
+ 
+	`__REDIRECT
+ (
+__´—d64_®Ÿs
+,
+
+56 (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+,
+
+57 
+__off64_t
+ 
+__off£t
+), 
+´—d64
+è
+__wur
+;
+
+58 
+ssize_t
+ 
+	`__REDIRECT
+ (
+__´—d_chk_w¬n
+,
+
+59 (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+,
+
+60 
+__off_t
+ 
+__off£t
+, 
+size_t
+ 
+__bufsize
+), 
+__´—d_chk
+)
+
+61 
+__wur
+ 
+	`__w¬Ç‰r
+ ("pread called with bigger†engthhan size of "
+
+63 
+ssize_t
+ 
+	`__REDIRECT
+ (
+__´—d64_chk_w¬n
+,
+
+64 (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+,
+
+65 
+__off64_t
+ 
+__off£t
+, 
+size_t
+ 
+__bufsize
+),
+
+66 
+__´—d64_chk
+)
+
+67 
+__wur
+ 
+	`__w¬Ç‰r
+ ("pread64 called with bigger†engthhan size of "
+
+70 #iâdeà
+__USE_FILE_OFFSET64
+
+
+71 
+__fÜtify_funùiÚ
+ 
+__wur
+ 
+ssize_t
+
+
+72 
+	$´—d
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+, 
+__off_t
+ 
+__off£t
+)
+
+74 ià(
+	`__bos0
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+76 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__nby‹s
+))
+
+77  
+	`__´—d_chk
+ (
+__fd
+, 
+__buf
+, 
+__nby‹s
+, 
+__off£t
+, 
+	`__bos0
+ (__buf));
+
+79 iàÐ
+__nby‹s
+ > 
+	`__bos0
+ (
+__buf
+))
+
+80  
+	`__´—d_chk_w¬n
+ (
+__fd
+, 
+__buf
+, 
+__nby‹s
+, 
+__off£t
+,
+
+81 
+	`__bos0
+ (
+__buf
+));
+
+83  
+	`__´—d_®Ÿs
+ (
+__fd
+, 
+__buf
+, 
+__nby‹s
+, 
+__off£t
+);
+
+84 
+	}
+}
+
+86 
+__fÜtify_funùiÚ
+ 
+__wur
+ 
+ssize_t
+
+
+87 
+	$´—d
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+, 
+__off64_t
+ 
+__off£t
+)
+
+89 ià(
+	`__bos0
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+91 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__nby‹s
+))
+
+92  
+	`__´—d64_chk
+ (
+__fd
+, 
+__buf
+, 
+__nby‹s
+, 
+__off£t
+, 
+	`__bos0
+ (__buf));
+
+94 iàÐ
+__nby‹s
+ > 
+	`__bos0
+ (
+__buf
+))
+
+95  
+	`__´—d64_chk_w¬n
+ (
+__fd
+, 
+__buf
+, 
+__nby‹s
+, 
+__off£t
+,
+
+96 
+	`__bos0
+ (
+__buf
+));
+
+99  
+	`__´—d64_®Ÿs
+ (
+__fd
+, 
+__buf
+, 
+__nby‹s
+, 
+__off£t
+);
+
+100 
+	}
+}
+
+103 #ifdeà
+__USE_LARGEFILE64
+
+
+104 
+__fÜtify_funùiÚ
+ 
+__wur
+ 
+ssize_t
+
+
+105 
+	$´—d64
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__nby‹s
+, 
+__off64_t
+ 
+__off£t
+)
+
+107 ià(
+	`__bos0
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+109 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__nby‹s
+))
+
+110  
+	`__´—d64_chk
+ (
+__fd
+, 
+__buf
+, 
+__nby‹s
+, 
+__off£t
+, 
+	`__bos0
+ (__buf));
+
+112 iàÐ
+__nby‹s
+ > 
+	`__bos0
+ (
+__buf
+))
+
+113  
+	`__´—d64_chk_w¬n
+ (
+__fd
+, 
+__buf
+, 
+__nby‹s
+, 
+__off£t
+,
+
+114 
+	`__bos0
+ (
+__buf
+));
+
+117  
+	`__´—d64_®Ÿs
+ (
+__fd
+, 
+__buf
+, 
+__nby‹s
+, 
+__off£t
+);
+
+118 
+	}
+}
+
+122 #ià
+defšed
+ 
+__USE_XOPEN_EXTENDED
+ || defšed 
+__USE_XOPEN2K
+
+
+123 
+ssize_t
+ 
+	$__»adlšk_chk
+ (cÚ¡ *
+__»¡riù
+ 
+__·th
+,
+
+124 *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__Ën
+,
+
+125 
+size_t
+ 
+__buæ’
+)
+
+126 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2)è
+__wur
+;
+
+127 
+ssize_t
+ 
+	`__REDIRECT_NTH
+ (
+__»adlšk_®Ÿs
+,
+
+128 (cÚ¡ *
+__»¡riù
+ 
+__·th
+,
+
+129 *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__Ën
+), 
+»adlšk
+)
+
+130 
+	`__nÚnuÎ
+ ((1, 2)è
+__wur
+;
+
+131 
+ssize_t
+ 
+	`__REDIRECT_NTH
+ (
+__»adlšk_chk_w¬n
+,
+
+132 (cÚ¡ *
+__»¡riù
+ 
+__·th
+,
+
+133 *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__Ën
+,
+
+134 
+size_t
+ 
+__buæ’
+), 
+__»adlšk_chk
+)
+
+135 
+	`__nÚnuÎ
+ ((1, 2)è
+__wur
+ 
+	`__w¬Ç‰r
+ ("readlink called with bigger†ength "
+
+138 
+__fÜtify_funùiÚ
+ 
+	`__nÚnuÎ
+ ((1, 2)è
+__wur
+ 
+ssize_t
+
+
+139 
+	`__NTH
+ (
+	$»adlšk
+ (cÚ¡ *
+__»¡riù
+ 
+__·th
+, *__»¡riù 
+__buf
+,
+
+140 
+size_t
+ 
+__Ën
+))
+
+142 ià(
+	`__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+144 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__Ën
+))
+
+145  
+	`__»adlšk_chk
+ (
+__·th
+, 
+__buf
+, 
+__Ën
+, 
+	`__bos
+ (__buf));
+
+147 iàÐ
+__Ën
+ > 
+	`__bos
+ (
+__buf
+))
+
+148  
+	`__»adlšk_chk_w¬n
+ (
+__·th
+, 
+__buf
+, 
+__Ën
+, 
+	`__bos
+ (__buf));
+
+150  
+	`__»adlšk_®Ÿs
+ (
+__·th
+, 
+__buf
+, 
+__Ën
+);
+
+151 
+	}
+}
+
+154 #ifdeà
+__USE_ATFILE
+
+
+155 
+ssize_t
+ 
+	$__»adlšk©_chk
+ (
+__fd
+, cÚ¡ *
+__»¡riù
+ 
+__·th
+,
+
+156 *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__Ën
+,
+
+157 
+size_t
+ 
+__buæ’
+)
+
+158 
+__THROW
+ 
+	`__nÚnuÎ
+ ((2, 3)è
+__wur
+;
+
+159 
+ssize_t
+ 
+	`__REDIRECT_NTH
+ (
+__»adlšk©_®Ÿs
+,
+
+160 (
+__fd
+, cÚ¡ *
+__»¡riù
+ 
+__·th
+,
+
+161 *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__Ën
+),
+
+162 
+»adlšk©
+)
+
+163 
+	`__nÚnuÎ
+ ((2, 3)è
+__wur
+;
+
+164 
+ssize_t
+ 
+	`__REDIRECT_NTH
+ (
+__»adlšk©_chk_w¬n
+,
+
+165 (
+__fd
+, cÚ¡ *
+__»¡riù
+ 
+__·th
+,
+
+166 *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__Ën
+,
+
+167 
+size_t
+ 
+__buæ’
+), 
+__»adlšk©_chk
+)
+
+168 
+	`__nÚnuÎ
+ ((2, 3)è
+__wur
+ 
+	`__w¬Ç‰r
+ ("readlinkat called with bigger "
+
+172 
+__fÜtify_funùiÚ
+ 
+	`__nÚnuÎ
+ ((2, 3)è
+__wur
+ 
+ssize_t
+
+
+173 
+	`__NTH
+ (
+	$»adlšk©
+ (
+__fd
+, cÚ¡ *
+__»¡riù
+ 
+__·th
+,
+
+174 *
+__»¡riù
+ 
+__buf
+, 
+size_t
+ 
+__Ën
+))
+
+176 ià(
+	`__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+178 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__Ën
+))
+
+179  
+	`__»adlšk©_chk
+ (
+__fd
+, 
+__·th
+, 
+__buf
+, 
+__Ën
+, 
+	`__bos
+ (__buf));
+
+181 ià(
+__Ën
+ > 
+	`__bos
+ (
+__buf
+))
+
+182  
+	`__»adlšk©_chk_w¬n
+ (
+__fd
+, 
+__·th
+, 
+__buf
+, 
+__Ën
+,
+
+183 
+	`__bos
+ (
+__buf
+));
+
+185  
+	`__»adlšk©_®Ÿs
+ (
+__fd
+, 
+__·th
+, 
+__buf
+, 
+__Ën
+);
+
+186 
+	}
+}
+
+189 
*
+	$__g‘cwd_chk
+ (*
+__buf
+, 
+size_t
+ 
+__size
+, size_ˆ
+__buæ’
+)
+
+190 
+__THROW
+ 
+__wur
+;
+
+191 
*
+	`__REDIRECT_NTH
+ (
+__g‘cwd_®Ÿs
+,
+
+192 (*
+__buf
+, 
+size_t
+ 
+__size
+), 
+g‘cwd
+è
+__wur
+;
+
+193 
*
+	`__REDIRECT_NTH
+ (
+__g‘cwd_chk_w¬n
+,
+
+194 (*
+__buf
+, 
+size_t
+ 
+__size
+, size_ˆ
+__buæ’
+),
+
+195 
+__g‘cwd_chk
+)
+
+196 
+__wur
+ 
+	`__w¬Ç‰r
+ ("getcwd caller with bigger†engthhan size of "
+
+199 
+__fÜtify_funùiÚ
+ 
+__wur
+ *
+
+200 
+	`__NTH
+ (
+	$g‘cwd
+ (*
+__buf
+, 
+size_t
+ 
+__size
+))
+
+202 ià(
+	`__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+204 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__size
+))
+
+205  
+	`__g‘cwd_chk
+ (
+__buf
+, 
+__size
+, 
+	`__bos
+ (__buf));
+
+207 ià(
+__size
+ > 
+	`__bos
+ (
+__buf
+))
+
+208  
+	`__g‘cwd_chk_w¬n
+ (
+__buf
+, 
+__size
+, 
+	`__bos
+ (__buf));
+
+210  
+	`__g‘cwd_®Ÿs
+ (
+__buf
+, 
+__size
+);
+
+211 
+	}
+}
+
+213 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_XOPEN_EXTENDED
+
+
+214 
*
+	$__g‘wd_chk
+ (*
+__buf
+, 
+size_t
+ 
+buæ’
+)
+
+215 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+216 
*
+	`__REDIRECT_NTH
+ (
+__g‘wd_w¬n
+, (*
+__buf
+), 
+g‘wd
+)
+
+217 
+	`__nÚnuÎ
+ ((1)è
+__wur
+ 
+	`__w¬Ç‰r
+ ("please use getcwd instead,‡s getwd "
+
+220 
+__fÜtify_funùiÚ
+ 
+	`__nÚnuÎ
+ ((1)è
+__©Œibu‹_d•»ÿ‹d__
+ 
+__wur
+ *
+
+221 
+	`__NTH
+ (
+	$g‘wd
+ (*
+__buf
+))
+
+223 ià(
+	`__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+224  
+	`__g‘wd_chk
+ (
+__buf
+, 
+	`__bos
+ (__buf));
+
+225  
+	`__g‘wd_w¬n
+ (
+__buf
+);
+
+226 
+	}
+}
+
+229 
+size_t
+ 
+	$__cÚf¡r_chk
+ (
+__Çme
+, *
+__buf
+, 
+size_t
+ 
+__Ën
+,
+
+230 
+size_t
+ 
+__buæ’
+è
+__THROW
+;
+
+231 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__cÚf¡r_®Ÿs
+, (
+__Çme
+, *
+__buf
+,
+
+232 
+size_t
+ 
+__Ën
+), 
+cÚf¡r
+);
+
+233 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__cÚf¡r_chk_w¬n
+,
+
+234 (
+__Çme
+, *
+__buf
+, 
+size_t
+ 
+__Ën
+,
+
+235 
+size_t
+ 
+__buæ’
+), 
+__cÚf¡r_chk
+)
+
+236 
+	`__w¬Ç‰r
+ ("confstr called with bigger†engthhan size of destination "
+
+239 
+__fÜtify_funùiÚ
+ 
+size_t
+
+
+240 
+	`__NTH
+ (
+	$cÚf¡r
+ (
+__Çme
+, *
+__buf
+, 
+size_t
+ 
+__Ën
+))
+
+242 ià(
+	`__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+244 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__Ën
+))
+
+245  
+	`__cÚf¡r_chk
+ (
+__Çme
+, 
+__buf
+, 
+__Ën
+, 
+	`__bos
+ (__buf));
+
+247 ià(
+	`__bos
+ (
+__buf
+è< 
+__Ën
+)
+
+248  
+	`__cÚf¡r_chk_w¬n
+ (
+__Çme
+, 
+__buf
+, 
+__Ën
+, 
+	`__bos
+ (__buf));
+
+250  
+	`__cÚf¡r_®Ÿs
+ (
+__Çme
+, 
+__buf
+, 
+__Ën
+);
+
+251 
+	}
+}
+
+254 

+	$__g‘groups_chk
+ (
+__size
+, 
+__gid_t
+ 
+__li¡
+[], 
+size_t
+ 
+__li¡Ën
+)
+
+255 
+__THROW
+ 
+__wur
+;
+
+256 

+	`__REDIRECT_NTH
+ (
+__g‘groups_®Ÿs
+, (
+__size
+, 
+__gid_t
+ 
+__li¡
+[]),
+
+257 
+g‘groups
+è
+__wur
+;
+
+258 

+	`__REDIRECT_NTH
+ (
+__g‘groups_chk_w¬n
+,
+
+259 (
+__size
+, 
+__gid_t
+ 
+__li¡
+[], 
+size_t
+ 
+__li¡Ën
+),
+
+260 
+__g‘groups_chk
+)
+
+261 
+__wur
+ 
+	`__w¬Ç‰r
+ ("getgroups called with bigger group counthan what "
+
+264 
+__fÜtify_funùiÚ
+ 
+
+265 
+	`__NTH
+ (
+	$g‘groups
+ (
+__size
+, 
+__gid_t
+ 
+__li¡
+[]))
+
+267 ià(
+	`__bos
+ (
+__li¡
+è!ð(
+size_t
+) -1)
+
+269 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__size
+) || __size < 0)
+
+270  
+	`__g‘groups_chk
+ (
+__size
+, 
+__li¡
+, 
+	`__bos
+ (__list));
+
+272 ià(
+__size
+ *  (
+__gid_t
+è> 
+	`__bos
+ (
+__li¡
+))
+
+273  
+	`__g‘groups_chk_w¬n
+ (
+__size
+, 
+__li¡
+, 
+	`__bos
+ (__list));
+
+275  
+	`__g‘groups_®Ÿs
+ (
+__size
+, 
+__li¡
+);
+
+276 
+	}
+}
+
+279 

+	$__‰yÇme_r_chk
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__buæ’
+,
+
+280 
+size_t
+ 
+__ėl
+è
+__THROW
+ 
+	`__nÚnuÎ
+ ((2));
+
+281 

+	`__REDIRECT_NTH
+ (
+__‰yÇme_r_®Ÿs
+, (
+__fd
+, *
+__buf
+,
+
+282 
+size_t
+ 
+__buæ’
+), 
+‰yÇme_r
+)
+
+283 
+	`__nÚnuÎ
+ ((2));
+
+284 

+	`__REDIRECT_NTH
+ (
+__‰yÇme_r_chk_w¬n
+,
+
+285 (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__buæ’
+,
+
+286 
+size_t
+ 
+__ėl
+), 
+__‰yÇme_r_chk
+)
+
+287 
+	`__nÚnuÎ
+ ((2)è
+	`__w¬Ç‰r
+ ("ttyname_r called with bigger buflenhan "
+
+290 
+__fÜtify_funùiÚ
+ 
+
+291 
+	`__NTH
+ (
+	$‰yÇme_r
+ (
+__fd
+, *
+__buf
+, 
+size_t
+ 
+__buæ’
+))
+
+293 ià(
+	`__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+295 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__buæ’
+))
+
+296  
+	`__‰yÇme_r_chk
+ (
+__fd
+, 
+__buf
+, 
+__buæ’
+, 
+	`__bos
+ (__buf));
+
+298 ià(
+__buæ’
+ > 
+	`__bos
+ (
+__buf
+))
+
+299  
+	`__‰yÇme_r_chk_w¬n
+ (
+__fd
+, 
+__buf
+, 
+__buæ’
+, 
+	`__bos
+ (__buf));
+
+301  
+	`__‰yÇme_r_®Ÿs
+ (
+__fd
+, 
+__buf
+, 
+__buæ’
+);
+
+302 
+	}
+}
+
+305 #ià
+defšed
+ 
+__USE_REENTRANT
+ || defšed 
+__USE_POSIX199506
+
+
+306 

+	$__g‘logš_r_chk
+ (*
+__buf
+, 
+size_t
+ 
+__buæ’
+, size_ˆ
+__ėl
+)
+
+307 
+	`__nÚnuÎ
+ ((1));
+
+308 

+	`__REDIRECT
+ (
+__g‘logš_r_®Ÿs
+, (*
+__buf
+, 
+size_t
+ 
+__buæ’
+),
+
+309 
+g‘logš_r
+è
+	`__nÚnuÎ
+ ((1));
+
+310 

+	`__REDIRECT
+ (
+__g‘logš_r_chk_w¬n
+,
+
+311 (*
+__buf
+, 
+size_t
+ 
+__buæ’
+, size_ˆ
+__ėl
+),
+
+312 
+__g‘logš_r_chk
+)
+
+313 
+	`__nÚnuÎ
+ ((1)è
+	`__w¬Ç‰r
+ ("getlogin_r called with bigger buflenhan "
+
+316 
+__fÜtify_funùiÚ
+ 
+
+317 
+	$g‘logš_r
+ (*
+__buf
+, 
+size_t
+ 
+__buæ’
+)
+
+319 ià(
+	`__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+321 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__buæ’
+))
+
+322  
+	`__g‘logš_r_chk
+ (
+__buf
+, 
+__buæ’
+, 
+	`__bos
+ (__buf));
+
+324 ià(
+__buæ’
+ > 
+	`__bos
+ (
+__buf
+))
+
+325  
+	`__g‘logš_r_chk_w¬n
+ (
+__buf
+, 
+__buæ’
+, 
+	`__bos
+ (__buf));
+
+327  
+	`__g‘logš_r_®Ÿs
+ (
+__buf
+, 
+__buæ’
+);
+
+328 
+	}
+}
+
+332 #ià
+defšed
+ 
+__USE_MISC
+ || defšed 
+__USE_UNIX98
+
+
+333 

+	$__g‘ho¡Çme_chk
+ (*
+__buf
+, 
+size_t
+ 
+__buæ’
+, size_ˆ
+__ėl
+)
+
+334 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1));
+
+335 

+	`__REDIRECT_NTH
+ (
+__g‘ho¡Çme_®Ÿs
+, (*
+__buf
+, 
+size_t
+ 
+__buæ’
+),
+
+336 
+g‘ho¡Çme
+è
+	`__nÚnuÎ
+ ((1));
+
+337 

+	`__REDIRECT_NTH
+ (
+__g‘ho¡Çme_chk_w¬n
+,
+
+338 (*
+__buf
+, 
+size_t
+ 
+__buæ’
+, size_ˆ
+__ėl
+),
+
+339 
+__g‘ho¡Çme_chk
+)
+
+340 
+	`__nÚnuÎ
+ ((1)è
+	`__w¬Ç‰r
+ ("gethostname called with bigger buflenhan "
+
+343 
+__fÜtify_funùiÚ
+ 
+
+344 
+	`__NTH
+ (
+	$g‘ho¡Çme
+ (*
+__buf
+, 
+size_t
+ 
+__buæ’
+))
+
+346 ià(
+	`__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+348 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__buæ’
+))
+
+349  
+	`__g‘ho¡Çme_chk
+ (
+__buf
+, 
+__buæ’
+, 
+	`__bos
+ (__buf));
+
+351 ià(
+__buæ’
+ > 
+	`__bos
+ (
+__buf
+))
+
+352  
+	`__g‘ho¡Çme_chk_w¬n
+ (
+__buf
+, 
+__buæ’
+, 
+	`__bos
+ (__buf));
+
+354  
+	`__g‘ho¡Çme_®Ÿs
+ (
+__buf
+, 
+__buæ’
+);
+
+355 
+	}
+}
+
+359 #ià
+defšed
+ 
+__USE_MISC
+ || (defšed 
+__USE_XOPEN
+ && !defšed 
+__USE_UNIX98
+)
+
+360 

+	$__g‘domašÇme_chk
+ (*
+__buf
+, 
+size_t
+ 
+__buæ’
+, size_ˆ
+__ėl
+)
+
+361 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+362 

+	`__REDIRECT_NTH
+ (
+__g‘domašÇme_®Ÿs
+, (*
+__buf
+,
+
+363 
+size_t
+ 
+__buæ’
+),
+
+364 
+g‘domašÇme
+è
+	`__nÚnuÎ
+ ((1)è
+__wur
+;
+
+365 

+	`__REDIRECT_NTH
+ (
+__g‘domašÇme_chk_w¬n
+,
+
+366 (*
+__buf
+, 
+size_t
+ 
+__buæ’
+, size_ˆ
+__ėl
+),
+
+367 
+__g‘domašÇme_chk
+)
+
+368 
+	`__nÚnuÎ
+ ((1)è
+__wur
+ 
+	`__w¬Ç‰r
+ ("getdomainname called with bigger "
+
+372 
+__fÜtify_funùiÚ
+ 
+
+373 
+	`__NTH
+ (
+	$g‘domašÇme
+ (*
+__buf
+, 
+size_t
+ 
+__buæ’
+))
+
+375 ià(
+	`__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+377 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__buæ’
+))
+
+378  
+	`__g‘domašÇme_chk
+ (
+__buf
+, 
+__buæ’
+, 
+	`__bos
+ (__buf));
+
+380 ià(
+__buæ’
+ > 
+	`__bos
+ (
+__buf
+))
+
+381  
+	`__g‘domašÇme_chk_w¬n
+ (
+__buf
+, 
+__buæ’
+, 
+	`__bos
+ (__buf));
+
+383  
+	`__g‘domašÇme_®Ÿs
+ (
+__buf
+, 
+__buæ’
+);
+
+384 
+	}
+}
+
+	@/usr/include/bits/waitflags.h
+
+19 #ià!
+defšed
+ 
+_SYS_WAIT_H
+ && !defšed 
+_STDLIB_H
+
+
+25 
+	#WNOHANG
+ 1
+
+	)
+
+26 
+	#WUNTRACED
+ 2
+
+	)
+
+29 
+	#WSTOPPED
+ 2
+
+	)
+
+30 
+	#WEXITED
+ 4
+
+	)
+
+31 
+	#WCONTINUED
+ 8
+
+	)
+
+32 
+	#WNOWAIT
+ 0x01000000
+
+	)
+
+34 
+	#__WNOTHREAD
+ 0x20000000
+
+	)
+
+36 
+	#__WALL
+ 0x40000000
+
+	)
+
+37 
+	#__WCLONE
+ 0x80000000
+
+	)
+
+40 #ià
+defšed
+ 
+__USE_XOPEN
+ || defšed 
+__USE_XOPEN2K8
+
+
+41 #iâdeà
+__ENUM_IDTYPE_T
+
+
+42 
+	#__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šed
+ 
+_SYS_WAIT_H
+ && !defšed 
+_STDLIB_H
+
+
+28 
+	#__WEXITSTATUS
+(
+¡©us
+è(((¡©usè& 0xff00è>> 8)
+
+	)
+
+31 
+	#__WTERMSIG
+(
+¡©us
+è((¡©usè& 0x7f)
+
+	)
+
+34 
+	#__WSTOPSIG
+(
+¡©us
+è
+	`__WEXITSTATUS
+(¡©us)
+
+	)
+
+37 
+	#__WIFEXITED
+(
+¡©us
+è(
+	`__WTERMSIG
+(¡©usè=ð0)
+
+	)
+
+40 
+	#__WIFSIGNALED
+(
+¡©us
+) \
+
+41 (((sigÃd è(((
+¡©us
+è& 0x7fè+ 1è>> 1è> 0)
+
+	)
+
+44 
+	#__WIFSTOPPED
+(
+¡©us
+è(((¡©usè& 0xffè=ð0x7f)
+
+	)
+
+48 #ifdeà
+WCONTINUED
+
+
+49 
+	#__WIFCONTINUED
+(
+¡©us
+è((¡©usè=ð
+__W_CONTINUED
+)
+
+	)
+
+53 
+	#__WCOREDUMP
+(
+¡©us
+è((¡©usè& 
+__WCOREFLAG
+)
+
+	)
+
+56 
+	#__W_EXITCODE
+(
+»t
+, 
+sig
+è(ԑè<< 8 | (sig))
+
+	)
+
+57 
+	#__W_STOPCODE
+(
+sig
+è((sigè<< 8 | 0x7f)
+
+	)
+
+58 
+	#__W_CONTINUED
+ 0xffff
+
+	)
+
+59 
+	#__WCOREFLAG
+ 0x80
+
+	)
+
+62 #ifdef 
+__USE_MISC
+
+
+64 
+	~<’dŸn.h
+>
+
+66 
+	uwa™
+
+
+68 
+	mw_¡©us
+;
+
+71 #if 
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+72 
+	m__w_‹rmsig
+:7;
+
+73 
+	m__w_cÜedump
+:1;
+
+74 
+	m__w_»tcode
+:8;
+
+77 #if 
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+79 
+	m__w_»tcode
+:8;
+
+80 
+	m__w_cÜedump
+:1;
+
+81 
+	m__w_‹rmsig
+:7;
+
+83 } 
+	m__wa™_‹rmš©ed
+;
+
+86 #if 
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+87 
+	m__w_¡Ýv®
+:8;
+
+88 
+	m__w_¡Ýsig
+:8;
+
+91 #if 
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+93 
+	m__w_¡Ýsig
+:8;
+
+94 
+	m__w_¡Ýv®
+:8;
+
+96 } 
+	m__wa™_¡Ý³d
+;
+
+99 
+	#w_‹rmsig
+ 
+__wa™_‹rmš©ed
+.
+__w_‹rmsig
+
+
+	)
+
+100 
+	#w_cÜedump
+ 
+__wa™_‹rmš©ed
+.
+__w_cÜedump
+
+
+	)
+
+101 
+	#w_»tcode
+ 
+__wa™_‹rmš©ed
+.
+__w_»tcode
+
+
+	)
+
+102 
+	#w_¡Ýsig
+ 
+__wa™_¡Ý³d
+.
+__w_¡Ýsig
+
+
+	)
+
+103 
+	#w_¡Ýv®
+ 
+__wa™_¡Ý³d
+.
+__w_¡Ýv®
+
+
+	)
+
+	@/usr/include/bits/wchar.h
+
+19 #iâdeà
+_BITS_WCHAR_H
+
+
+20 
+	#_BITS_WCHAR_H
+ 1
+
+	)
+
+33 #ifdeà
+__WCHAR_MAX__
+
+
+34 
+	#__WCHAR_MAX
+ 
+__WCHAR_MAX__
+
+
+	)
+
+35 #–ià
+L
+'\0' - 1 > 0
+
+36 
+	#__WCHAR_MAX
+ (0xffffffffu + 
+L
+'\0')
+
+	)
+
+38 
+	#__WCHAR_MAX
+ (0x7ffffffà+ 
+L
+'\0')
+
+	)
+
+41 #ifdeà
+__WCHAR_MIN__
+
+
+42 
+	#__WCHAR_MIN
+ 
+__WCHAR_MIN__
+
+
+	)
+
+43 #–ià
+L
+'\0' - 1 > 0
+
+44 
+	#__WCHAR_MIN
+ (
+L
+'\0' + 0)
+
+	)
+
+46 
+	#__WCHAR_MIN
+ (-
+__WCHAR_MAX
+ - 1)
+
+	)
+
+	@/usr/include/bits/wordsize.h
+
+3 #ià
+defšed
+ 
+__x86_64__
+ && !defšed 
+__ILP32__
+
+
+4 
+	#__WORDSIZE
+ 64
+
+	)
+
+6 
+	#__WORDSIZE
+ 32
+
+	)
+
+9 #ifdeà
+__x86_64__
+
+
+10 
+	#__WORDSIZE_TIME64_COMPAT32
+ 1
+
+	)
+
+12 
+	#__SYSCALL_WORDSIZE
+ 64
+
+	)
+
+	@/usr/include/endian.h
+
+18 #iâdef 
+_ENDIAN_H
+
+
+19 
+	#_ENDIAN_H
+ 1
+
+	)
+
+21 
+	~<ã©u»s.h
+>
+
+31 
+	#__LITTLE_ENDIAN
+ 1234
+
+	)
+
+32 
+	#__BIG_ENDIAN
+ 4321
+
+	)
+
+33 
+	#__PDP_ENDIAN
+ 3412
+
+	)
+
+36 
+	~<b™s/’dŸn.h
+>
+
+40 #iâdeà
+__FLOAT_WORD_ORDER
+
+
+41 
+	#__FLOAT_WORD_ORDER
+ 
+__BYTE_ORDER
+
+
+	)
+
+44 #ifdef 
+__USE_MISC
+
+
+45 
+	#LITTLE_ENDIAN
+ 
+__LITTLE_ENDIAN
+
+
+	)
+
+46 
+	#BIG_ENDIAN
+ 
+__BIG_ENDIAN
+
+
+	)
+
+47 
+	#PDP_ENDIAN
+ 
+__PDP_ENDIAN
+
+
+	)
+
+48 
+	#BYTE_ORDER
+ 
+__BYTE_ORDER
+
+
+	)
+
+51 #ià
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+52 
+	#__LONG_LONG_PAIR
+(
+HI
+, 
+LO
+èLO, 
+	)
+HI
+
+53 #–ià
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+54 
+	#__LONG_LONG_PAIR
+(
+HI
+, 
+LO
+èHI, 
+	)
+LO
+
+58 #ià
+defšed
+ 
+__USE_MISC
+ && !defšed 
+__ASSEMBLER__
+
+
+60 
+	~<b™s/by‹sw­.h
+>
+
+62 #ià
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+63 
+	#htobe16
+(
+x
+è
+	`__bsw­_16
+ (x)
+
+	)
+
+64 
+	#htÞe16
+(
+x
+è(x)
+
+	)
+
+65 
+	#be16toh
+(
+x
+è
+	`__bsw­_16
+ (x)
+
+	)
+
+66 
+	#Ë16toh
+(
+x
+è(x)
+
+	)
+
+68 
+	#htobe32
+(
+x
+è
+	`__bsw­_32
+ (x)
+
+	)
+
+69 
+	#htÞe32
+(
+x
+è(x)
+
+	)
+
+70 
+	#be32toh
+(
+x
+è
+	`__bsw­_32
+ (x)
+
+	)
+
+71 
+	#Ë32toh
+(
+x
+è(x)
+
+	)
+
+73 
+	#htobe64
+(
+x
+è
+	`__bsw­_64
+ (x)
+
+	)
+
+74 
+	#htÞe64
+(
+x
+è(x)
+
+	)
+
+75 
+	#be64toh
+(
+x
+è
+	`__bsw­_64
+ (x)
+
+	)
+
+76 
+	#Ë64toh
+(
+x
+è(x)
+
+	)
+
+79 
+	#htobe16
+(
+x
+è(x)
+
+	)
+
+80 
+	#htÞe16
+(
+x
+è
+	`__bsw­_16
+ (x)
+
+	)
+
+81 
+	#be16toh
+(
+x
+è(x)
+
+	)
+
+82 
+	#Ë16toh
+(
+x
+è
+	`__bsw­_16
+ (x)
+
+	)
+
+84 
+	#htobe32
+(
+x
+è(x)
+
+	)
+
+85 
+	#htÞe32
+(
+x
+è
+	`__bsw­_32
+ (x)
+
+	)
+
+86 
+	#be32toh
+(
+x
+è(x)
+
+	)
+
+87 
+	#Ë32toh
+(
+x
+è
+	`__bsw­_32
+ (x)
+
+	)
+
+89 
+	#htobe64
+(
+x
+è(x)
+
+	)
+
+90 
+	#htÞe64
+(
+x
+è
+	`__bsw­_64
+ (x)
+
+	)
+
+91 
+	#be64toh
+(
+x
+è(x)
+
+	)
+
+92 
+	#Ë64toh
+(
+x
+è
+	`__bsw­_64
+ (x)
+
+	)
+
+	@/usr/include/features.h
+
+18 #iâdef 
+_FEATURES_H
+
+
+19 
+	#_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 
+	#__KERNEL_STRICT_NAMES
+
+
+	)
+
+135 #ià
+defšed
+ 
+__GNUC__
+ && defšed 
+__GNUC_MINOR__
+
+
+136 
+	#__GNUC_PREREQ
+(
+maj
+, 
+mš
+) \
+
+137 ((
+__GNUC__
+ << 16è+ 
+__GNUC_MINOR__
+ >ð((
+maj
+è<< 16è+ (
+mš
+))
+
+	)
+
+139 
+	#__GNUC_PREREQ
+(
+maj
+, 
+mš
+è0
+
+	)
+
+146 #ià(
+defšed
+ 
+_BSD_SOURCE
+ || defšed 
+_SVID_SOURCE
+) \
+
+147 && !
+defšed
+ 
+	g_DEFAULT_SOURCE
+
+
+152 #undeà
+_DEFAULT_SOURCE
+
+
+153 
+	#_DEFAULT_SOURCE
+ 1
+
+	)
+
+157 #ifdeà
+_GNU_SOURCE
+
+
+158 #undeà
+_ISOC95_SOURCE
+
+
+159 
+	#_ISOC95_SOURCE
+ 1
+
+	)
+
+160 #undeà
+_ISOC99_SOURCE
+
+
+161 
+	#_ISOC99_SOURCE
+ 1
+
+	)
+
+162 #undeà
+_ISOC11_SOURCE
+
+
+163 
+	#_ISOC11_SOURCE
+ 1
+
+	)
+
+164 #undeà
+_POSIX_SOURCE
+
+
+165 
+	#_POSIX_SOURCE
+ 1
+
+	)
+
+166 #undeà
+_POSIX_C_SOURCE
+
+
+167 
+	#_POSIX_C_SOURCE
+ 200809L
+
+	)
+
+168 #undeà
+_XOPEN_SOURCE
+
+
+169 
+	#_XOPEN_SOURCE
+ 700
+
+	)
+
+170 #undeà
+_XOPEN_SOURCE_EXTENDED
+
+
+171 
+	#_XOPEN_SOURCE_EXTENDED
+ 1
+
+	)
+
+172 #undeà
+_LARGEFILE64_SOURCE
+
+
+173 
+	#_LARGEFILE64_SOURCE
+ 1
+
+	)
+
+174 #undeà
+_DEFAULT_SOURCE
+
+
+175 
+	#_DEFAULT_SOURCE
+ 1
+
+	)
+
+176 #undeà
+_ATFILE_SOURCE
+
+
+177 
+	#_ATFILE_SOURCE
+ 1
+
+	)
+
+182 #ià(
+defšed
+ 
+_DEFAULT_SOURCE
+ \
+
+183 || (!
+defšed
+ 
+	g__STRICT_ANSI__
+ \
+
+184 && !
+defšed
+ 
+	g_ISOC99_SOURCE
+ \
+
+185 && !
+defšed
+ 
+	g_POSIX_SOURCE
+ && !defšed 
+	g_POSIX_C_SOURCE
+ \
+
+186 && !
+defšed
+ 
+	g_XOPEN_SOURCE
+))
+
+187 #undeà
+_DEFAULT_SOURCE
+
+
+188 
+	#_DEFAULT_SOURCE
+ 1
+
+	)
+
+192 #ià(
+defšed
+ 
+_ISOC11_SOURCE
+ \
+
+193 || (
+defšed
+ 
+	g__STDC_VERSION__
+ && __STDC_VERSION__ >= 201112L))
+
+194 
+	#__USE_ISOC11
+ 1
+
+	)
+
+198 #ià(
+defšed
+ 
+_ISOC99_SOURCE
+ || defšed 
+_ISOC11_SOURCE
+ \
+
+199 || (
+defšed
+ 
+__STDC_VERSION__
+ && __STDC_VERSION__ >= 199901L))
+
+200 
+	#__USE_ISOC99
+ 1
+
+	)
+
+204 #ià(
+defšed
+ 
+_ISOC99_SOURCE
+ || defšed 
+_ISOC11_SOURCE
+ \
+
+205 || (
+defšed
+ 
+__STDC_VERSION__
+ && __STDC_VERSION__ >= 199409L))
+
+206 
+	#__USE_ISOC95
+ 1
+
+	)
+
+213 #ià((
+defšed
+ 
+__ýlu¥lus
+ && __cplusplus >= 201103L) \
+
+214 || 
+defšed
+ 
+__GXX_EXPERIMENTAL_CXX0X__
+)
+
+215 
+	#__USE_ISOCXX11
+ 1
+
+	)
+
+221 #ifdeà
+_DEFAULT_SOURCE
+
+
+222 #ià!
+defšed
+ 
+_POSIX_SOURCE
+ && !defšed 
+_POSIX_C_SOURCE
+
+
+223 
+	#__USE_POSIX_IMPLICITLY
+ 1
+
+	)
+
+225 #undeà
+_POSIX_SOURCE
+
+
+226 
+	#_POSIX_SOURCE
+ 1
+
+	)
+
+227 #undeà
+_POSIX_C_SOURCE
+
+
+228 
+	#_POSIX_C_SOURCE
+ 200809L
+
+	)
+
+230 #ià((!
+defšed
+ 
+__STRICT_ANSI__
+ \
+
+231 || (
+defšed
+ 
+_XOPEN_SOURCE
+ && (_XOPEN_SOURCE - 0) >= 500)) \
+
+232 && !
+defšed
+ 
+_POSIX_SOURCE
+ && !defšed 
+_POSIX_C_SOURCE
+)
+
+233 
+	#_POSIX_SOURCE
+ 1
+
+	)
+
+234 #ià
+defšed
+ 
+_XOPEN_SOURCE
+ && (_XOPEN_SOURCE - 0) < 500
+
+235 
+	#_POSIX_C_SOURCE
+ 2
+
+	)
+
+236 #–ià
+defšed
+ 
+_XOPEN_SOURCE
+ && (_XOPEN_SOURCE - 0) < 600
+
+237 
+	#_POSIX_C_SOURCE
+ 199506L
+
+	)
+
+238 #–ià
+defšed
+ 
+_XOPEN_SOURCE
+ && (_XOPEN_SOURCE - 0) < 700
+
+239 
+	#_POSIX_C_SOURCE
+ 200112L
+
+	)
+
+241 
+	#_POSIX_C_SOURCE
+ 200809L
+
+	)
+
+243 
+	#__USE_POSIX_IMPLICITLY
+ 1
+
+	)
+
+246 #ià(
+defšed
+ 
+_POSIX_SOURCE
+ \
+
+247 || (
+defšed
+ 
+_POSIX_C_SOURCE
+ && _POSIX_C_SOURCE >= 1) \
+
+248 || 
+defšed
+ 
+_XOPEN_SOURCE
+)
+
+249 
+	#__USE_POSIX
+ 1
+
+	)
+
+252 #ià
+defšed
+ 
+_POSIX_C_SOURCE
+ && _POSIX_C_SOURCE >ð2 || defšed 
+_XOPEN_SOURCE
+
+
+253 
+	#__USE_POSIX2
+ 1
+
+	)
+
+256 #ià
+defšed
+ 
+_POSIX_C_SOURCE
+ && (_POSIX_C_SOURCE - 0) >= 199309L
+
+257 
+	#__USE_POSIX199309
+ 1
+
+	)
+
+260 #ià
+defšed
+ 
+_POSIX_C_SOURCE
+ && (_POSIX_C_SOURCE - 0) >= 199506L
+
+261 
+	#__USE_POSIX199506
+ 1
+
+	)
+
+264 #ià
+defšed
+ 
+_POSIX_C_SOURCE
+ && (_POSIX_C_SOURCE - 0) >= 200112L
+
+265 
+	#__USE_XOPEN2K
+ 1
+
+	)
+
+266 #undeà
+__USE_ISOC95
+
+
+267 
+	#__USE_ISOC95
+ 1
+
+	)
+
+268 #undeà
+__USE_ISOC99
+
+
+269 
+	#__USE_ISOC99
+ 1
+
+	)
+
+272 #ià
+defšed
+ 
+_POSIX_C_SOURCE
+ && (_POSIX_C_SOURCE - 0) >= 200809L
+
+273 
+	#__USE_XOPEN2K8
+ 1
+
+	)
+
+274 #undeà
+_ATFILE_SOURCE
+
+
+275 
+	#_ATFILE_SOURCE
+ 1
+
+	)
+
+278 #ifdef 
+_XOPEN_SOURCE
+
+
+279 
+	#__USE_XOPEN
+ 1
+
+	)
+
+280 #ià(
+_XOPEN_SOURCE
+ - 0) >= 500
+
+281 
+	#__USE_XOPEN_EXTENDED
+ 1
+
+	)
+
+282 
+	#__USE_UNIX98
+ 1
+
+	)
+
+283 #undeà
+_LARGEFILE_SOURCE
+
+
+284 
+	#_LARGEFILE_SOURCE
+ 1
+
+	)
+
+285 #ià(
+_XOPEN_SOURCE
+ - 0) >= 600
+
+286 #ià(
+_XOPEN_SOURCE
+ - 0) >= 700
+
+287 
+	#__USE_XOPEN2K8
+ 1
+
+	)
+
+288 
+	#__USE_XOPEN2K8XSI
+ 1
+
+	)
+
+290 
+	#__USE_XOPEN2K
+ 1
+
+	)
+
+291 
+	#__USE_XOPEN2KXSI
+ 1
+
+	)
+
+292 #undeà
+__USE_ISOC95
+
+
+293 
+	#__USE_ISOC95
+ 1
+
+	)
+
+294 #undeà
+__USE_ISOC99
+
+
+295 
+	#__USE_ISOC99
+ 1
+
+	)
+
+298 #ifdeà
+_XOPEN_SOURCE_EXTENDED
+
+
+299 
+	#__USE_XOPEN_EXTENDED
+ 1
+
+	)
+
+304 #ifdeà
+_LARGEFILE_SOURCE
+
+
+305 
+	#__USE_LARGEFILE
+ 1
+
+	)
+
+308 #ifdeà
+_LARGEFILE64_SOURCE
+
+
+309 
+	#__USE_LARGEFILE64
+ 1
+
+	)
+
+312 #ià
+defšed
+ 
+_FILE_OFFSET_BITS
+ && _FILE_OFFSET_BITS == 64
+
+313 
+	#__USE_FILE_OFFSET64
+ 1
+
+	)
+
+316 #ià
+defšed
+ 
+_DEFAULT_SOURCE
+
+
+317 
+	#__USE_MISC
+ 1
+
+	)
+
+320 #ifdef 
+_ATFILE_SOURCE
+
+
+321 
+	#__USE_ATFILE
+ 1
+
+	)
+
+324 #ifdef 
+_GNU_SOURCE
+
+
+325 
+	#__USE_GNU
+ 1
+
+	)
+
+328 #ià
+defšed
+ 
+_REENTRANT
+ || defšed 
+_THREAD_SAFE
+
+
+329 
+	#__USE_REENTRANT
+ 1
+
+	)
+
+332 #ià
+defšed
+ 
+_FORTIFY_SOURCE
+ && _FORTIFY_SOURCE > 0 \
+
+333 && 
+__GNUC_PREREQ
+ (4, 1è&& 
+defšed
+ 
+	g__OPTIMIZE__
+ && __OPTIMIZE__ > 0
+
+334 #ià
+_FORTIFY_SOURCE
+ > 1
+
+335 
+	#__USE_FORTIFY_LEVEL
+ 2
+
+	)
+
+337 
+	#__USE_FORTIFY_LEVEL
+ 1
+
+	)
+
+340 
+	#__USE_FORTIFY_LEVEL
+ 0
+
+	)
+
+345 
+	~<¡dc-´edef.h
+>
+
+353 #undeà
+__GNU_LIBRARY__
+
+
+354 
+	#__GNU_LIBRARY__
+ 6
+
+	)
+
+358 
+	#__GLIBC__
+ 2
+
+	)
+
+359 
+	#__GLIBC_MINOR__
+ 23
+
+	)
+
+361 
+	#__GLIBC_PREREQ
+(
+maj
+, 
+mš
+) \
+
+362 ((
+__GLIBC__
+ << 16è+ 
+__GLIBC_MINOR__
+ >ð((
+maj
+è<< 16è+ (
+mš
+))
+
+	)
+
+365 #iâdeà
+__ASSEMBLER__
+
+
+366 #iâdeà
+_SYS_CDEFS_H
+
+
+367 
+	~<sys/cdefs.h
+>
+
+372 #ià
+defšed
+ 
+__USE_FILE_OFFSET64
+ && !defšed 
+__REDIRECT
+
+
+373 
+	#__USE_LARGEFILE
+ 1
+
+	)
+
+374 
+	#__USE_LARGEFILE64
+ 1
+
+	)
+
+380 #ià
+__GNUC_PREREQ
+ (2, 7è&& 
+defšed
+ 
+__OPTIMIZE__
+ \
+
+381 && !
+defšed
+ 
+	g__OPTIMIZE_SIZE__
+ && !defšed 
+	g__NO_INLINE__
+ \
+
+382 && 
+defšed
+ 
+	g__ex‹º_šlše
+
+
+383 
+	#__USE_EXTERN_INLINES
+ 1
+
+	)
+
+391 
+	~<gnu/¡ubs.h
+>
+
+	@/usr/include/libio.h
+
+28 #iâdeà
+_IO_STDIO_H
+
+
+29 
+	#_IO_STDIO_H
+
+
+	)
+
+31 
+	~<_G_cÚfig.h
+>
+
+33 
+	#_IO_åos_t
+ 
+_G_åos_t
+
+
+	)
+
+34 
+	#_IO_åos64_t
+ 
+_G_åos64_t
+
+
+	)
+
+35 
+	#_IO_size_t
+ 
+size_t
+
+
+	)
+
+36 
+	#_IO_ssize_t
+ 
+__ssize_t
+
+
+	)
+
+37 
+	#_IO_off_t
+ 
+__off_t
+
+
+	)
+
+38 
+	#_IO_off64_t
+ 
+__off64_t
+
+
+	)
+
+39 
+	#_IO_pid_t
+ 
+__pid_t
+
+
+	)
+
+40 
+	#_IO_uid_t
+ 
+__uid_t
+
+
+	)
+
+41 
+	#_IO_icÚv_t
+ 
+_G_icÚv_t
+
+
+	)
+
+42 
+	#_IO_HAVE_ST_BLKSIZE
+ 
+_G_HAVE_ST_BLKSIZE
+
+
+	)
+
+43 
+	#_IO_BUFSIZ
+ 
+_G_BUFSIZ
+
+
+	)
+
+44 
+	#_IO_va_li¡
+ 
+_G_va_li¡
+
+
+	)
+
+45 
+	#_IO_wšt_t
+ 
+wšt_t
+
+
+	)
+
+48 
+	#__Ãed___va_li¡
+
+
+	)
+
+49 
+	~<¡d¬g.h
+>
+
+50 #ifdeà
+__GNUC_VA_LIST
+
+
+51 #undeà
+_IO_va_li¡
+
+
+52 
+	#_IO_va_li¡
+ 
+__gnuc_va_li¡
+
+
+	)
+
+55 #iâdeà
+__P
+
+
+56 
+	~<sys/cdefs.h
+>
+
+59 
+	#_IO_UNIFIED_JUMPTABLES
+ 1
+
+	)
+
+61 #iâdeà
+EOF
+
+
+62 
+	#EOF
+ (-1)
+
+	)
+
+64 #iâdeà
+NULL
+
+
+65 #ià
+defšed
+ 
+__GNUG__
+ && \
+
+66 (
+	g__GNUC__
+ > 2 || (__GNUC__ =ð2 && 
+__GNUC_MINOR__
+ >= 8))
+
+67 
+	#NULL
+ (
+__nuÎ
+)
+
+	)
+
+69 #ià!
+defšed
+(
+__ýlu¥lus
+)
+
+70 
+	#NULL
+ ((*)0)
+
+	)
+
+72 
+	#NULL
+ (0)
+
+	)
+
+77 
+	#_IOS_INPUT
+ 1
+
+	)
+
+78 
+	#_IOS_OUTPUT
+ 2
+
+	)
+
+79 
+	#_IOS_ATEND
+ 4
+
+	)
+
+80 
+	#_IOS_APPEND
+ 8
+
+	)
+
+81 
+	#_IOS_TRUNC
+ 16
+
+	)
+
+82 
+	#_IOS_NOCREATE
+ 32
+
+	)
+
+83 
+	#_IOS_NOREPLACE
+ 64
+
+	)
+
+84 
+	#_IOS_BIN
+ 128
+
+	)
+
+92 
+	#_IO_MAGIC
+ 0xFBAD0000
+
+	)
+
+93 
+	#_OLD_STDIO_MAGIC
+ 0xFABC0000
+
+	)
+
+94 
+	#_IO_MAGIC_MASK
+ 0xFFFF0000
+
+	)
+
+95 
+	#_IO_USER_BUF
+ 1
+
+	)
+
+96 
+	#_IO_UNBUFFERED
+ 2
+
+	)
+
+97 
+	#_IO_NO_READS
+ 4
+
+	)
+
+98 
+	#_IO_NO_WRITES
+ 8
+
+	)
+
+99 
+	#_IO_EOF_SEEN
+ 0x10
+
+	)
+
+100 
+	#_IO_ERR_SEEN
+ 0x20
+
+	)
+
+101 
+	#_IO_DELETE_DONT_CLOSE
+ 0x40
+
+	)
+
+102 
+	#_IO_LINKED
+ 0x80
+
+	)
+
+103 
+	#_IO_IN_BACKUP
+ 0x100
+
+	)
+
+104 
+	#_IO_LINE_BUF
+ 0x200
+
+	)
+
+105 
+	#_IO_TIED_PUT_GET
+ 0x400
+
+	)
+
+106 
+	#_IO_CURRENTLY_PUTTING
+ 0x800
+
+	)
+
+107 
+	#_IO_IS_APPENDING
+ 0x1000
+
+	)
+
+108 
+	#_IO_IS_FILEBUF
+ 0x2000
+
+	)
+
+109 
+	#_IO_BAD_SEEN
+ 0x4000
+
+	)
+
+110 
+	#_IO_USER_LOCK
+ 0x8000
+
+	)
+
+112 
+	#_IO_FLAGS2_MMAP
+ 1
+
+	)
+
+113 
+	#_IO_FLAGS2_NOTCANCEL
+ 2
+
+	)
+
+114 #ifdeà
+_LIBC
+
+
+115 
+	#_IO_FLAGS2_FORTIFY
+ 4
+
+	)
+
+117 
+	#_IO_FLAGS2_USER_WBUF
+ 8
+
+	)
+
+118 #ifdeà
+_LIBC
+
+
+119 
+	#_IO_FLAGS2_SCANF_STD
+ 16
+
+	)
+
+120 
+	#_IO_FLAGS2_NOCLOSE
+ 32
+
+	)
+
+121 
+	#_IO_FLAGS2_CLOEXEC
+ 64
+
+	)
+
+125 
+	#_IO_SKIPWS
+ 01
+
+	)
+
+126 
+	#_IO_LEFT
+ 02
+
+	)
+
+127 
+	#_IO_RIGHT
+ 04
+
+	)
+
+128 
+	#_IO_INTERNAL
+ 010
+
+	)
+
+129 
+	#_IO_DEC
+ 020
+
+	)
+
+130 
+	#_IO_OCT
+ 040
+
+	)
+
+131 
+	#_IO_HEX
+ 0100
+
+	)
+
+132 
+	#_IO_SHOWBASE
+ 0200
+
+	)
+
+133 
+	#_IO_SHOWPOINT
+ 0400
+
+	)
+
+134 
+	#_IO_UPPERCASE
+ 01000
+
+	)
+
+135 
+	#_IO_SHOWPOS
+ 02000
+
+	)
+
+136 
+	#_IO_SCIENTIFIC
+ 04000
+
+	)
+
+137 
+	#_IO_FIXED
+ 010000
+
+	)
+
+138 
+	#_IO_UNITBUF
+ 020000
+
+	)
+
+139 
+	#_IO_STDIO
+ 040000
+
+	)
+
+140 
+	#_IO_DONT_CLOSE
+ 0100000
+
+	)
+
+141 
+	#_IO_BOOLALPHA
+ 0200000
+
+	)
+
+144 
+_IO_jump_t
+; 
+	g_IO_FILE
+;
+
+147 #ifdeà
+_IO_MTSAFE_IO
+
+
+150 
+	t_IO_lock_t
+;
+
+156 
+	s_IO_m¬k”
+ {
+
+157 
+_IO_m¬k”
+ *
+	m_Ãxt
+;
+
+158 
+_IO_FILE
+ *
+	m_sbuf
+;
+
+162 
+	m_pos
+;
+
+164 
+£t_¡»ampos
+(
+¡»ampos
+ 
+¥
+è{ 
+	m_¥os
+ = sp; }
+
+165 
+£t_off£t
+(
+off£t
+è{ 
+	m_pos
+ = off£t; 
+	m_¥os
+ = (
+¡»ampos
+)(-2); }
+
+166 
+	mpublic
+:
+
+167 
+¡»amm¬k”
+(
+¡»ambuf
+ *
+sb
+);
+
+168 ~
+¡»amm¬k”
+();
+
+169 
+§všg
+(è{  
+	m_¥os
+ == -2; }
+
+170 
+d–
+(
+¡»amm¬k”
+&);
+
+171 
+d–
+();
+
+176 
+	e__codecvt_»suÉ
+
+
+178 
+	m__codecvt_ok
+,
+
+179 
+	m__codecvt_·¹Ÿl
+,
+
+180 
+	m__codecvt_”rÜ
+,
+
+181 
+	m__codecvt_nocÚv
+
+
+184 #ià
+defšed
+ 
+_LIBC
+ || defšed 
+_GLIBCPP_USE_WCHAR_T
+
+
+187 
+	s_IO_codecvt
+
+
+189 (*
+	m__codecvt_de¡r
+è(
+	m_IO_codecvt
+ *);
+
+190 
+__codecvt_»suÉ
+ (*
+__codecvt_do_out
+è(
+	m_IO_codecvt
+ *,
+
+191 
+	m__mb¡©e_t
+ *,
+
+192 cÚ¡ 
+	mwch¬_t
+ *,
+
+193 cÚ¡ 
+	mwch¬_t
+ *,
+
+194 cÚ¡ 
+	mwch¬_t
+ **, *,
+
+196 
+__codecvt_»suÉ
+ (*
+__codecvt_do_unshiá
+è(
+	m_IO_codecvt
+ *,
+
+197 
+	m__mb¡©e_t
+ *, *,
+
+199 
+__codecvt_»suÉ
+ (*
+__codecvt_do_š
+è(
+	m_IO_codecvt
+ *,
+
+200 
+	m__mb¡©e_t
+ *,
+
+202 cÚ¡ **, 
+	mwch¬_t
+ *,
+
+203 
+	mwch¬_t
+ *, wchar_t **);
+
+204 (*
+	m__codecvt_do_’codšg
+è(
+	m_IO_codecvt
+ *);
+
+205 (*
+	m__codecvt_do_®ways_nocÚv
+è(
+	m_IO_codecvt
+ *);
+
+206 (*
+	m__codecvt_do_Ëngth
+è(
+	m_IO_codecvt
+ *, 
+	m__mb¡©e_t
+ *,
+
+207 cÚ¡ *, cÚ¡ *, 
+	m_IO_size_t
+);
+
+208 (*
+	m__codecvt_do_max_Ëngth
+è(
+	m_IO_codecvt
+ *);
+
+210 
+_IO_icÚv_t
+ 
+	m__cd_š
+;
+
+211 
+_IO_icÚv_t
+ 
+	m__cd_out
+;
+
+215 
+	s_IO_wide_d©a
+
+
+217 
+wch¬_t
+ *
+	m_IO_»ad_±r
+;
+
+218 
+wch¬_t
+ *
+	m_IO_»ad_’d
+;
+
+219 
+wch¬_t
+ *
+	m_IO_»ad_ba£
+;
+
+220 
+wch¬_t
+ *
+	m_IO_wr™e_ba£
+;
+
+221 
+wch¬_t
+ *
+	m_IO_wr™e_±r
+;
+
+222 
+wch¬_t
+ *
+	m_IO_wr™e_’d
+;
+
+223 
+wch¬_t
+ *
+	m_IO_buf_ba£
+;
+
+224 
+wch¬_t
+ *
+	m_IO_buf_’d
+;
+
+226 
+wch¬_t
+ *
+	m_IO_§ve_ba£
+;
+
+227 
+wch¬_t
+ *
+	m_IO_backup_ba£
+;
+
+229 
+wch¬_t
+ *
+	m_IO_§ve_’d
+;
+
+231 
+__mb¡©e_t
+ 
+	m_IO_¡©e
+;
+
+232 
+__mb¡©e_t
+ 
+	m_IO_Ï¡_¡©e
+;
+
+233 
+_IO_codecvt
+ 
+	m_codecvt
+;
+
+235 
+wch¬_t
+ 
+	m_shÜtbuf
+[1];
+
+237 cÚ¡ 
+_IO_jump_t
+ *
+	m_wide_vbË
+;
+
+241 
+	s_IO_FILE
+ {
+
+242 
+	m_æags
+;
+
+243 
+	#_IO_fže_æags
+ 
+_æags
+
+
+	)
+
+247 * 
+	m_IO_»ad_±r
+;
+
+248 * 
+	m_IO_»ad_’d
+;
+
+249 * 
+	m_IO_»ad_ba£
+;
+
+250 * 
+	m_IO_wr™e_ba£
+;
+
+251 * 
+	m_IO_wr™e_±r
+;
+
+252 * 
+	m_IO_wr™e_’d
+;
+
+253 * 
+	m_IO_buf_ba£
+;
+
+254 * 
+	m_IO_buf_’d
+;
+
+256 *
+	m_IO_§ve_ba£
+;
+
+257 *
+	m_IO_backup_ba£
+;
+
+258 *
+	m_IO_§ve_’d
+;
+
+260 
+_IO_m¬k”
+ *
+	m_m¬k”s
+;
+
+262 
+_IO_FILE
+ *
+	m_chaš
+;
+
+264 
+	m_fž’o
+;
+
+266 
+	m_blksize
+;
+
+268 
+	m_æags2
+;
+
+270 
+_IO_off_t
+ 
+	m_Þd_off£t
+;
+
+272 
+	#__HAVE_COLUMN
+
+
+	)
+
+274 
+	m_cur_cÞumn
+;
+
+275 sigÃd 
+	m_vbË_off£t
+;
+
+276 
+	m_shÜtbuf
+[1];
+
+280 
+_IO_lock_t
+ *
+	m_lock
+;
+
+281 #ifdeà
+_IO_USE_OLD_IO_FILE
+
+
+284 
+	s_IO_FILE_com¶‘e
+
+
+286 
+_IO_FILE
+ 
+	m_fže
+;
+
+288 #ià
+defšed
+ 
+_G_IO_IO_FILE_VERSION
+ && _G_IO_IO_FILE_VERSION == 0x20001
+
+289 
+_IO_off64_t
+ 
+	m_off£t
+;
+
+290 #ià
+defšed
+ 
+_LIBC
+ || defšed 
+_GLIBCPP_USE_WCHAR_T
+
+
+292 
+_IO_codecvt
+ *
+	m_codecvt
+;
+
+293 
+_IO_wide_d©a
+ *
+	m_wide_d©a
+;
+
+294 
+_IO_FILE
+ *
+	m_䓻s_li¡
+;
+
+295 *
+	m_䓻s_buf
+;
+
+297 *
+	m__·d1
+;
+
+298 *
+	m__·d2
+;
+
+299 *
+	m__·d3
+;
+
+300 *
+	m__·d4
+;
+
+302 
+size_t
+ 
+	m__·d5
+;
+
+303 
+	m_mode
+;
+
+305 
+	m_unu£d2
+[15 *  (è- 4 *  (*è-  (
+size_t
+)];
+
+309 #iâdeà
+__ýlu¥lus
+
+
+310 
+_IO_FILE
+ 
+	t_IO_FILE
+;
+
+313 
+	g_IO_FILE_¶us
+;
+
+315 

+_IO_FILE_¶us
+ 
+_IO_2_1_¡dš_
+;
+
+316 

+_IO_FILE_¶us
+ 
+_IO_2_1_¡dout_
+;
+
+317 

+_IO_FILE_¶us
+ 
+_IO_2_1_¡d”r_
+;
+
+318 #iâdeà
+_LIBC
+
+
+319 
+	#_IO_¡dš
+ ((
+_IO_FILE
+*)(&
+_IO_2_1_¡dš_
+))
+
+	)
+
+320 
+	#_IO_¡dout
+ ((
+_IO_FILE
+*)(&
+_IO_2_1_¡dout_
+))
+
+	)
+
+321 
+	#_IO_¡d”r
+ ((
+_IO_FILE
+*)(&
+_IO_2_1_¡d”r_
+))
+
+	)
+
+323 
+_IO_FILE
+ *
+_IO_¡dš
+ 
+©Œibu‹_hidd’
+;
+
+324 
+_IO_FILE
+ *
+_IO_¡dout
+ 
+©Œibu‹_hidd’
+;
+
+325 
+_IO_FILE
+ *
+_IO_¡d”r
+ 
+©Œibu‹_hidd’
+;
+
+333 
+__ssize_t
+ 
+	t__io_»ad_â
+ (*
+	t__cook›
+, *
+	t__buf
+, 
+	tsize_t
+ 
+	t__nby‹s
+);
+
+341 
+__ssize_t
+ 
+	t__io_wr™e_â
+ (*
+	t__cook›
+, cÚ¡ *
+	t__buf
+,
+
+342 
+	tsize_t
+ 
+	t__n
+);
+
+350 
+	t__io_£ek_â
+ (*
+	t__cook›
+, 
+	t_IO_off64_t
+ *
+	t__pos
+, 
+	t__w
+);
+
+353 
+	t__io_þo£_â
+ (*
+	t__cook›
+);
+
+356 #ifdeà
+_GNU_SOURCE
+
+
+358 
+__io_»ad_â
+ 
+	tcook›_»ad_funùiÚ_t
+;
+
+359 
+__io_wr™e_â
+ 
+	tcook›_wr™e_funùiÚ_t
+;
+
+360 
+__io_£ek_â
+ 
+	tcook›_£ek_funùiÚ_t
+;
+
+361 
+__io_þo£_â
+ 
+	tcook›_þo£_funùiÚ_t
+;
+
+366 
+__io_»ad_â
+ *
+	m»ad
+;
+
+367 
+__io_wr™e_â
+ *
+	mwr™e
+;
+
+368 
+__io_£ek_â
+ *
+	m£ek
+;
+
+369 
+__io_þo£_â
+ *
+	mþo£
+;
+
+370 } 
+	t_IO_cook›_io_funùiÚs_t
+;
+
+371 
+_IO_cook›_io_funùiÚs_t
+ 
+	tcook›_io_funùiÚs_t
+;
+
+373 
+	g_IO_cook›_fže
+;
+
+376 

+_IO_cook›_š™
+ (
+_IO_cook›_fže
+ *
+__cfže
+, 
+__»ad_wr™e
+,
+
+377 *
+__cook›
+, 
+_IO_cook›_io_funùiÚs_t
+ 
+__âs
+);
+
+381 #ifdeà
+__ýlu¥lus
+
+
+385 

+__undӾow
+ (
+_IO_FILE
+ *);
+
+386 

+__uæow
+ (
+_IO_FILE
+ *);
+
+387 

+__ovӾow
+ (
+_IO_FILE
+ *, );
+
+388 #ià
+defšed
+ 
+_LIBC
+ || defšed 
+_GLIBCPP_USE_WCHAR_T
+
+
+389 
+_IO_wšt_t
+ 
+__wundӾow
+ (
+_IO_FILE
+ *);
+
+390 
+_IO_wšt_t
+ 
+__wuæow
+ (
+_IO_FILE
+ *);
+
+391 
+_IO_wšt_t
+ 
+__wovӾow
+ (
+_IO_FILE
+ *, _IO_wint_t);
+
+394 #ià 
+__GNUC__
+ >= 3
+
+395 
+	#_IO_BE
+(
+ex´
+, 
+»s
+è
+	`__bužtš_ex³ù
+ (Óx´),„es)
+
+	)
+
+397 
+	#_IO_BE
+(
+ex´
+, 
+»s
+èÓx´)
+
+	)
+
+400 
+	#_IO_g‘c_uÆocked
+(
+_å
+) \
+
+401 (
+	`_IO_BE
+ ((
+_å
+)->
+_IO_»ad_±r
+ >ð(_å)->
+_IO_»ad_’d
+, 0) \
+
+402 ? 
+	`__uæow
+ (
+_å
+è: *(*è(_å)->
+_IO_»ad_±r
+++)
+
+	)
+
+403 
+	#_IO_³ekc_uÆocked
+(
+_å
+) \
+
+404 (
+	`_IO_BE
+ ((
+_å
+)->
+_IO_»ad_±r
+ >ð(_å)->
+_IO_»ad_’d
+, 0) \
+
+405 && 
+	`__undӾow
+ (
+_å
+è=ð
+EOF
+ ? EOF \
+
+406 : *(*è(
+_å
+)->
+_IO_»ad_±r
+)
+
+	)
+
+407 
+	#_IO_putc_uÆocked
+(
+_ch
+, 
+_å
+) \
+
+408 (
+	`_IO_BE
+ ((
+_å
+)->
+_IO_wr™e_±r
+ >ð(_å)->
+_IO_wr™e_’d
+, 0) \
+
+409 ? 
+	`__ovӾow
+ (
+_å
+, (è(
+_ch
+)) \
+
+410 : (è(*(
+_å
+)->
+_IO_wr™e_±r
+++ = (
+_ch
+)))
+
+	)
+
+412 #ià
+defšed
+ 
+_LIBC
+ || defšed 
+_GLIBCPP_USE_WCHAR_T
+
+
+413 
+	#_IO_g‘wc_uÆocked
+(
+_å
+) \
+
+414 (
+	`_IO_BE
+ ((
+_å
+)->
+_wide_d©a
+ =ð
+NULL
+ \
+
+415 || ((
+_å
+)->
+_wide_d©a
+->
+_IO_»ad_±r
+ \
+
+416 >ð(
+_å
+)->
+_wide_d©a
+->
+_IO_»ad_’d
+), 0) \
+
+417 ? 
+	`__wuæow
+ (
+_å
+è: (
+_IO_wšt_t
+è*(_å)->
+_wide_d©a
+->
+_IO_»ad_±r
+++)
+
+	)
+
+418 
+	#_IO_putwc_uÆocked
+(
+_wch
+, 
+_å
+) \
+
+419 (
+	`_IO_BE
+ ((
+_å
+)->
+_wide_d©a
+ =ð
+NULL
+ \
+
+420 || ((
+_å
+)->
+_wide_d©a
+->
+_IO_wr™e_±r
+ \
+
+421 >ð(
+_å
+)->
+_wide_d©a
+->
+_IO_wr™e_’d
+), 0) \
+
+422 ? 
+	`__wovӾow
+ (
+_å
+, 
+_wch
+) \
+
+423 : (
+_IO_wšt_t
+è(*(
+_å
+)->
+_wide_d©a
+->
+_IO_wr™e_±r
+++ = (
+_wch
+)))
+
+	)
+
+426 
+	#_IO_ãof_uÆocked
+(
+__å
+è(((__å)->
+_æags
+ & 
+_IO_EOF_SEEN
+è!ð0)
+
+	)
+
+427 
+	#_IO_ã¼Ü_uÆocked
+(
+__å
+è(((__å)->
+_æags
+ & 
+_IO_ERR_SEEN
+è!ð0)
+
+	)
+
+429 

+_IO_g‘c
+ (
+_IO_FILE
+ *
+__å
+);
+
+430 

+_IO_putc
+ (
+__c
+, 
+_IO_FILE
+ *
+__å
+);
+
+431 

+_IO_ãof
+ (
+_IO_FILE
+ *
+__å
+è
+__THROW
+;
+
+432 

+_IO_ã¼Ü
+ (
+_IO_FILE
+ *
+__å
+è
+__THROW
+;
+
+434 

+_IO_³ekc_locked
+ (
+_IO_FILE
+ *
+__å
+);
+
+437 
+	#_IO_PENDING_OUTPUT_COUNT
+(
+_å
+) \
+
+438 ((
+_å
+)->
+_IO_wr™e_±r
+ - (_å)->
+_IO_wr™e_ba£
+)
+
+	)
+
+440 

+_IO_æockfže
+ (
+_IO_FILE
+ *è
+__THROW
+;
+
+441 

+_IO_fuÆockfže
+ (
+_IO_FILE
+ *è
+__THROW
+;
+
+442 

+_IO_árylockfže
+ (
+_IO_FILE
+ *è
+__THROW
+;
+
+444 #ifdeà
+_IO_MTSAFE_IO
+
+
+445 
+	#_IO_³ekc
+(
+_å
+è
+	`_IO_³ekc_locked
+ (_å)
+
+	)
+
+446 
+	#_IO_æockfže
+(
+_å
+) \
+
+447 ià(((
+_å
+)->
+_æags
+ & 
+_IO_USER_LOCK
+è=ð0è
+	`_IO_æockfže
+ (_å)
+
+	)
+
+448 
+	#_IO_fuÆockfže
+(
+_å
+) \
+
+449 ià(((
+_å
+)->
+_æags
+ & 
+_IO_USER_LOCK
+è=ð0è
+	`_IO_fuÆockfže
+ (_å)
+
+	)
+
+451 
+	#_IO_³ekc
+(
+_å
+è
+	`_IO_³ekc_uÆocked
+ (_å)
+
+	)
+
+452 
+	#_IO_æockfže
+(
+_å
+è
+
+	)
+
+453 
+	#_IO_fuÆockfže
+(
+_å
+è
+
+	)
+
+454 
+	#_IO_árylockfže
+(
+_å
+è
+
+	)
+
+455 
+	#_IO_þ—nup_»giÚ_¡¬t
+(
+_fù
+, 
+_å
+è
+
+	)
+
+456 
+	#_IO_þ—nup_»giÚ_’d
+(
+_Do™
+è
+
+	)
+
+459 

+_IO_vfsÿnf
+ (
+_IO_FILE
+ * 
+__»¡riù
+, const * __restrict,
+
+460 
+_IO_va_li¡
+, *
+__»¡riù
+);
+
+461 

+_IO_vårštf
+ (
+_IO_FILE
+ *
+__»¡riù
+, const *__restrict,
+
+462 
+_IO_va_li¡
+);
+
+463 
+_IO_ssize_t
+ 
+_IO_·dn
+ (
+_IO_FILE
+ *, , _IO_ssize_t);
+
+464 
+_IO_size_t
+ 
+_IO_sg‘n
+ (
+_IO_FILE
+ *, *, _IO_size_t);
+
+466 
+_IO_off64_t
+ 
+_IO_£ekoff
+ (
+_IO_FILE
+ *, _IO_off64_t, , );
+
+467 
+_IO_off64_t
+ 
+_IO_£ekpos
+ (
+_IO_FILE
+ *, _IO_off64_t, );
+
+469 

+_IO_ä“_backup_¬—
+ (
+_IO_FILE
+ *è
+__THROW
+;
+
+471 #ià
+defšed
+ 
+_LIBC
+ || defšed 
+_GLIBCPP_USE_WCHAR_T
+
+
+472 
+_IO_wšt_t
+ 
+_IO_g‘wc
+ (
+_IO_FILE
+ *
+__å
+);
+
+473 
+_IO_wšt_t
+ 
+_IO_putwc
+ (
+wch¬_t
+ 
+__wc
+, 
+_IO_FILE
+ *
+__å
+);
+
+474 

+_IO_fwide
+ (
+_IO_FILE
+ *
+__å
+, 
+__mode
+è
+__THROW
+;
+
+475 #ià
+__GNUC__
+ >= 2
+
+478 #ià
+defšed
+ 
+_LIBC
+ && defšed 
+SHARED
+
+
+479 
+	~<shlib-com·t.h
+>
+
+480 #ià
+SHLIB_COMPAT
+ (
+libc
+, 
+GLIBC_2_0
+, 
+GLIBC_2_1
+)
+
+481 
+	#_IO_fwide_maybe_šcom·tibË
+ \
+
+482 (
+	`__bužtš_ex³ù
+ (&
+_IO_¡dš_u£d
+ =ð
+NULL
+, 0))
+
+	)
+
+483 
cÚ¡ 
+_IO_¡dš_u£d
+;
+
+484 
+w—k_ex‹º
+ (
+_IO_¡dš_u£d
+);
+
+487 #iâdeà
+_IO_fwide_maybe_šcom·tibË
+
+
+488 
+	#_IO_fwide_maybe_šcom·tibË
+ (0)
+
+	)
+
+492 
+	#_IO_fwide
+(
+__å
+, 
+__mode
+) \
+
+493 ({ 
+__»suÉ
+ = (
+__mode
+); \
+
+494 ià(
+__»suÉ
+ < 0 && ! 
+_IO_fwide_maybe_šcom·tibË
+) \
+
+496 ià((
+__å
+)->
+_mode
+ == 0) \
+
+498 (
+__å
+)->
+_mode
+ = -1; \
+
+499 
+__»suÉ
+ = (
+__å
+)->
+_mode
+; \
+
+501 ià(
+	`__bužtš_cÚ¡ªt_p
+ (
+__mode
+) && (__mode) == 0) \
+
+502 
+__»suÉ
+ = 
+_IO_fwide_maybe_šcom·tibË
+ ? -1 : (
+__å
+)->
+_mode
+; \
+
+504 
+__»suÉ
+ = 
+	`_IO_fwide
+ (
+__å
+, __result); \
+
+505 
+__»suÉ
+; })
+
+	)
+
+508 

+_IO_vfwsÿnf
+ (
+_IO_FILE
+ * 
+__»¡riù
+, cÚ¡ 
+wch¬_t
+ * __restrict,
+
+509 
+_IO_va_li¡
+, *
+__»¡riù
+);
+
+510 

+_IO_vfw´štf
+ (
+_IO_FILE
+ *
+__»¡riù
+, cÚ¡ 
+wch¬_t
+ *__restrict,
+
+511 
+_IO_va_li¡
+);
+
+512 
+_IO_ssize_t
+ 
+_IO_w·dn
+ (
+_IO_FILE
+ *, 
+wšt_t
+, _IO_ssize_t);
+
+513 

+_IO_ä“_wbackup_¬—
+ (
+_IO_FILE
+ *è
+__THROW
+;
+
+516 #ifdeà
+__LDBL_COMPAT
+
+
+517 
+	~<b™s/libio-ldbl.h
+>
+
+520 #ifdeà
+__ýlu¥lus
+
+
+	@/usr/include/limits.h
+
+22 #iâdeà
+_LIBC_LIMITS_H_
+
+
+23 
+	#_LIBC_LIMITS_H_
+ 1
+
+	)
+
+25 
+	~<ã©u»s.h
+>
+
+31 
+	#MB_LEN_MAX
+ 16
+
+	)
+
+36 #ià!
+defšed
+ 
+__GNUC__
+ || __GNUC__ < 2
+
+41 #iâdeà
+_LIMITS_H
+
+
+42 
+	#_LIMITS_H
+ 1
+
+	)
+
+44 
+	~<b™s/wÜdsize.h
+>
+
+53 
+	#CHAR_BIT
+ 8
+
+	)
+
+56 
+	#SCHAR_MIN
+ (-128)
+
+	)
+
+57 
+	#SCHAR_MAX
+ 127
+
+	)
+
+60 
+	#UCHAR_MAX
+ 255
+
+	)
+
+63 #ifdeà
+__CHAR_UNSIGNED__
+
+
+64 
+	#CHAR_MIN
+ 0
+
+	)
+
+65 
+	#CHAR_MAX
+ 
+UCHAR_MAX
+
+
+	)
+
+67 
+	#CHAR_MIN
+ 
+SCHAR_MIN
+
+
+	)
+
+68 
+	#CHAR_MAX
+ 
+SCHAR_MAX
+
+
+	)
+
+72 
+	#SHRT_MIN
+ (-32768)
+
+	)
+
+73 
+	#SHRT_MAX
+ 32767
+
+	)
+
+76 
+	#USHRT_MAX
+ 65535
+
+	)
+
+79 
+	#INT_MIN
+ (-
+INT_MAX
+ - 1)
+
+	)
+
+80 
+	#INT_MAX
+ 2147483647
+
+	)
+
+83 
+	#UINT_MAX
+ 4294967295U
+
+	)
+
+86 #ià
+__WORDSIZE
+ == 64
+
+87 
+	#LONG_MAX
+ 9223372036854775807L
+
+	)
+
+89 
+	#LONG_MAX
+ 2147483647L
+
+	)
+
+91 
+	#LONG_MIN
+ (-
+LONG_MAX
+ - 1L)
+
+	)
+
+94 #ià
+__WORDSIZE
+ == 64
+
+95 
+	#ULONG_MAX
+ 18446744073709551615UL
+
+	)
+
+97 
+	#ULONG_MAX
+ 4294967295UL
+
+	)
+
+100 #ifdeà
+__USE_ISOC99
+
+
+103 
+	#LLONG_MAX
+ 9223372036854775807LL
+
+	)
+
+104 
+	#LLONG_MIN
+ (-
+LLONG_MAX
+ - 1LL)
+
+	)
+
+107 
+	#ULLONG_MAX
+ 18446744073709551615ULL
+
+	)
+
+121 #ià
+defšed
+ 
+__GNUC__
+ && !defšed 
+_GCC_LIMITS_H_
+
+
+123 #šþude_Ãxˆ<
+lim™s
+.
+h
+>
+
+129 #ià
+defšed
+ 
+__USE_ISOC99
+ && defšed 
+__GNUC__
+
+
+130 #iâdeà
+LLONG_MIN
+
+
+131 
+	#LLONG_MIN
+ (-
+LLONG_MAX
+-1)
+
+	)
+
+133 #iâdeà
+LLONG_MAX
+
+
+134 
+	#LLONG_MAX
+ 
+__LONG_LONG_MAX__
+
+
+	)
+
+136 #iâdeà
+ULLONG_MAX
+
+
+137 
+	#ULLONG_MAX
+ (
+LLONG_MAX
+ * 2ULL + 1)
+
+	)
+
+141 #ifdef 
+__USE_POSIX
+
+
+143 
+	~<b™s/posix1_lim.h
+>
+
+146 #ifdef 
+__USE_POSIX2
+
+
+147 
+	~<b™s/posix2_lim.h
+>
+
+150 #ifdef 
+__USE_XOPEN
+
+
+151 
+	~<b™s/xݒ_lim.h
+>
+
+	@/usr/include/sys/select.h
+
+21 #iâdeà
+_SYS_SELECT_H
+
+
+22 
+	#_SYS_SELECT_H
+ 1
+
+	)
+
+24 
+	~<ã©u»s.h
+>
+
+27 
+	~<b™s/ty³s.h
+>
+
+30 
+	~<b™s/£Ëù.h
+>
+
+33 
+	~<b™s/sig£t.h
+>
+
+35 #iâdeà
+__sig£t_t_defšed
+
+
+36 
+	#__sig£t_t_defšed
+
+
+	)
+
+37 
+__sig£t_t
+ 
+	tsig£t_t
+;
+
+41 
+	#__Ãed_time_t
+
+
+	)
+
+42 
+	#__Ãed_time¥ec
+
+
+	)
+
+43 
+	~<time.h
+>
+
+44 
+	#__Ãed_timev®
+
+
+	)
+
+45 
+	~<b™s/time.h
+>
+
+47 #iâdeà
+__su£cÚds_t_defšed
+
+
+48 
+__su£cÚds_t
+ 
+	tsu£cÚds_t
+;
+
+49 
+	#__su£cÚds_t_defšed
+
+
+	)
+
+54 
+	t__fd_mask
+;
+
+57 #undeà
+__NFDBITS
+
+
+59 
+	#__NFDBITS
+ (8 * (è (
+__fd_mask
+))
+
+	)
+
+60 
+	#__FD_ELT
+(
+d
+è((dè/ 
+__NFDBITS
+)
+
+	)
+
+61 
+	#__FD_MASK
+(
+d
+è((
+__fd_mask
+è(1UL << ((dè% 
+__NFDBITS
+)))
+
+	)
+
+68 #ifdeà
+__USE_XOPEN
+
+
+69 
+__fd_mask
+ 
+	mfds_b™s
+[
+__FD_SETSIZE
+ / 
+__NFDBITS
+];
+
+70 
+	#__FDS_BITS
+(
+£t
+è((£t)->
+fds_b™s
+)
+
+	)
+
+72 
+__fd_mask
+ 
+	m__fds_b™s
+[
+__FD_SETSIZE
+ / 
+__NFDBITS
+];
+
+73 
+	#__FDS_BITS
+(
+£t
+è((£t)->
+__fds_b™s
+)
+
+	)
+
+75 } 
+	tfd_£t
+;
+
+78 
+	#FD_SETSIZE
+ 
+__FD_SETSIZE
+
+
+	)
+
+80 #ifdeà
+__USE_MISC
+
+
+82 
+__fd_mask
+ 
+	tfd_mask
+;
+
+85 
+	#NFDBITS
+ 
+__NFDBITS
+
+
+	)
+
+90 
+	#FD_SET
+(
+fd
+, 
+fd£
+è
+	`__FD_SET
+ (fd, fd£)
+
+	)
+
+91 
+	#FD_CLR
+(
+fd
+, 
+fd£
+è
+	`__FD_CLR
+ (fd, fd£)
+
+	)
+
+92 
+	#FD_ISSET
+(
+fd
+, 
+fd£
+è
+	`__FD_ISSET
+ (fd, fd£)
+
+	)
+
+93 
+	#FD_ZERO
+(
+fd£
+è
+	`__FD_ZERO
+ (fd£)
+
+	)
+
+96 
+__BEGIN_DECLS
+
+
+106 

+£Ëù
+ (
+__nfds
+, 
+fd_£t
+ *
+__»¡riù
+ 
+__»adfds
+,
+
+107 
+fd_£t
+ *
+__»¡riù
+ 
+__wr™efds
+,
+
+108 
+fd_£t
+ *
+__»¡riù
+ 
+__exû±fds
+,
+
+109 
+timev®
+ *
+__»¡riù
+ 
+__timeout
+);
+
+111 #ifdeà
+__USE_XOPEN2K
+
+
+118 

+p£Ëù
+ (
+__nfds
+, 
+fd_£t
+ *
+__»¡riù
+ 
+__»adfds
+,
+
+119 
+fd_£t
+ *
+__»¡riù
+ 
+__wr™efds
+,
+
+120 
+fd_£t
+ *
+__»¡riù
+ 
+__exû±fds
+,
+
+121 cÚ¡ 
+time¥ec
+ *
+__»¡riù
+ 
+__timeout
+,
+
+122 cÚ¡ 
+__sig£t_t
+ *
+__»¡riù
+ 
+__sigmask
+);
+
+127 #ià
+__USE_FORTIFY_LEVEL
+ > 0 && 
+defšed
+ 
+__GNUC__
+
+
+128 
+	~<b™s/£Ëù2.h
+>
+
+131 
+	g__END_DECLS
+
+
+	@/usr/include/sys/sysmacros.h
+
+19 #iâdeà
+_SYS_SYSMACROS_H
+
+
+20 
+	#_SYS_SYSMACROS_H
+ 1
+
+	)
+
+22 
+	~<ã©u»s.h
+>
+
+24 
+__BEGIN_DECLS
+
+
+26 
+__ex‹nsiÚ__
+
+
+27 

+	$gnu_dev_majÜ
+ (
+__dev
+)
+
+28 
+__THROW
+ 
+__©Œibu‹_cÚ¡__
+;
+
+29 
+__ex‹nsiÚ__
+
+
+30 

+	$gnu_dev_mšÜ
+ (
+__dev
+)
+
+31 
+__THROW
+ 
+__©Œibu‹_cÚ¡__
+;
+
+32 
+__ex‹nsiÚ__
+
+
+33 

+	$gnu_dev_makedev
+ (
+__majÜ
+,
+
+34 
+__mšÜ
+)
+
+35 
+__THROW
+ 
+__©Œibu‹_cÚ¡__
+;
+
+37 #ifdeà
+__USE_EXTERN_INLINES
+
+
+38 
+__ex‹nsiÚ__
+ 
+__ex‹º_šlše
+ 
+__©Œibu‹_cÚ¡__
+ 
+
+39 
+	`__NTH
+ (
+	$gnu_dev_majÜ
+ (
+__dev
+))
+
+41  ((
+__dev
+ >> 8) & 0xfff) | (() (__dev >> 32) & ~0xfff);
+
+42 
+	}
+}
+
+44 
+__ex‹nsiÚ__
+ 
+__ex‹º_šlše
+ 
+__©Œibu‹_cÚ¡__
+ 
+
+45 
+__NTH
+ (
+	$gnu_dev_mšÜ
+ (
+__dev
+))
+
+47  (
+__dev
+ & 0xff) | (() (__dev >> 12) & ~0xff);
+
+48 
+	}
+}
+
+50 
+__ex‹nsiÚ__
+ 
+__ex‹º_šlše
+ 
+__©Œibu‹_cÚ¡__
+ 
+
+51 
+__NTH
+ (
+	$gnu_dev_makedev
+ (
+__majÜ
+, 
+__mšÜ
+))
+
+53  ((
+__mšÜ
+ & 0xffè| ((
+__majÜ
+ & 0xfff) << 8)
+
+54 | (((è(
+__mšÜ
+ & ~0xff)) << 12)
+
+55 | (((è(
+__majÜ
+ & ~0xfff)) << 32));
+
+56 
+	}
+}
+
+58 
+	g__END_DECLS
+
+
+61 
+	#majÜ
+(
+dev
+è
+	`gnu_dev_majÜ
+ (dev)
+
+	)
+
+62 
+	#mšÜ
+(
+dev
+è
+	`gnu_dev_mšÜ
+ (dev)
+
+	)
+
+63 
+	#makedev
+(
+maj
+, 
+mš
+è
+	`gnu_dev_makedev
+ (maj, mš)
+
+	)
+
+	@/usr/include/sys/ucontext.h
+
+18 #iâdeà
+_SYS_UCONTEXT_H
+
+
+19 
+	#_SYS_UCONTEXT_H
+ 1
+
+	)
+
+21 
+	~<ã©u»s.h
+>
+
+22 
+	~<sigÇl.h
+>
+
+26 
+	~<b™s/sigcڋxt.h
+>
+
+28 #ifdeà
+__x86_64__
+
+
+31 
+__ex‹nsiÚ__
+ 
+	tg»g_t
+;
+
+34 
+	#NGREG
+ 23
+
+	)
+
+37 
+g»g_t
+ 
+	tg»g£t_t
+[
+NGREG
+];
+
+39 #ifdeà
+__USE_GNU
+
+
+43 
+	mREG_R8
+ = 0,
+
+44 
+	#REG_R8
+ 
+REG_R8
+
+
+	)
+
+45 
+	mREG_R9
+,
+
+46 
+	#REG_R9
+ 
+REG_R9
+
+
+	)
+
+47 
+	mREG_R10
+,
+
+48 
+	#REG_R10
+ 
+REG_R10
+
+
+	)
+
+49 
+	mREG_R11
+,
+
+50 
+	#REG_R11
+ 
+REG_R11
+
+
+	)
+
+51 
+	mREG_R12
+,
+
+52 
+	#REG_R12
+ 
+REG_R12
+
+
+	)
+
+53 
+	mREG_R13
+,
+
+54 
+	#REG_R13
+ 
+REG_R13
+
+
+	)
+
+55 
+	mREG_R14
+,
+
+56 
+	#REG_R14
+ 
+REG_R14
+
+
+	)
+
+57 
+	mREG_R15
+,
+
+58 
+	#REG_R15
+ 
+REG_R15
+
+
+	)
+
+59 
+	mREG_RDI
+,
+
+60 
+	#REG_RDI
+ 
+REG_RDI
+
+
+	)
+
+61 
+	mREG_RSI
+,
+
+62 
+	#REG_RSI
+ 
+REG_RSI
+
+
+	)
+
+63 
+	mREG_RBP
+,
+
+64 
+	#REG_RBP
+ 
+REG_RBP
+
+
+	)
+
+65 
+	mREG_RBX
+,
+
+66 
+	#REG_RBX
+ 
+REG_RBX
+
+
+	)
+
+67 
+	mREG_RDX
+,
+
+68 
+	#REG_RDX
+ 
+REG_RDX
+
+
+	)
+
+69 
+	mREG_RAX
+,
+
+70 
+	#REG_RAX
+ 
+REG_RAX
+
+
+	)
+
+71 
+	mREG_RCX
+,
+
+72 
+	#REG_RCX
+ 
+REG_RCX
+
+
+	)
+
+73 
+	mREG_RSP
+,
+
+74 
+	#REG_RSP
+ 
+REG_RSP
+
+
+	)
+
+75 
+	mREG_RIP
+,
+
+76 
+	#REG_RIP
+ 
+REG_RIP
+
+
+	)
+
+77 
+	mREG_EFL
+,
+
+78 
+	#REG_EFL
+ 
+REG_EFL
+
+
+	)
+
+79 
+	mREG_CSGSFS
+,
+
+80 
+	#REG_CSGSFS
+ 
+REG_CSGSFS
+
+
+	)
+
+81 
+	mREG_ERR
+,
+
+82 
+	#REG_ERR
+ 
+REG_ERR
+
+
+	)
+
+83 
+	mREG_TRAPNO
+,
+
+84 
+	#REG_TRAPNO
+ 
+REG_TRAPNO
+
+
+	)
+
+85 
+	mREG_OLDMASK
+,
+
+86 
+	#REG_OLDMASK
+ 
+REG_OLDMASK
+
+
+	)
+
+87 
+	mREG_CR2
+
+
+88 
+	#REG_CR2
+ 
+REG_CR2
+
+
+	)
+
+92 
+	s_libc_åx»g
+
+
+94 
+	msignifiÿnd
+[4];
+
+95 
+	mexpڒt
+;
+
+96 
+	m·ddšg
+[3];
+
+99 
+	s_libc_xmm»g
+
+
+101 
+__ušt32_t
+ 
+	m–em’t
+[4];
+
+104 
+	s_libc_å¡©e
+
+
+107 
+__ušt16_t
+ 
+	mcwd
+;
+
+108 
+__ušt16_t
+ 
+	mswd
+;
+
+109 
+__ušt16_t
+ 
+	máw
+;
+
+110 
+__ušt16_t
+ 
+	mfÝ
+;
+
+111 
+__ušt64_t
+ 
+	mr
+;
+
+112 
+__ušt64_t
+ 
+	mrdp
+;
+
+113 
+__ušt32_t
+ 
+	mmxc¤
+;
+
+114 
+__ušt32_t
+ 
+	mmxü_mask
+;
+
+115 
+_libc_åx»g
+ 
+	m_¡
+[8];
+
+116 
+_libc_xmm»g
+ 
+	m_xmm
+[16];
+
+117 
+__ušt32_t
+ 
+	m·ddšg
+[24];
+
+121 
+_libc_å¡©e
+ *
+	tå»g£t_t
+;
+
+126 
+g»g£t_t
+ 
+	mg»gs
+;
+
+128 
+å»g£t_t
+ 
+	må»gs
+;
+
+129 
+__ex‹nsiÚ__
+ 
+	m__ȣrved1
+ [8];
+
+130 } 
+	tmcڋxt_t
+;
+
+133 
+	sucڋxt
+
+
+135 
+	muc_æags
+;
+
+136 
+ucڋxt
+ *
+	muc_lšk
+;
+
+137 
+¡ack_t
+ 
+	muc_¡ack
+;
+
+138 
+mcڋxt_t
+ 
+	muc_mcڋxt
+;
+
+139 
+__sig£t_t
+ 
+	muc_sigmask
+;
+
+140 
+_libc_å¡©e
+ 
+	m__å»gs_mem
+;
+
+141 } 
+	tucڋxt_t
+;
+
+146 
+	tg»g_t
+;
+
+149 
+	#NGREG
+ 19
+
+	)
+
+152 
+g»g_t
+ 
+	tg»g£t_t
+[
+NGREG
+];
+
+154 #ifdeà
+__USE_GNU
+
+
+158 
+	mREG_GS
+ = 0,
+
+159 
+	#REG_GS
+ 
+REG_GS
+
+
+	)
+
+160 
+	mREG_FS
+,
+
+161 
+	#REG_FS
+ 
+REG_FS
+
+
+	)
+
+162 
+	mREG_ES
+,
+
+163 
+	#REG_ES
+ 
+REG_ES
+
+
+	)
+
+164 
+	mREG_DS
+,
+
+165 
+	#REG_DS
+ 
+REG_DS
+
+
+	)
+
+166 
+	mREG_EDI
+,
+
+167 
+	#REG_EDI
+ 
+REG_EDI
+
+
+	)
+
+168 
+	mREG_ESI
+,
+
+169 
+	#REG_ESI
+ 
+REG_ESI
+
+
+	)
+
+170 
+	mREG_EBP
+,
+
+171 
+	#REG_EBP
+ 
+REG_EBP
+
+
+	)
+
+172 
+	mREG_ESP
+,
+
+173 
+	#REG_ESP
+ 
+REG_ESP
+
+
+	)
+
+174 
+	mREG_EBX
+,
+
+175 
+	#REG_EBX
+ 
+REG_EBX
+
+
+	)
+
+176 
+	mREG_EDX
+,
+
+177 
+	#REG_EDX
+ 
+REG_EDX
+
+
+	)
+
+178 
+	mREG_ECX
+,
+
+179 
+	#REG_ECX
+ 
+REG_ECX
+
+
+	)
+
+180 
+	mREG_EAX
+,
+
+181 
+	#REG_EAX
+ 
+REG_EAX
+
+
+	)
+
+182 
+	mREG_TRAPNO
+,
+
+183 
+	#REG_TRAPNO
+ 
+REG_TRAPNO
+
+
+	)
+
+184 
+	mREG_ERR
+,
+
+185 
+	#REG_ERR
+ 
+REG_ERR
+
+
+	)
+
+186 
+	mREG_EIP
+,
+
+187 
+	#REG_EIP
+ 
+REG_EIP
+
+
+	)
+
+188 
+	mREG_CS
+,
+
+189 
+	#REG_CS
+ 
+REG_CS
+
+
+	)
+
+190 
+	mREG_EFL
+,
+
+191 
+	#REG_EFL
+ 
+REG_EFL
+
+
+	)
+
+192 
+	mREG_UESP
+,
+
+193 
+	#REG_UESP
+ 
+REG_UESP
+
+
+	)
+
+194 
+	mREG_SS
+
+
+195 
+	#REG_SS
+ 
+REG_SS
+
+
+	)
+
+200 
+	s_libc_å»g
+
+
+202 
+	msignifiÿnd
+[4];
+
+203 
+	mexpڒt
+;
+
+206 
+	s_libc_å¡©e
+
+
+208 
+	mcw
+;
+
+209 
+	msw
+;
+
+210 
+	mg
+;
+
+211 
+	moff
+;
+
+212 
+	mcs£l
+;
+
+213 
+	md©aoff
+;
+
+214 
+	md©a£l
+;
+
+215 
+_libc_å»g
+ 
+	m_¡
+[8];
+
+216 
+	m¡©us
+;
+
+220 
+_libc_å¡©e
+ *
+	tå»g£t_t
+;
+
+225 
+g»g£t_t
+ 
+	mg»gs
+;
+
+228 
+å»g£t_t
+ 
+	må»gs
+;
+
+229 
+	mÞdmask
+;
+
+230 
+	mü2
+;
+
+231 } 
+	tmcڋxt_t
+;
+
+234 
+	sucڋxt
+
+
+236 
+	muc_æags
+;
+
+237 
+ucڋxt
+ *
+	muc_lšk
+;
+
+238 
+¡ack_t
+ 
+	muc_¡ack
+;
+
+239 
+mcڋxt_t
+ 
+	muc_mcڋxt
+;
+
+240 
+__sig£t_t
+ 
+	muc_sigmask
+;
+
+241 
+_libc_å¡©e
+ 
+	m__å»gs_mem
+;
+
+242 } 
+	tucڋxt_t
+;
+
+	@/usr/include/sys/uio.h
+
+18 #iâdeà
+_SYS_UIO_H
+
+
+19 
+	#_SYS_UIO_H
+ 1
+
+	)
+
+21 
+	~<ã©u»s.h
+>
+
+23 
+	~<sys/ty³s.h
+>
+
+25 
+	g__BEGIN_DECLS
+
+
+28 
+	~<b™s/uio.h
+>
+
+39 
+ssize_t
+ 
+	$»adv
+ (
+__fd
+, cÚ¡ 
+iovec
+ *
+__iovec
+, 
+__couÁ
+)
+
+40 
+__wur
+;
+
+50 
+ssize_t
+ 
+	$wr™ev
+ (
+__fd
+, cÚ¡ 
+iovec
+ *
+__iovec
+, 
+__couÁ
+)
+
+51 
+__wur
+;
+
+54 #ifdeà
+__USE_MISC
+
+
+55 #iâdeà
+__USE_FILE_OFFSET64
+
+
+65 
+ssize_t
+ 
+	$´—dv
+ (
+__fd
+, cÚ¡ 
+iovec
+ *
+__iovec
+, 
+__couÁ
+,
+
+66 
+__off_t
+ 
+__off£t
+è
+__wur
+;
+
+77 
+ssize_t
+ 
+	$pwr™ev
+ (
+__fd
+, cÚ¡ 
+iovec
+ *
+__iovec
+, 
+__couÁ
+,
+
+78 
+__off_t
+ 
+__off£t
+è
+__wur
+;
+
+80 #ifdeà
+__REDIRECT
+
+
+81 
+ssize_t
+ 
+	`__REDIRECT
+ (
+´—dv
+, (
+__fd
+, cÚ¡ 
+iovec
+ *
+__iovec
+,
+
+82 
+__couÁ
+, 
+__off64_t
+ 
+__off£t
+),
+
+83 
+´—dv64
+è
+__wur
+;
+
+84 
+ssize_t
+ 
+	`__REDIRECT
+ (
+pwr™ev
+, (
+__fd
+, cÚ¡ 
+iovec
+ *
+__iovec
+,
+
+85 
+__couÁ
+, 
+__off64_t
+ 
+__off£t
+),
+
+86 
+pwr™ev64
+è
+__wur
+;
+
+88 
+	#´—dv
+ 
+´—dv64
+
+
+	)
+
+89 
+	#pwr™ev
+ 
+pwr™ev64
+
+
+	)
+
+93 #ifdeà
+__USE_LARGEFILE64
+
+
+103 
+ssize_t
+ 
+	$´—dv64
+ (
+__fd
+, cÚ¡ 
+iovec
+ *
+__iovec
+, 
+__couÁ
+,
+
+104 
+__off64_t
+ 
+__off£t
+è
+__wur
+;
+
+115 
+ssize_t
+ 
+	$pwr™ev64
+ (
+__fd
+, cÚ¡ 
+iovec
+ *
+__iovec
+, 
+__couÁ
+,
+
+116 
+__off64_t
+ 
+__off£t
+è
+__wur
+;
+
+120 
+__END_DECLS
+
+
+	@/usr/include/xlocale.h
+
+20 #iâdeà
+_XLOCALE_H
+
+
+21 
+	#_XLOCALE_H
+ 1
+
+	)
+
+27 
+	s__loÿË_¡ruù
+
+
+30 
+__loÿË_d©a
+ *
+	m__loÿËs
+[13];
+
+33 cÚ¡ *
+	m__ùy³_b
+;
+
+34 cÚ¡ *
+	m__ùy³_tÞow”
+;
+
+35 cÚ¡ *
+	m__ùy³_touµ”
+;
+
+38 cÚ¡ *
+	m__Çmes
+[13];
+
+39 } *
+	t__loÿË_t
+;
+
+42 
+__loÿË_t
+ 
+	tloÿË_t
+;
+
+	@/usr/include/_G_config.h
+
+4 #iâdeà
+_G_cÚfig_h
+
+
+5 
+	#_G_cÚfig_h
+ 1
+
+	)
+
+9 
+	~<b™s/ty³s.h
+>
+
+10 
+	#__Ãed_size_t
+
+
+	)
+
+11 #ià
+defšed
+ 
+_LIBC
+ || defšed 
+_GLIBCPP_USE_WCHAR_T
+
+
+12 
+	#__Ãed_wch¬_t
+
+
+	)
+
+14 
+	#__Ãed_NULL
+
+
+	)
+
+15 
+	~<¡ddef.h
+>
+
+16 
+	#__Ãed_mb¡©e_t
+
+
+	)
+
+17 #ià
+defšed
+ 
+_LIBC
+ || defšed 
+_GLIBCPP_USE_WCHAR_T
+
+
+18 
+	#__Ãed_wšt_t
+
+
+	)
+
+20 
+	~<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šed
+ 
+_LIBC
+ || defšed 
+_GLIBCPP_USE_WCHAR_T
+
+
+32 
+	~<gcÚv.h
+>
+
+35 
+__gcÚv_šfo
+ 
+	m__cd
+;
+
+38 
+__gcÚv_šfo
+ 
+	m__cd
+;
+
+39 
+__gcÚv_¡•_d©a
+ 
+	m__d©a
+;
+
+40 } 
+	m__combšed
+;
+
+41 } 
+	t_G_icÚv_t
+;
+
+46 
+	#_G_va_li¡
+ 
+__gnuc_va_li¡
+
+
+	)
+
+48 
+	#_G_HAVE_MMAP
+ 1
+
+	)
+
+49 
+	#_G_HAVE_MREMAP
+ 1
+
+	)
+
+51 
+	#_G_IO_IO_FILE_VERSION
+ 0x20001
+
+	)
+
+54 
+	#_G_HAVE_ST_BLKSIZE
+ 
+	`defšed
+ (
+_STATBUF_ST_BLKSIZE
+)
+
+	)
+
+56 
+	#_G_BUFSIZ
+ 8192
+
+	)
+
+	@/usr/include/asm/socket.h
+
+1 
+	~<asm-g’”ic/sock‘.h
+>
+
+	@/usr/include/bits/byteswap-16.h
+
+19 #iâdeà
+_BITS_BYTESWAP_H
+
+
+23 #ifdeà
+__GNUC__
+
+
+24 #ià
+__GNUC__
+ >= 2
+
+25 
+	#__bsw­_16
+(
+x
+) \
+
+26 (
+__ex‹nsiÚ__
+ \
+
+27 ({ 
+__v
+, 
+__x
+ = (è(
+x
+); \
+
+28 ià(
+	`__bužtš_cÚ¡ªt_p
+ (
+__x
+)) \
+
+29 
+__v
+ = 
+	`__bsw­_cÚ¡ªt_16
+ (
+__x
+); \
+
+31 
+	`__asm__
+ ("rorw $8, %w0" \
+
+32 : "ô" (
+__v
+) \
+
+33 : "0" (
+__x
+) \
+
+35 
+__v
+; }))
+
+	)
+
+38 
+	#__bsw­_16
+(
+x
+) \
+
+39 (
+__ex‹nsiÚ__
+ \
+
+40 ({ 
+__x
+ = (è(
+x
+); \
+
+41 
+	`__bsw­_cÚ¡ªt_16
+ (
+__x
+); }))
+
+	)
+
+44 
+__šlše
+ 
+
+45 
+	$__bsw­_16
+ (
+__bsx
+)
+
+47  
+	`__bsw­_cÚ¡ªt_16
+ (
+__bsx
+);
+
+48 
+	}
+}
+
+	@/usr/include/bits/endian.h
+
+3 #iâdeà
+_ENDIAN_H
+
+
+7 
+	#__BYTE_ORDER
+ 
+__LITTLE_ENDIAN
+
+
+	)
+
+	@/usr/include/bits/fcntl-linux.h
+
+19 #iâdef 
+_FCNTL_H
+
+
+37 #ifdeà
+__USE_GNU
+
+
+38 
+	~<b™s/uio.h
+>
+
+42 
+	#O_ACCMODE
+ 0003
+
+	)
+
+43 
+	#O_RDONLY
+ 00
+
+	)
+
+44 
+	#O_WRONLY
+ 01
+
+	)
+
+45 
+	#O_RDWR
+ 02
+
+	)
+
+46 #iâdeà
+O_CREAT
+
+
+47 
+	#O_CREAT
+ 0100
+
+	)
+
+49 #iâdeà
+O_EXCL
+
+
+50 
+	#O_EXCL
+ 0200
+
+	)
+
+52 #iâdeà
+O_NOCTTY
+
+
+53 
+	#O_NOCTTY
+ 0400
+
+	)
+
+55 #iâdeà
+O_TRUNC
+
+
+56 
+	#O_TRUNC
+ 01000
+
+	)
+
+58 #iâdeà
+O_APPEND
+
+
+59 
+	#O_APPEND
+ 02000
+
+	)
+
+61 #iâdeà
+O_NONBLOCK
+
+
+62 
+	#O_NONBLOCK
+ 04000
+
+	)
+
+64 #iâdeà
+O_NDELAY
+
+
+65 
+	#O_NDELAY
+ 
+O_NONBLOCK
+
+
+	)
+
+67 #iâdeà
+O_SYNC
+
+
+68 
+	#O_SYNC
+ 04010000
+
+	)
+
+70 
+	#O_FSYNC
+ 
+O_SYNC
+
+
+	)
+
+71 #iâdeà
+O_ASYNC
+
+
+72 
+	#O_ASYNC
+ 020000
+
+	)
+
+74 #iâdeà
+__O_LARGEFILE
+
+
+75 
+	#__O_LARGEFILE
+ 0100000
+
+	)
+
+78 #iâdeà
+__O_DIRECTORY
+
+
+79 
+	#__O_DIRECTORY
+ 0200000
+
+	)
+
+81 #iâdeà
+__O_NOFOLLOW
+
+
+82 
+	#__O_NOFOLLOW
+ 0400000
+
+	)
+
+84 #iâdeà
+__O_CLOEXEC
+
+
+85 
+	#__O_CLOEXEC
+ 02000000
+
+	)
+
+87 #iâdeà
+__O_DIRECT
+
+
+88 
+	#__O_DIRECT
+ 040000
+
+	)
+
+90 #iâdeà
+__O_NOATIME
+
+
+91 
+	#__O_NOATIME
+ 01000000
+
+	)
+
+93 #iâdeà
+__O_PATH
+
+
+94 
+	#__O_PATH
+ 010000000
+
+	)
+
+96 #iâdeà
+__O_DSYNC
+
+
+97 
+	#__O_DSYNC
+ 010000
+
+	)
+
+99 #iâdeà
+__O_TMPFILE
+
+
+100 
+	#__O_TMPFILE
+ (020000000 | 
+__O_DIRECTORY
+)
+
+	)
+
+103 #iâdeà
+F_GETLK
+
+
+104 #iâdeà
+__USE_FILE_OFFSET64
+
+
+105 
+	#F_GETLK
+ 5
+
+	)
+
+106 
+	#F_SETLK
+ 6
+
+	)
+
+107 
+	#F_SETLKW
+ 7
+
+	)
+
+109 
+	#F_GETLK
+ 
+F_GETLK64
+
+
+	)
+
+110 
+	#F_SETLK
+ 
+F_SETLK64
+
+
+	)
+
+111 
+	#F_SETLKW
+ 
+F_SETLKW64
+
+
+	)
+
+114 #iâdeà
+F_GETLK64
+
+
+115 
+	#F_GETLK64
+ 12
+
+	)
+
+116 
+	#F_SETLK64
+ 13
+
+	)
+
+117 
+	#F_SETLKW64
+ 14
+
+	)
+
+131 #ifdeà
+__USE_GNU
+
+
+132 
+	#F_OFD_GETLK
+ 36
+
+	)
+
+133 
+	#F_OFD_SETLK
+ 37
+
+	)
+
+134 
+	#F_OFD_SETLKW
+ 38
+
+	)
+
+137 #ifdeà
+__USE_LARGEFILE64
+
+
+138 
+	#O_LARGEFILE
+ 
+__O_LARGEFILE
+
+
+	)
+
+141 #ifdeà
+__USE_XOPEN2K8
+
+
+142 
+	#O_DIRECTORY
+ 
+__O_DIRECTORY
+
+
+	)
+
+143 
+	#O_NOFOLLOW
+ 
+__O_NOFOLLOW
+
+
+	)
+
+144 
+	#O_CLOEXEC
+ 
+__O_CLOEXEC
+
+
+	)
+
+147 #ifdeà
+__USE_GNU
+
+
+148 
+	#O_DIRECT
+ 
+__O_DIRECT
+
+
+	)
+
+149 
+	#O_NOATIME
+ 
+__O_NOATIME
+
+
+	)
+
+150 
+	#O_PATH
+ 
+__O_PATH
+
+
+	)
+
+151 
+	#O_TMPFILE
+ 
+__O_TMPFILE
+
+
+	)
+
+157 #ià
+defšed
+ 
+__USE_POSIX199309
+ || defšed 
+__USE_UNIX98
+
+
+158 
+	#O_DSYNC
+ 
+__O_DSYNC
+
+
+	)
+
+159 #ià
+defšed
+ 
+__O_RSYNC
+
+
+160 
+	#O_RSYNC
+ 
+__O_RSYNC
+
+
+	)
+
+162 
+	#O_RSYNC
+ 
+O_SYNC
+
+
+	)
+
+167 
+	#F_DUPFD
+ 0
+
+	)
+
+168 
+	#F_GETFD
+ 1
+
+	)
+
+169 
+	#F_SETFD
+ 2
+
+	)
+
+170 
+	#F_GETFL
+ 3
+
+	)
+
+171 
+	#F_SETFL
+ 4
+
+	)
+
+173 #iâdeà
+__F_SETOWN
+
+
+174 
+	#__F_SETOWN
+ 8
+
+	)
+
+175 
+	#__F_GETOWN
+ 9
+
+	)
+
+178 #ià
+defšed
+ 
+__USE_UNIX98
+ || defšed 
+__USE_XOPEN2K8
+
+
+179 
+	#F_SETOWN
+ 
+__F_SETOWN
+
+
+	)
+
+180 
+	#F_GETOWN
+ 
+__F_GETOWN
+
+
+	)
+
+183 #iâdeà
+__F_SETSIG
+
+
+184 
+	#__F_SETSIG
+ 10
+
+	)
+
+185 
+	#__F_GETSIG
+ 11
+
+	)
+
+187 #iâdeà
+__F_SETOWN_EX
+
+
+188 
+	#__F_SETOWN_EX
+ 15
+
+	)
+
+189 
+	#__F_GETOWN_EX
+ 16
+
+	)
+
+192 #ifdeà
+__USE_GNU
+
+
+193 
+	#F_SETSIG
+ 
+__F_SETSIG
+
+
+	)
+
+194 
+	#F_GETSIG
+ 
+__F_GETSIG
+
+
+	)
+
+195 
+	#F_SETOWN_EX
+ 
+__F_SETOWN_EX
+
+
+	)
+
+196 
+	#F_GETOWN_EX
+ 
+__F_GETOWN_EX
+
+
+	)
+
+199 #ifdeà
+__USE_GNU
+
+
+200 
+	#F_SETLEASE
+ 1024
+
+	)
+
+201 
+	#F_GETLEASE
+ 1025
+
+	)
+
+202 
+	#F_NOTIFY
+ 1026
+
+	)
+
+203 
+	#F_SETPIPE_SZ
+ 1031
+
+	)
+
+204 
+	#F_GETPIPE_SZ
+ 1032
+
+	)
+
+206 #ifdeà
+__USE_XOPEN2K8
+
+
+207 
+	#F_DUPFD_CLOEXEC
+ 1030
+
+	)
+
+212 
+	#FD_CLOEXEC
+ 1
+
+	)
+
+214 #iâdeà
+F_RDLCK
+
+
+216 
+	#F_RDLCK
+ 0
+
+	)
+
+217 
+	#F_WRLCK
+ 1
+
+	)
+
+218 
+	#F_UNLCK
+ 2
+
+	)
+
+223 #iâdeà
+F_EXLCK
+
+
+224 
+	#F_EXLCK
+ 4
+
+	)
+
+225 
+	#F_SHLCK
+ 8
+
+	)
+
+228 #ifdeà
+__USE_MISC
+
+
+230 
+	#LOCK_SH
+ 1
+
+	)
+
+231 
+	#LOCK_EX
+ 2
+
+	)
+
+232 
+	#LOCK_NB
+ 4
+
+	)
+
+234 
+	#LOCK_UN
+ 8
+
+	)
+
+237 #ifdeà
+__USE_GNU
+
+
+238 
+	#LOCK_MAND
+ 32
+
+	)
+
+239 
+	#LOCK_READ
+ 64
+
+	)
+
+240 
+	#LOCK_WRITE
+ 128
+
+	)
+
+241 
+	#LOCK_RW
+ 192
+
+	)
+
+244 #ifdeà
+__USE_GNU
+
+
+246 
+	#DN_ACCESS
+ 0x00000001
+
+	)
+
+247 
+	#DN_MODIFY
+ 0x00000002
+
+	)
+
+248 
+	#DN_CREATE
+ 0x00000004
+
+	)
+
+249 
+	#DN_DELETE
+ 0x00000008
+
+	)
+
+250 
+	#DN_RENAME
+ 0x00000010
+
+	)
+
+251 
+	#DN_ATTRIB
+ 0x00000020
+
+	)
+
+252 
+	#DN_MULTISHOT
+ 0x80000000
+
+	)
+
+256 #ifdeà
+__USE_GNU
+
+
+258 
+	e__pid_ty³
+
+
+260 
+	mF_OWNER_TID
+ = 0,
+
+261 
+	mF_OWNER_PID
+,
+
+262 
+	mF_OWNER_PGRP
+,
+
+263 
+	mF_OWNER_GID
+ = 
+F_OWNER_PGRP
+
+
+267 
+	sf_owÃr_ex
+
+
+269 
+__pid_ty³
+ 
+	mty³
+;
+
+270 
+__pid_t
+ 
+	mpid
+;
+
+276 #ifdef 
+__USE_MISC
+
+
+277 
+	#FAPPEND
+ 
+O_APPEND
+
+
+	)
+
+278 
+	#FFSYNC
+ 
+O_FSYNC
+
+
+	)
+
+279 
+	#FASYNC
+ 
+O_ASYNC
+
+
+	)
+
+280 
+	#FNONBLOCK
+ 
+O_NONBLOCK
+
+
+	)
+
+281 
+	#FNDELAY
+ 
+O_NDELAY
+
+
+	)
+
+284 #iâdeà
+__POSIX_FADV_DONTNEED
+
+
+285 
+	#__POSIX_FADV_DONTNEED
+ 4
+
+	)
+
+286 
+	#__POSIX_FADV_NOREUSE
+ 5
+
+	)
+
+289 #ifdeà
+__USE_XOPEN2K
+
+
+290 
+	#POSIX_FADV_NORMAL
+ 0
+
+	)
+
+291 
+	#POSIX_FADV_RANDOM
+ 1
+
+	)
+
+292 
+	#POSIX_FADV_SEQUENTIAL
+ 2
+
+	)
+
+293 
+	#POSIX_FADV_WILLNEED
+ 3
+
+	)
+
+294 
+	#POSIX_FADV_DONTNEED
+ 
+__POSIX_FADV_DONTNEED
+
+
+	)
+
+295 
+	#POSIX_FADV_NOREUSE
+ 
+__POSIX_FADV_NOREUSE
+
+
+	)
+
+299 #ifdeà
+__USE_GNU
+
+
+301 
+	#SYNC_FILE_RANGE_WAIT_BEFORE
+ 1
+
+	)
+
+304 
+	#SYNC_FILE_RANGE_WRITE
+ 2
+
+	)
+
+307 
+	#SYNC_FILE_RANGE_WAIT_AFTER
+ 4
+
+	)
+
+312 
+	#SPLICE_F_MOVE
+ 1
+
+	)
+
+313 
+	#SPLICE_F_NONBLOCK
+ 2
+
+	)
+
+316 
+	#SPLICE_F_MORE
+ 4
+
+	)
+
+317 
+	#SPLICE_F_GIFT
+ 8
+
+	)
+
+321 
+	#FALLOC_FL_KEEP_SIZE
+ 1
+
+	)
+
+324 
+	#FALLOC_FL_PUNCH_HOLE
+ 2
+
+	)
+
+325 
+	#FALLOC_FL_COLLAPSE_RANGE
+ 8
+
+	)
+
+328 
+	#FALLOC_FL_ZERO_RANGE
+ 16
+
+	)
+
+333 
+	sfže_hªdË
+
+
+335 
+	mhªdË_by‹s
+;
+
+336 
+	mhªdË_ty³
+;
+
+338 
+	mf_hªdË
+[0];
+
+342 
+	#MAX_HANDLE_SZ
+ 128
+
+	)
+
+346 #ifdeà
+__USE_ATFILE
+
+
+347 
+	#AT_FDCWD
+ -100
+
+	)
+
+350 
+	#AT_SYMLINK_NOFOLLOW
+ 0x100
+
+	)
+
+351 
+	#AT_REMOVEDIR
+ 0x200
+
+	)
+
+353 
+	#AT_SYMLINK_FOLLOW
+ 0x400
+
+	)
+
+354 #ifdeà
+__USE_GNU
+
+
+355 
+	#AT_NO_AUTOMOUNT
+ 0x800
+
+	)
+
+357 
+	#AT_EMPTY_PATH
+ 0x1000
+
+	)
+
+359 
+	#AT_EACCESS
+ 0x200
+
+	)
+
+363 
+	g__BEGIN_DECLS
+
+
+365 #ifdeà
+__USE_GNU
+
+
+368 
+ssize_t
+ 
+	$»adah—d
+ (
+__fd
+, 
+__off64_t
+ 
+__off£t
+, 
+size_t
+ 
+__couÁ
+)
+
+369 
+__THROW
+;
+
+376 

+	`sync_fže_¿nge
+ (
+__fd
+, 
+__off64_t
+ 
+__off£t
+, __off64_ˆ
+__couÁ
+,
+
+377 
+__æags
+);
+
+384 
+ssize_t
+ 
+	`vm¥liû
+ (
+__fdout
+, cÚ¡ 
+iovec
+ *
+__iov
+,
+
+385 
+size_t
+ 
+__couÁ
+, 
+__æags
+);
+
+391 
+ssize_t
+ 
+	`¥liû
+ (
+__fdš
+, 
+__off64_t
+ *
+__offš
+, 
+__fdout
+,
+
+392 
+__off64_t
+ *
+__offout
+, 
+size_t
+ 
+__Ën
+,
+
+393 
+__æags
+);
+
+399 
+ssize_t
+ 
+	`‹e
+ (
+__fdš
+, 
+__fdout
+, 
+size_t
+ 
+__Ën
+,
+
+400 
+__æags
+);
+
+406 #iâdeà
+__USE_FILE_OFFSET64
+
+
+407 

+	`çÎoÿ‹
+ (
+__fd
+, 
+__mode
+, 
+__off_t
+ 
+__off£t
+, __off_ˆ
+__Ën
+);
+
+409 #ifdeà
+__REDIRECT
+
+
+410 

+	`__REDIRECT
+ (
+çÎoÿ‹
+, (
+__fd
+, 
+__mode
+, 
+__off64_t
+ 
+__off£t
+,
+
+411 
+__off64_t
+ 
+__Ën
+),
+
+412 
+çÎoÿ‹64
+);
+
+414 
+	#çÎoÿ‹
+ 
+çÎoÿ‹64
+
+
+	)
+
+417 #ifdeà
+__USE_LARGEFILE64
+
+
+418 

+	`çÎoÿ‹64
+ (
+__fd
+, 
+__mode
+, 
+__off64_t
+ 
+__off£t
+,
+
+419 
+__off64_t
+ 
+__Ën
+);
+
+424 

+	$Çme_to_hªdË_©
+ (
+__dfd
+, cÚ¡ *
+__Çme
+,
+
+425 
+fže_hªdË
+ *
+__hªdË
+, *
+__mÁ_id
+,
+
+426 
+__æags
+è
+__THROW
+;
+
+432 

+	`ݒ_by_hªdË_©
+ (
+__mouÁdœfd
+, 
+fže_hªdË
+ *
+__hªdË
+,
+
+433 
+__æ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štf
+)
+
+	@/usr/include/bits/libm-simd-decl-stubs.h
+
+19 #iâdeà
+_MATH_H
+
+
+33 #iâdeà
+_BITS_LIBM_SIMD_DECL_STUBS_H
+
+
+34 
+	#_BITS_LIBM_SIMD_DECL_STUBS_H
+ 1
+
+	)
+
+36 
+	#__DECL_SIMD_cos
+
+
+	)
+
+37 
+	#__DECL_SIMD_cosf
+
+
+	)
+
+38 
+	#__DECL_SIMD_co¦
+
+
+	)
+
+40 
+	#__DECL_SIMD_sš
+
+
+	)
+
+41 
+	#__DECL_SIMD_sšf
+
+
+	)
+
+42 
+	#__DECL_SIMD_sšl
+
+
+	)
+
+44 
+	#__DECL_SIMD_sšcos
+
+
+	)
+
+45 
+	#__DECL_SIMD_sšcosf
+
+
+	)
+
+46 
+	#__DECL_SIMD_sšco¦
+
+
+	)
+
+48 
+	#__DECL_SIMD_log
+
+
+	)
+
+49 
+	#__DECL_SIMD_logf
+
+
+	)
+
+50 
+	#__DECL_SIMD_logl
+
+
+	)
+
+52 
+	#__DECL_SIMD_exp
+
+
+	)
+
+53 
+	#__DECL_SIMD_expf
+
+
+	)
+
+54 
+	#__DECL_SIMD_ex¶
+
+
+	)
+
+56 
+	#__DECL_SIMD_pow
+
+
+	)
+
+57 
+	#__DECL_SIMD_powf
+
+
+	)
+
+58 
+	#__DECL_SIMD_powl
+
+
+	)
+
+	@/usr/include/bits/posix1_lim.h
+
+24 #iâdef 
+_BITS_POSIX1_LIM_H
+
+
+25 
+	#_BITS_POSIX1_LIM_H
+ 1
+
+	)
+
+31 
+	#_POSIX_AIO_LISTIO_MAX
+ 2
+
+	)
+
+34 
+	#_POSIX_AIO_MAX
+ 1
+
+	)
+
+37 
+	#_POSIX_ARG_MAX
+ 4096
+
+	)
+
+40 #ifdeà
+__USE_XOPEN2K
+
+
+41 
+	#_POSIX_CHILD_MAX
+ 25
+
+	)
+
+43 
+	#_POSIX_CHILD_MAX
+ 6
+
+	)
+
+47 
+	#_POSIX_DELAYTIMER_MAX
+ 32
+
+	)
+
+51 
+	#_POSIX_HOST_NAME_MAX
+ 255
+
+	)
+
+54 
+	#_POSIX_LINK_MAX
+ 8
+
+	)
+
+57 
+	#_POSIX_LOGIN_NAME_MAX
+ 9
+
+	)
+
+60 
+	#_POSIX_MAX_CANON
+ 255
+
+	)
+
+64 
+	#_POSIX_MAX_INPUT
+ 255
+
+	)
+
+67 
+	#_POSIX_MQ_OPEN_MAX
+ 8
+
+	)
+
+70 
+	#_POSIX_MQ_PRIO_MAX
+ 32
+
+	)
+
+73 
+	#_POSIX_NAME_MAX
+ 14
+
+	)
+
+76 #ifdeà
+__USE_XOPEN2K
+
+
+77 
+	#_POSIX_NGROUPS_MAX
+ 8
+
+	)
+
+79 
+	#_POSIX_NGROUPS_MAX
+ 0
+
+	)
+
+83 #ifdeà
+__USE_XOPEN2K
+
+
+84 
+	#_POSIX_OPEN_MAX
+ 20
+
+	)
+
+86 
+	#_POSIX_OPEN_MAX
+ 16
+
+	)
+
+89 #ià!
+defšed
+ 
+__USE_XOPEN2K
+ || defšed 
+__USE_GNU
+
+
+92 
+	#_POSIX_FD_SETSIZE
+ 
+_POSIX_OPEN_MAX
+
+
+	)
+
+96 
+	#_POSIX_PATH_MAX
+ 256
+
+	)
+
+99 
+	#_POSIX_PIPE_BUF
+ 512
+
+	)
+
+103 
+	#_POSIX_RE_DUP_MAX
+ 255
+
+	)
+
+106 
+	#_POSIX_RTSIG_MAX
+ 8
+
+	)
+
+109 
+	#_POSIX_SEM_NSEMS_MAX
+ 256
+
+	)
+
+112 
+	#_POSIX_SEM_VALUE_MAX
+ 32767
+
+	)
+
+115 
+	#_POSIX_SIGQUEUE_MAX
+ 32
+
+	)
+
+118 
+	#_POSIX_SSIZE_MAX
+ 32767
+
+	)
+
+121 
+	#_POSIX_STREAM_MAX
+ 8
+
+	)
+
+124 
+	#_POSIX_SYMLINK_MAX
+ 255
+
+	)
+
+128 
+	#_POSIX_SYMLOOP_MAX
+ 8
+
+	)
+
+131 
+	#_POSIX_TIMER_MAX
+ 32
+
+	)
+
+134 
+	#_POSIX_TTY_NAME_MAX
+ 9
+
+	)
+
+137 #ifdeà
+__USE_XOPEN2K
+
+
+138 
+	#_POSIX_TZNAME_MAX
+ 6
+
+	)
+
+140 
+	#_POSIX_TZNAME_MAX
+ 3
+
+	)
+
+143 #ià!
+defšed
+ 
+__USE_XOPEN2K
+ || defšed 
+__USE_GNU
+
+
+145 
+	#_POSIX_QLIMIT
+ 1
+
+	)
+
+149 
+	#_POSIX_HIWAT
+ 
+_POSIX_PIPE_BUF
+
+
+	)
+
+152 
+	#_POSIX_UIO_MAXIOV
+ 16
+
+	)
+
+156 
+	#_POSIX_CLOCKRES_MIN
+ 20000000
+
+	)
+
+160 
+	~<b™s/loÿl_lim.h
+>
+
+163 #iâdef 
+SSIZE_MAX
+
+
+164 
+	#SSIZE_MAX
+ 
+LONG_MAX
+
+
+	)
+
+171 #iâdef 
+NGROUPS_MAX
+
+
+172 
+	#NGROUPS_MAX
+ 8
+
+	)
+
+	@/usr/include/bits/posix2_lim.h
+
+22 #iâdef 
+_BITS_POSIX2_LIM_H
+
+
+23 
+	#_BITS_POSIX2_LIM_H
+ 1
+
+	)
+
+27 
+	#_POSIX2_BC_BASE_MAX
+ 99
+
+	)
+
+30 
+	#_POSIX2_BC_DIM_MAX
+ 2048
+
+	)
+
+33 
+	#_POSIX2_BC_SCALE_MAX
+ 99
+
+	)
+
+36 
+	#_POSIX2_BC_STRING_MAX
+ 1000
+
+	)
+
+40 
+	#_POSIX2_COLL_WEIGHTS_MAX
+ 2
+
+	)
+
+44 
+	#_POSIX2_EXPR_NEST_MAX
+ 32
+
+	)
+
+47 
+	#_POSIX2_LINE_MAX
+ 2048
+
+	)
+
+51 
+	#_POSIX2_RE_DUP_MAX
+ 255
+
+	)
+
+55 
+	#_POSIX2_CHARCLASS_NAME_MAX
+ 14
+
+	)
+
+62 #iâdef 
+BC_BASE_MAX
+
+
+63 
+	#BC_BASE_MAX
+ 
+_POSIX2_BC_BASE_MAX
+
+
+	)
+
+65 #iâdef 
+BC_DIM_MAX
+
+
+66 
+	#BC_DIM_MAX
+ 
+_POSIX2_BC_DIM_MAX
+
+
+	)
+
+68 #iâdef 
+BC_SCALE_MAX
+
+
+69 
+	#BC_SCALE_MAX
+ 
+_POSIX2_BC_SCALE_MAX
+
+
+	)
+
+71 #iâdef 
+BC_STRING_MAX
+
+
+72 
+	#BC_STRING_MAX
+ 
+_POSIX2_BC_STRING_MAX
+
+
+	)
+
+74 #iâdef 
+COLL_WEIGHTS_MAX
+
+
+75 
+	#COLL_WEIGHTS_MAX
+ 255
+
+	)
+
+77 #iâdef 
+EXPR_NEST_MAX
+
+
+78 
+	#EXPR_NEST_MAX
+ 
+_POSIX2_EXPR_NEST_MAX
+
+
+	)
+
+80 #iâdef 
+LINE_MAX
+
+
+81 
+	#LINE_MAX
+ 
+_POSIX2_LINE_MAX
+
+
+	)
+
+83 #iâdef 
+CHARCLASS_NAME_MAX
+
+
+84 
+	#CHARCLASS_NAME_MAX
+ 2048
+
+	)
+
+88 
+	#RE_DUP_MAX
+ (0x7fff)
+
+	)
+
+	@/usr/include/bits/select.h
+
+18 #iâdeà
+_SYS_SELECT_H
+
+
+22 
+	~<b™s/wÜdsize.h
+>
+
+25 #ià
+defšed
+ 
+__GNUC__
+ && __GNUC__ >= 2
+
+27 #ià
+__WORDSIZE
+ == 64
+
+28 
+	#__FD_ZERO_STOS
+ "¡osq"
+
+	)
+
+30 
+	#__FD_ZERO_STOS
+ "¡o¦"
+
+	)
+
+33 
+	#__FD_ZERO
+(
+fd¥
+) \
+
+35 
+__d0
+, 
+__d1
+; \
+
+36 
+__asm__
+ 
+	`__vÞ©že__
+ ("þd;„•; " 
+__FD_ZERO_STOS
+ \
+
+37 : "=c" (
+__d0
+), "=D" (
+__d1
+) \
+
+38 : "a" (0), "0" ( (
+fd_£t
+) \
+
+39 /  (
+__fd_mask
+)), \
+
+40 "1" (&
+	`__FDS_BITS
+ (
+fd¥
+)[0]) \
+
+42 } 0)
+
+	)
+
+48 
+	#__FD_ZERO
+(
+£t
+) \
+
+50 
+__i
+; \
+
+51 
+fd_£t
+ *
+__¬r
+ = (
+£t
+); \
+
+52 
+__i
+ = 0; __˜<  (
+fd_£t
+è/  (
+__fd_mask
+); ++__i) \
+
+53 
+	`__FDS_BITS
+ (
+__¬r
+)[
+__i
+] = 0; \
+
+54 } 0)
+
+	)
+
+58 
+	#__FD_SET
+(
+d
+, 
+£t
+) \
+
+59 ((è(
+	`__FDS_BITS
+ (
+£t
+)[
+	`__FD_ELT
+ (
+d
+)] |ð
+	`__FD_MASK
+ (d)))
+
+	)
+
+60 
+	#__FD_CLR
+(
+d
+, 
+£t
+) \
+
+61 ((è(
+	`__FDS_BITS
+ (
+£t
+)[
+	`__FD_ELT
+ (
+d
+)] &ð~
+	`__FD_MASK
+ (d)))
+
+	)
+
+62 
+	#__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 

+__fd–t_chk
+ (
+__d
+);
+
+25 

+	$__fd–t_w¬n
+ (
+__d
+)
+
+26 
+	`__w¬Ç‰r
+ ("bit outside of fd_set selected");
+
+27 #undeà
+__FD_ELT
+
+
+28 
+	#__FD_ELT
+(
+d
+) \
+
+29 
+__ex‹nsiÚ__
+ \
+
+30 ({ 
+__d
+ = (
+d
+); \
+
+31 (
+	`__bužtš_cÚ¡ªt_p
+ (
+__d
+) \
+
+32 ? (0 <ð
+__d
+ && __d < 
+__FD_SETSIZE
+ \
+
+33 ? (
+__d
+ / 
+__NFDBITS
+) \
+
+34 : 
+	`__fd–t_w¬n
+ (
+__d
+)) \
+
+35 : 
+	`__fd–t_chk
+ (
+__d
+)); 
+	}
+})
+
+	)
+
+	@/usr/include/bits/sockaddr.h
+
+23 #iâdeà
+_BITS_SOCKADDR_H
+
+
+24 
+	#_BITS_SOCKADDR_H
+ 1
+
+	)
+
+28 
+	t§_çmžy_t
+;
+
+34 
+	#__SOCKADDR_COMMON
+(
+§_´efix
+) \
+
+35 
+§_çmžy_t
+ 
+§_´efix
+##
+çmžy
+
+
+	)
+
+37 
+	#__SOCKADDR_COMMON_SIZE
+ ( ())
+
+	)
+
+40 
+	#_SS_SIZE
+ 128
+
+	)
+
+	@/usr/include/bits/socket_type.h
+
+19 #iâdeà
+_SYS_SOCKET_H
+
+
+24 
+	e__sock‘_ty³
+
+
+26 
+	mSOCK_STREAM
+ = 1,
+
+28 
+	#SOCK_STREAM
+ 
+SOCK_STREAM
+
+
+	)
+
+29 
+	mSOCK_DGRAM
+ = 2,
+
+31 
+	#SOCK_DGRAM
+ 
+SOCK_DGRAM
+
+
+	)
+
+32 
+	mSOCK_RAW
+ = 3,
+
+33 
+	#SOCK_RAW
+ 
+SOCK_RAW
+
+
+	)
+
+34 
+	mSOCK_RDM
+ = 4,
+
+35 
+	#SOCK_RDM
+ 
+SOCK_RDM
+
+
+	)
+
+36 
+	mSOCK_SEQPACKET
+ = 5,
+
+38 
+	#SOCK_SEQPACKET
+ 
+SOCK_SEQPACKET
+
+
+	)
+
+39 
+	mSOCK_DCCP
+ = 6,
+
+40 
+	#SOCK_DCCP
+ 
+SOCK_DCCP
+
+
+	)
+
+41 
+	mSOCK_PACKET
+ = 10,
+
+44 
+	#SOCK_PACKET
+ 
+SOCK_PACKET
+
+
+	)
+
+49 
+	mSOCK_CLOEXEC
+ = 02000000,
+
+51 
+	#SOCK_CLOEXEC
+ 
+SOCK_CLOEXEC
+
+
+	)
+
+52 
+	mSOCK_NONBLOCK
+ = 00004000
+
+54 
+	#SOCK_NONBLOCK
+ 
+SOCK_NONBLOCK
+
+
+	)
+
+	@/usr/include/bits/timex.h
+
+18 #iâdef 
+_BITS_TIMEX_H
+
+
+19 
+	#_BITS_TIMEX_H
+ 1
+
+	)
+
+21 
+	~<b™s/ty³s.h
+>
+
+25 
+	stimex
+
+
+27 
+	mmodes
+;
+
+28 
+__sysÿÎ_¦Úg_t
+ 
+	moff£t
+;
+
+29 
+__sysÿÎ_¦Úg_t
+ 
+	mäeq
+;
+
+30 
+__sysÿÎ_¦Úg_t
+ 
+	mmax”rÜ
+;
+
+31 
+__sysÿÎ_¦Úg_t
+ 
+	me¡”rÜ
+;
+
+32 
+	m¡©us
+;
+
+33 
+__sysÿÎ_¦Úg_t
+ 
+	mcÚ¡ªt
+;
+
+34 
+__sysÿÎ_¦Úg_t
+ 
+	m´ecisiÚ
+;
+
+35 
+__sysÿÎ_¦Úg_t
+ 
+	mtޔªû
+;
+
+36 
+timev®
+ 
+	mtime
+;
+
+37 
+__sysÿÎ_¦Úg_t
+ 
+	mtick
+;
+
+38 
+__sysÿÎ_¦Úg_t
+ 
+	mµsäeq
+;
+
+39 
+__sysÿÎ_¦Úg_t
+ 
+	mj™‹r
+;
+
+40 
+	mshiá
+;
+
+41 
+__sysÿÎ_¦Úg_t
+ 
+	m¡abž
+;
+
+42 
+__sysÿÎ_¦Úg_t
+ 
+	mj™út
+;
+
+43 
+__sysÿÎ_¦Úg_t
+ 
+	mÿlút
+;
+
+44 
+__sysÿÎ_¦Úg_t
+ 
+	m”rút
+;
+
+45 
+__sysÿÎ_¦Úg_t
+ 
+	m¡bút
+;
+
+47 
+	mi
+;
+
+56 
+	#ADJ_OFFSET
+ 0x0001
+
+	)
+
+57 
+	#ADJ_FREQUENCY
+ 0x0002
+
+	)
+
+58 
+	#ADJ_MAXERROR
+ 0x0004
+
+	)
+
+59 
+	#ADJ_ESTERROR
+ 0x0008
+
+	)
+
+60 
+	#ADJ_STATUS
+ 0x0010
+
+	)
+
+61 
+	#ADJ_TIMECONST
+ 0x0020
+
+	)
+
+62 
+	#ADJ_TAI
+ 0x0080
+
+	)
+
+63 
+	#ADJ_SETOFFSET
+ 0x0100
+
+	)
+
+64 
+	#ADJ_MICRO
+ 0x1000
+
+	)
+
+65 
+	#ADJ_NANO
+ 0x2000
+
+	)
+
+66 
+	#ADJ_TICK
+ 0x4000
+
+	)
+
+67 
+	#ADJ_OFFSET_SINGLESHOT
+ 0x8001
+
+	)
+
+68 
+	#ADJ_OFFSET_SS_READ
+ 0xa001
+
+	)
+
+71 
+	#MOD_OFFSET
+ 
+ADJ_OFFSET
+
+
+	)
+
+72 
+	#MOD_FREQUENCY
+ 
+ADJ_FREQUENCY
+
+
+	)
+
+73 
+	#MOD_MAXERROR
+ 
+ADJ_MAXERROR
+
+
+	)
+
+74 
+	#MOD_ESTERROR
+ 
+ADJ_ESTERROR
+
+
+	)
+
+75 
+	#MOD_STATUS
+ 
+ADJ_STATUS
+
+
+	)
+
+76 
+	#MOD_TIMECONST
+ 
+ADJ_TIMECONST
+
+
+	)
+
+77 
+	#MOD_CLKB
+ 
+ADJ_TICK
+
+
+	)
+
+78 
+	#MOD_CLKA
+ 
+ADJ_OFFSET_SINGLESHOT
+
+
+	)
+
+79 
+	#MOD_TAI
+ 
+ADJ_TAI
+
+
+	)
+
+80 
+	#MOD_MICRO
+ 
+ADJ_MICRO
+
+
+	)
+
+81 
+	#MOD_NANO
+ 
+ADJ_NANO
+
+
+	)
+
+85 
+	#STA_PLL
+ 0x0001
+
+	)
+
+86 
+	#STA_PPSFREQ
+ 0x0002
+
+	)
+
+87 
+	#STA_PPSTIME
+ 0x0004
+
+	)
+
+88 
+	#STA_FLL
+ 0x0008
+
+	)
+
+90 
+	#STA_INS
+ 0x0010
+
+	)
+
+91 
+	#STA_DEL
+ 0x0020
+
+	)
+
+92 
+	#STA_UNSYNC
+ 0x0040
+
+	)
+
+93 
+	#STA_FREQHOLD
+ 0x0080
+
+	)
+
+95 
+	#STA_PPSSIGNAL
+ 0x0100
+
+	)
+
+96 
+	#STA_PPSJITTER
+ 0x0200
+
+	)
+
+97 
+	#STA_PPSWANDER
+ 0x0400
+
+	)
+
+98 
+	#STA_PPSERROR
+ 0x0800
+
+	)
+
+100 
+	#STA_CLOCKERR
+ 0x1000
+
+	)
+
+101 
+	#STA_NANO
+ 0x2000
+
+	)
+
+102 
+	#STA_MODE
+ 0x4000
+
+	)
+
+103 
+	#STA_CLK
+ 0x8000
+
+	)
+
+106 
+	#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 
+	#_BITS_TYPESIZES_H
+ 1
+
+	)
+
+30 #ià
+defšed
+ 
+__x86_64__
+ && defšed 
+__ILP32__
+
+
+31 
+	#__SYSCALL_SLONG_TYPE
+ 
+__SQUAD_TYPE
+
+
+	)
+
+32 
+	#__SYSCALL_ULONG_TYPE
+ 
+__UQUAD_TYPE
+
+
+	)
+
+34 
+	#__SYSCALL_SLONG_TYPE
+ 
+__SLONGWORD_TYPE
+
+
+	)
+
+35 
+	#__SYSCALL_ULONG_TYPE
+ 
+__ULONGWORD_TYPE
+
+
+	)
+
+38 
+	#__DEV_T_TYPE
+ 
+__UQUAD_TYPE
+
+
+	)
+
+39 
+	#__UID_T_TYPE
+ 
+__U32_TYPE
+
+
+	)
+
+40 
+	#__GID_T_TYPE
+ 
+__U32_TYPE
+
+
+	)
+
+41 
+	#__INO_T_TYPE
+ 
+__SYSCALL_ULONG_TYPE
+
+
+	)
+
+42 
+	#__INO64_T_TYPE
+ 
+__UQUAD_TYPE
+
+
+	)
+
+43 
+	#__MODE_T_TYPE
+ 
+__U32_TYPE
+
+
+	)
+
+44 #ifdeà
+__x86_64__
+
+
+45 
+	#__NLINK_T_TYPE
+ 
+__SYSCALL_ULONG_TYPE
+
+
+	)
+
+46 
+	#__FSWORD_T_TYPE
+ 
+__SYSCALL_SLONG_TYPE
+
+
+	)
+
+48 
+	#__NLINK_T_TYPE
+ 
+__UWORD_TYPE
+
+
+	)
+
+49 
+	#__FSWORD_T_TYPE
+ 
+__SWORD_TYPE
+
+
+	)
+
+51 
+	#__OFF_T_TYPE
+ 
+__SYSCALL_SLONG_TYPE
+
+
+	)
+
+52 
+	#__OFF64_T_TYPE
+ 
+__SQUAD_TYPE
+
+
+	)
+
+53 
+	#__PID_T_TYPE
+ 
+__S32_TYPE
+
+
+	)
+
+54 
+	#__RLIM_T_TYPE
+ 
+__SYSCALL_ULONG_TYPE
+
+
+	)
+
+55 
+	#__RLIM64_T_TYPE
+ 
+__UQUAD_TYPE
+
+
+	)
+
+56 
+	#__BLKCNT_T_TYPE
+ 
+__SYSCALL_SLONG_TYPE
+
+
+	)
+
+57 
+	#__BLKCNT64_T_TYPE
+ 
+__SQUAD_TYPE
+
+
+	)
+
+58 
+	#__FSBLKCNT_T_TYPE
+ 
+__SYSCALL_ULONG_TYPE
+
+
+	)
+
+59 
+	#__FSBLKCNT64_T_TYPE
+ 
+__UQUAD_TYPE
+
+
+	)
+
+60 
+	#__FSFILCNT_T_TYPE
+ 
+__SYSCALL_ULONG_TYPE
+
+
+	)
+
+61 
+	#__FSFILCNT64_T_TYPE
+ 
+__UQUAD_TYPE
+
+
+	)
+
+62 
+	#__ID_T_TYPE
+ 
+__U32_TYPE
+
+
+	)
+
+63 
+	#__CLOCK_T_TYPE
+ 
+__SYSCALL_SLONG_TYPE
+
+
+	)
+
+64 
+	#__TIME_T_TYPE
+ 
+__SYSCALL_SLONG_TYPE
+
+
+	)
+
+65 
+	#__USECONDS_T_TYPE
+ 
+__U32_TYPE
+
+
+	)
+
+66 
+	#__SUSECONDS_T_TYPE
+ 
+__SYSCALL_SLONG_TYPE
+
+
+	)
+
+67 
+	#__DADDR_T_TYPE
+ 
+__S32_TYPE
+
+
+	)
+
+68 
+	#__KEY_T_TYPE
+ 
+__S32_TYPE
+
+
+	)
+
+69 
+	#__CLOCKID_T_TYPE
+ 
+__S32_TYPE
+
+
+	)
+
+70 
+	#__TIMER_T_TYPE
+ *
+
+	)
+
+71 
+	#__BLKSIZE_T_TYPE
+ 
+__SYSCALL_SLONG_TYPE
+
+
+	)
+
+72 
+	#__FSID_T_TYPE
+ sŒuù { 
+__v®
+[2]; }
+
+	)
+
+73 
+	#__SSIZE_T_TYPE
+ 
+__SWORD_TYPE
+
+
+	)
+
+74 
+	#__CPU_MASK_TYPE
+ 
+__SYSCALL_ULONG_TYPE
+
+
+	)
+
+76 #ifdeà
+__x86_64__
+
+
+80 
+	#__OFF_T_MATCHES_OFF64_T
+ 1
+
+	)
+
+83 
+	#__INO_T_MATCHES_INO64_T
+ 1
+
+	)
+
+87 
+	#__FD_SETSIZE
+ 1024
+
+	)
+
+	@/usr/include/bits/uio.h
+
+18 #ià!
+defšed
+ 
+_SYS_UIO_H
+ && !defšed 
+_FCNTL_H
+
+
+22 #iâdeà
+_BITS_UIO_H
+
+
+23 
+	#_BITS_UIO_H
+ 1
+
+	)
+
+25 
+	~<sys/ty³s.h
+>
+
+39 
+	#UIO_MAXIOV
+ 1024
+
+	)
+
+43 
+	siovec
+
+
+45 *
+	miov_ba£
+;
+
+46 
+size_t
+ 
+	miov_Ën
+;
+
+52 #ifdeà
+__USE_GNU
+
+
+53 #ià
+defšed
+ 
+_SYS_UIO_H
+ && !defšed 
+_BITS_UIO_H_FOR_SYS_UIO_H
+
+
+54 
+	#_BITS_UIO_H_FOR_SYS_UIO_H
+ 1
+
+	)
+
+56 
+__BEGIN_DECLS
+
+
+59 
+ssize_t
+ 
+	$´oûss_vm_»adv
+ (
+pid_t
+ 
+__pid
+, cÚ¡ 
+iovec
+ *
+__lvec
+,
+
+60 
+__liovút
+,
+
+61 cÚ¡ 
+iovec
+ *
+__rvec
+,
+
+62 
+__riovút
+,
+
+63 
+__æags
+)
+
+64 
+__THROW
+;
+
+67 
+ssize_t
+ 
+	$´oûss_vm_wr™ev
+ (
+pid_t
+ 
+__pid
+, cÚ¡ 
+iovec
+ *
+__lvec
+,
+
+68 
+__liovút
+,
+
+69 cÚ¡ 
+iovec
+ *
+__rvec
+,
+
+70 
+__riovút
+,
+
+71 
+__æags
+)
+
+72 
+__THROW
+;
+
+74 
+__END_DECLS
+
+
+	@/usr/include/bits/xopen_lim.h
+
+29 #iâdeà
+_XOPEN_LIM_H
+
+
+30 
+	#_XOPEN_LIM_H
+ 1
+
+	)
+
+32 
+	#__Ãed_IOV_MAX
+
+
+	)
+
+33 
+	~<b™s/¡dio_lim.h
+>
+
+65 
+	#_XOPEN_IOV_MAX
+ 
+_POSIX_UIO_MAXIOV
+
+
+	)
+
+70 
+	#NL_ARGMAX
+ 
+_POSIX_ARG_MAX
+
+
+	)
+
+73 
+	#NL_LANGMAX
+ 
+_POSIX2_LINE_MAX
+
+
+	)
+
+76 
+	#NL_MSGMAX
+ 
+INT_MAX
+
+
+	)
+
+80 
+	#NL_NMAX
+ 
+INT_MAX
+
+
+	)
+
+83 
+	#NL_SETMAX
+ 
+INT_MAX
+
+
+	)
+
+86 
+	#NL_TEXTMAX
+ 
+INT_MAX
+
+
+	)
+
+89 
+	#NZERO
+ 20
+
+	)
+
+93 #ifdeà
+INT_MAX
+
+
+94 #ià
+INT_MAX
+ == 32767
+
+95 
+	#WORD_BIT
+ 16
+
+	)
+
+97 #ià
+INT_MAX
+ == 2147483647
+
+98 
+	#WORD_BIT
+ 32
+
+	)
+
+101 
+	#WORD_BIT
+ 64
+
+	)
+
+104 #–ià
+defšed
+ 
+__INT_MAX__
+
+
+105 #ià
+__INT_MAX__
+ == 32767
+
+106 
+	#WORD_BIT
+ 16
+
+	)
+
+108 #ià
+__INT_MAX__
+ == 2147483647
+
+109 
+	#WORD_BIT
+ 32
+
+	)
+
+112 
+	#WORD_BIT
+ 64
+
+	)
+
+116 
+	#WORD_BIT
+ 32
+
+	)
+
+120 #ifdeà
+LONG_MAX
+
+
+121 #ià
+LONG_MAX
+ == 2147483647
+
+122 
+	#LONG_BIT
+ 32
+
+	)
+
+125 
+	#LONG_BIT
+ 64
+
+	)
+
+127 #–ià
+defšed
+ 
+__LONG_MAX__
+
+
+128 #ià
+__LONG_MAX__
+ == 2147483647
+
+129 
+	#LONG_BIT
+ 32
+
+	)
+
+132 
+	#LONG_BIT
+ 64
+
+	)
+
+135 
+	~<b™s/wÜdsize.h
+>
+
+136 #ià
+__WORDSIZE
+ == 64
+
+137 
+	#LONG_BIT
+ 64
+
+	)
+
+139 
+	#LONG_BIT
+ 32
+
+	)
+
+	@/usr/include/gnu/stubs.h
+
+6 #ià!
+defšed
+ 
+__x86_64__
+
+
+7 
+	~<gnu/¡ubs-32.h
+>
+
+9 #ià
+defšed
+ 
+__x86_64__
+ && defšed 
+__LP64__
+
+
+10 
+	~<gnu/¡ubs-64.h
+>
+
+12 #ià
+defšed
+ 
+__x86_64__
+ && defšed 
+__ILP32__
+
+
+13 
+	~<gnu/¡ubs-x32.h
+>
+
+	@/usr/include/linux/errno.h
+
+1 
+	~<asm/Ӽo.h
+>
+
+	@/usr/include/linux/limits.h
+
+1 #iâdeà
+_LINUX_LIMITS_H
+
+
+2 
+	#_LINUX_LIMITS_H
+
+
+	)
+
+4 
+	#NR_OPEN
+ 1024
+
+	)
+
+6 
+	#NGROUPS_MAX
+ 65536
+
+	)
+
+7 
+	#ARG_MAX
+ 131072
+
+	)
+
+8 
+	#LINK_MAX
+ 127
+
+	)
+
+9 
+	#MAX_CANON
+ 255
+
+	)
+
+10 
+	#MAX_INPUT
+ 255
+
+	)
+
+11 
+	#NAME_MAX
+ 255
+
+	)
+
+12 
+	#PATH_MAX
+ 4096
+
+	)
+
+13 
+	#PIPE_BUF
+ 4096
+
+	)
+
+14 
+	#XATTR_NAME_MAX
+ 255
+
+	)
+
+15 
+	#XATTR_SIZE_MAX
+ 65536
+
+	)
+
+16 
+	#XATTR_LIST_MAX
+ 65536
+
+	)
+
+18 
+	#RTSIG_MAX
+ 32
+
+	)
+
+	@/usr/include/linux/param.h
+
+1 #iâdeà
+_LINUX_PARAM_H
+
+
+2 
+	#_LINUX_PARAM_H
+
+
+	)
+
+4 
+	~<asm/·¿m.h
+>
+
+	@/usr/include/stdc-predef.h
+
+18 #iâdef 
+_STDC_PREDEF_H
+
+
+19 
+	#_STDC_PREDEF_H
+ 1
+
+	)
+
+36 #ifdeà
+__GCC_IEC_559
+
+
+37 #ià
+__GCC_IEC_559
+ > 0
+
+38 
+	#__STDC_IEC_559__
+ 1
+
+	)
+
+41 
+	#__STDC_IEC_559__
+ 1
+
+	)
+
+44 #ifdeà
+__GCC_IEC_559_COMPLEX
+
+
+45 #ià
+__GCC_IEC_559_COMPLEX
+ > 0
+
+46 
+	#__STDC_IEC_559_COMPLEX__
+ 1
+
+	)
+
+49 
+	#__STDC_IEC_559_COMPLEX__
+ 1
+
+	)
+
+55 
+	#__STDC_ISO_10646__
+ 201505L
+
+	)
+
+58 
+	#__STDC_NO_THREADS__
+ 1
+
+	)
+
+	@/usr/include/sys/cdefs.h
+
+18 #iâdef 
+_SYS_CDEFS_H
+
+
+19 
+	#_SYS_CDEFS_H
+ 1
+
+	)
+
+22 #iâdeà
+_FEATURES_H
+
+
+23 
+	~<ã©u»s.h
+>
+
+29 #ià
+defšed
+ 
+__GNUC__
+ && !defšed 
+__STDC__
+
+
+34 #undeà
+__P
+
+
+35 #undeà
+__PMT
+
+
+37 #ifdeà
+__GNUC__
+
+
+41 #ià
+__GNUC_PREREQ
+ (4, 6è&& !
+defšed
+ 
+_LIBC
+
+
+42 
+	#__LEAF
+ , 
+__Ëaf__
+
+
+	)
+
+43 
+	#__LEAF_ATTR
+ 
+	`__©Œibu‹__
+ ((
+__Ëaf__
+))
+
+	)
+
+45 
+	#__LEAF
+
+
+	)
+
+46 
+	#__LEAF_ATTR
+
+
+	)
+
+54 #ià!
+defšed
+ 
+__ýlu¥lus
+ && 
+__GNUC_PREREQ
+ (3, 3)
+
+55 
+	#__THROW
+ 
+	`__©Œibu‹__
+ ((
+__nÙhrow__
+ 
+__LEAF
+))
+
+	)
+
+56 
+	#__THROWNL
+ 
+	`__©Œibu‹__
+ ((
+__nÙhrow__
+))
+
+	)
+
+57 
+	#__NTH
+(
+fù
+è
+	`__©Œibu‹__
+ ((
+__nÙhrow__
+ 
+__LEAF
+)è
+	)
+fct
+
+59 #ià
+defšed
+ 
+__ýlu¥lus
+ && 
+__GNUC_PREREQ
+ (2,8)
+
+60 
+	#__THROW
+ 
+	`throw
+ ()
+
+	)
+
+61 
+	#__THROWNL
+ 
+	`throw
+ ()
+
+	)
+
+62 
+	#__NTH
+(
+fù
+è
+__LEAF_ATTR
+ fù 
+	`throw
+ ()
+
+	)
+
+64 
+	#__THROW
+
+
+	)
+
+65 
+	#__THROWNL
+
+
+	)
+
+66 
+	#__NTH
+(
+fù
+è
+	)
+fct
+
+72 
+	#__šlše
+
+
+	)
+
+74 
+	#__THROW
+
+
+	)
+
+75 
+	#__THROWNL
+
+
+	)
+
+76 
+	#__NTH
+(
+fù
+è
+	)
+fct
+
+82 
+	#__P
+(
+¬gs
+è
+	)
+args
+
+83 
+	#__PMT
+(
+¬gs
+è
+	)
+args
+
+88 
+	#__CONCAT
+(
+x
+,
+y
+èx ## 
+	)
+y
+
+89 
+	#__STRING
+(
+x
+è#x
+
+	)
+
+92 
+	#__±r_t
+ *
+
+	)
+
+93 
+	#__lÚg_doubË_t
+ 
+
+	)
+
+97 #ifdef 
+__ýlu¥lus
+
+
+98 
+	#__BEGIN_DECLS
+ 
"C" {
+
+	)
+
+99 
+	#__END_DECLS
+ }
+
+	)
+
+101 
+	#__BEGIN_DECLS
+
+
+	)
+
+102 
+	#__END_DECLS
+
+
+	)
+
+111 #ià
+defšed
+ 
+__ýlu¥lus
+ && defšed 
+_GLIBCPP_USE_NAMESPACES
+
+
+112 
+	#__BEGIN_NAMESPACE_STD
+ 
+Çme¥aû
+ 
+¡d
+ {
+
+	)
+
+113 
+	#__END_NAMESPACE_STD
+ }
+
+	)
+
+114 
+	#__USING_NAMESPACE_STD
+(
+Çme
+è
+usšg
+ 
+¡d
+::Çme;
+
+	)
+
+115 
+	#__BEGIN_NAMESPACE_C99
+ 
+Çme¥aû
+ 
+__c99
+ {
+
+	)
+
+116 
+	#__END_NAMESPACE_C99
+ }
+
+	)
+
+117 
+	#__USING_NAMESPACE_C99
+(
+Çme
+è
+usšg
+ 
+__c99
+::Çme;
+
+	)
+
+122 
+	#__BEGIN_NAMESPACE_STD
+
+
+	)
+
+123 
+	#__END_NAMESPACE_STD
+
+
+	)
+
+124 
+	#__USING_NAMESPACE_STD
+(
+Çme
+)
+
+	)
+
+125 
+	#__BEGIN_NAMESPACE_C99
+
+
+	)
+
+126 
+	#__END_NAMESPACE_C99
+
+
+	)
+
+127 
+	#__USING_NAMESPACE_C99
+(
+Çme
+)
+
+	)
+
+132 
+	#__bos
+(
+±r
+è
+	`__bužtš_objeù_size
+ (±r, 
+__USE_FORTIFY_LEVEL
+ > 1)
+
+	)
+
+133 
+	#__bos0
+(
+±r
+è
+	`__bužtš_objeù_size
+ (±r, 0)
+
+	)
+
+135 #ià
+__GNUC_PREREQ
+ (4,3)
+
+136 
+	#__w¬ndeþ
+(
+Çme
+, 
+msg
+) \
+
+137 

+	`Çme
+ (è
+	`__©Œibu‹__
+((
+	`__w¬nšg__
+ (
+msg
+)))
+
+	)
+
+138 
+	#__w¬Ç‰r
+(
+msg
+è
+	`__©Œibu‹__
+((
+	`__w¬nšg__
+ (msg)))
+
+	)
+
+139 
+	#__”rÜdeþ
+(
+Çme
+, 
+msg
+) \
+
+140 

+	`Çme
+ (è
+	`__©Œibu‹__
+((
+	`__”rÜ__
+ (
+msg
+)))
+
+	)
+
+142 
+	#__w¬ndeþ
+(
+Çme
+, 
+msg
+è

+	`Çme
+ ()
+
+	)
+
+143 
+	#__w¬Ç‰r
+(
+msg
+)
+
+	)
+
+144 
+	#__”rÜdeþ
+(
+Çme
+, 
+msg
+è

+	`Çme
+ ()
+
+	)
+
+148 #ià
+__GNUC_PREREQ
+ (2,97)
+
+150 
+	#__æex¬r
+ []
+
+	)
+
+152 #ifdeà
+__GNUC__
+
+
+153 
+	#__æex¬r
+ [0]
+
+	)
+
+155 #ià
+defšed
+ 
+__STDC_VERSION__
+ && __STDC_VERSION__ >= 199901L
+
+156 
+	#__æex¬r
+ []
+
+	)
+
+159 
+	#__æex¬r
+ [1]
+
+	)
+
+175 #ià
+defšed
+ 
+__GNUC__
+ && __GNUC__ >= 2
+
+177 
+	#__REDIRECT
+(
+Çme
+, 
+´Ùo
+, 
+®Ÿs
+èÇm´ÙØ
+	`__asm__
+ (
+	`__ASMNAME
+ (#®Ÿs))
+
+	)
+
+178 #ifdeà
+__ýlu¥lus
+
+
+179 
+	#__REDIRECT_NTH
+(
+Çme
+, 
+´Ùo
+, 
+®Ÿs
+) \
+
+180 
+Çme
+ 
+´Ùo
+ 
+__THROW
+ 
+	`__asm__
+ (
+	`__ASMNAME
+ (#®Ÿs))
+
+	)
+
+181 
+	#__REDIRECT_NTHNL
+(
+Çme
+, 
+´Ùo
+, 
+®Ÿs
+) \
+
+182 
+Çme
+ 
+´Ùo
+ 
+__THROWNL
+ 
+	`__asm__
+ (
+	`__ASMNAME
+ (#®Ÿs))
+
+	)
+
+184 
+	#__REDIRECT_NTH
+(
+Çme
+, 
+´Ùo
+, 
+®Ÿs
+) \
+
+185 
+Çme
+ 
+´Ùo
+ 
+	`__asm__
+ (
+	`__ASMNAME
+ (#®Ÿs)è
+__THROW
+
+
+	)
+
+186 
+	#__REDIRECT_NTHNL
+(
+Çme
+, 
+´Ùo
+, 
+®Ÿs
+) \
+
+187 
+Çme
+ 
+´Ùo
+ 
+	`__asm__
+ (
+	`__ASMNAME
+ (#®Ÿs)è
+__THROWNL
+
+
+	)
+
+189 
+	#__ASMNAME
+(
+úame
+è
+	`__ASMNAME2
+ (
+__USER_LABEL_PREFIX__
+, cÇme)
+
+	)
+
+190 
+	#__ASMNAME2
+(
+´efix
+, 
+úame
+è
+	`__STRING
+ (´efixè
+	)
+cname
+
+203 #ià!
+defšed
+ 
+__GNUC__
+ || __GNUC__ < 2
+
+204 
+	#__©Œibu‹__
+(
+xyz
+è
+
+	)
+
+210 #ià
+__GNUC_PREREQ
+ (2,96)
+
+211 
+	#__©Œibu‹_m®loc__
+ 
+	`__©Œibu‹__
+ ((
+__m®loc__
+))
+
+	)
+
+213 
+	#__©Œibu‹_m®loc__
+
+
+	)
+
+218 #ià
+__GNUC_PREREQ
+ (4, 3)
+
+219 
+	#__©Œibu‹_®loc_size__
+(
+·¿ms
+) \
+
+220 
+	`__©Œibu‹__
+ ((
+__®loc_size__
+ 
+·¿ms
+))
+
+	)
+
+222 
+	#__©Œibu‹_®loc_size__
+(
+·¿ms
+è
+
+	)
+
+228 #ià
+__GNUC_PREREQ
+ (2,96)
+
+229 
+	#__©Œibu‹_pu»__
+ 
+	`__©Œibu‹__
+ ((
+__pu»__
+))
+
+	)
+
+231 
+	#__©Œibu‹_pu»__
+
+
+	)
+
+235 #ià
+__GNUC_PREREQ
+ (2,5)
+
+236 
+	#__©Œibu‹_cÚ¡__
+ 
+	`__©Œibu‹__
+ ((
+__cÚ¡__
+))
+
+	)
+
+238 
+	#__©Œibu‹_cÚ¡__
+
+
+	)
+
+244 #ià
+__GNUC_PREREQ
+ (3,1)
+
+245 
+	#__©Œibu‹_u£d__
+ 
+	`__©Œibu‹__
+ ((
+__u£d__
+))
+
+	)
+
+246 
+	#__©Œibu‹_nošlše__
+ 
+	`__©Œibu‹__
+ ((
+__nošlše__
+))
+
+	)
+
+248 
+	#__©Œibu‹_u£d__
+ 
+	`__©Œibu‹__
+ ((
+__unu£d__
+))
+
+	)
+
+249 
+	#__©Œibu‹_nošlše__
+
+
+	)
+
+253 #ià
+__GNUC_PREREQ
+ (3,2)
+
+254 
+	#__©Œibu‹_d•»ÿ‹d__
+ 
+	`__©Œibu‹__
+ ((
+__d•»ÿ‹d__
+))
+
+	)
+
+256 
+	#__©Œibu‹_d•»ÿ‹d__
+
+
+	)
+
+265 #ià
+__GNUC_PREREQ
+ (2,8)
+
+266 
+	#__©Œibu‹_fÜm©_¬g__
+(
+x
+è
+	`__©Œibu‹__
+ ((
+	`__fÜm©_¬g__
+ (x)))
+
+	)
+
+268 
+	#__©Œibu‹_fÜm©_¬g__
+(
+x
+è
+
+	)
+
+275 #ià
+__GNUC_PREREQ
+ (2,97)
+
+276 
+	#__©Œibu‹_fÜm©_¡rfmÚ__
+(
+a
+,
+b
+) \
+
+277 
+	`__©Œibu‹__
+ ((
+	`__fÜm©__
+ (
+__¡rfmÚ__
+, 
+a
+, 
+b
+)))
+
+	)
+
+279 
+	#__©Œibu‹_fÜm©_¡rfmÚ__
+(
+a
+,
+b
+è
+
+	)
+
+284 #ià
+__GNUC_PREREQ
+ (3,3)
+
+285 
+	#__nÚnuÎ
+(
+·¿ms
+è
+	`__©Œibu‹__
+ ((
+__nÚnuÎ__
+…¬ams))
+
+	)
+
+287 
+	#__nÚnuÎ
+(
+·¿ms
+)
+
+	)
+
+292 #ià
+__GNUC_PREREQ
+ (3,4)
+
+293 
+	#__©Œibu‹_w¬n_unu£d_»suÉ__
+ \
+
+294 
+	`__©Œibu‹__
+ ((
+__w¬n_unu£d_»suÉ__
+))
+
+	)
+
+295 #ià
+__USE_FORTIFY_LEVEL
+ > 0
+
+296 
+	#__wur
+ 
+__©Œibu‹_w¬n_unu£d_»suÉ__
+
+
+	)
+
+299 
+	#__©Œibu‹_w¬n_unu£d_»suÉ__
+
+
+	)
+
+301 #iâdeà
+__wur
+
+
+302 
+	#__wur
+
+
+	)
+
+306 #ià
+__GNUC_PREREQ
+ (3,2)
+
+307 
+	#__®ways_šlše
+ 
+__šlše
+ 
+	`__©Œibu‹__
+ ((
+__®ways_šlše__
+))
+
+	)
+
+309 
+	#__®ways_šlše
+ 
+__šlše
+
+
+	)
+
+314 #ià
+__GNUC_PREREQ
+ (4,3)
+
+315 
+	#__©Œibu‹_¬tificŸl__
+ 
+	`__©Œibu‹__
+ ((
+__¬tificŸl__
+))
+
+	)
+
+317 
+	#__©Œibu‹_¬tificŸl__
+
+
+	)
+
+329 #ià(!
+defšed
+ 
+__ýlu¥lus
+ || 
+__GNUC_PREREQ
+ (4,3) \
+
+330 || (
+defšed
+ 
+__þªg__
+ && (defšed 
+__GNUC_STDC_INLINE__
+ \
+
+331 || 
+defšed
+ 
+__GNUC_GNU_INLINE__
+)))
+
+332 #ià
+defšed
+ 
+__GNUC_STDC_INLINE__
+ || defšed 
+__ýlu¥lus
+
+
+333 
+	#__ex‹º_šlše
+ 
+__šlše
+ 
+	`__©Œibu‹__
+ ((
+__gnu_šlše__
+))
+
+	)
+
+334 
+	#__ex‹º_®ways_šlše
+ \
+
+335 
+__®ways_šlše
+ 
+	`__©Œibu‹__
+ ((
+__gnu_šlše__
+))
+
+	)
+
+337 
+	#__ex‹º_šlše
+ 
+__šlše
+
+
+	)
+
+338 
+	#__ex‹º_®ways_šlše
+ 
+__®ways_šlše
+
+
+	)
+
+342 #ifdeà
+__ex‹º_®ways_šlše
+
+
+343 
+	#__fÜtify_funùiÚ
+ 
+__ex‹º_®ways_šlše
+ 
+__©Œibu‹_¬tificŸl__
+
+
+	)
+
+348 #ià
+__GNUC_PREREQ
+ (4,3)
+
+349 
+	#__va_¬g_·ck
+(è
+	`__bužtš_va_¬g_·ck
+ ()
+
+	)
+
+350 
+	#__va_¬g_·ck_Ën
+(è
+	`__bužtš_va_¬g_·ck_Ën
+ ()
+
+	)
+
+357 #ià!
+__GNUC_PREREQ
+ (2,8)
+
+358 
+	#__ex‹nsiÚ__
+
+
+	)
+
+362 #ià!
+__GNUC_PREREQ
+ (2,92)
+
+363 
+	#__»¡riù
+
+
+	)
+
+369 #ià
+__GNUC_PREREQ
+ (3,1è&& !
+defšed
+ 
+__GNUG__
+
+
+370 
+	#__»¡riù_¬r
+ 
+__»¡riù
+
+
+	)
+
+372 #ifdeà
+__GNUC__
+
+
+373 
+	#__»¡riù_¬r
+
+
+	)
+
+375 #ià
+defšed
+ 
+__STDC_VERSION__
+ && __STDC_VERSION__ >= 199901L
+
+376 
+	#__»¡riù_¬r
+ 
+»¡riù
+
+
+	)
+
+379 
+	#__»¡riù_¬r
+
+
+	)
+
+384 #ià
+__GNUC__
+ >= 3
+
+385 
+	#__glibc_uÆik–y
+(
+cÚd
+è
+	`__bužtš_ex³ù
+ ((cÚd), 0)
+
+	)
+
+386 
+	#__glibc_lik–y
+(
+cÚd
+è
+	`__bužtš_ex³ù
+ ((cÚd), 1)
+
+	)
+
+388 
+	#__glibc_uÆik–y
+(
+cÚd
+è(cÚd)
+
+	)
+
+389 
+	#__glibc_lik–y
+(
+cÚd
+è(cÚd)
+
+	)
+
+392 #ià(!
+defšed
+ 
+_Nܑuº
+ \
+
+393 && (
+defšed
+ 
+__STDC_VERSION__
+ ? __STDC_VERSION__ : 0) < 201112 \
+
+394 && !
+	$__GNUC_PREREQ
+ (4,7))
+
+395 #ià
+	`__GNUC_PREREQ
+ (2,8)
+
+396 
+	#_Nܑuº
+ 
+	`__©Œibu‹__
+ ((
+__nܑuº__
+))
+
+	)
+
+398 
+	#_Nܑuº
+
+
+	)
+
+402 #ià(!
+defšed
+ 
+_Stic_as£¹
+ && !defšed 
+__ýlu¥lus
+ \
+
+403 && (
+defšed
+ 
+__STDC_VERSION__
+ ? __STDC_VERSION__ : 0) < 201112 \
+
+404 && (!
+	`__GNUC_PREREQ
+ (4, 6è|| 
+defšed
+ 
+__STRICT_ANSI__
+))
+
+405 
+	#_Stic_as£¹
+(
+ex´
+, 
+dŸgno¡ic
+) \
+
+406 
(*
+	`__Stic_as£¹_funùiÚ
+ ()) \
+
+407 [!! (¡ruù { 
+__”rÜ_if_Ãg©ive
+: (
+ex´
+è? 2 : -1; })]
+
+	)
+
+410 
+	~<b™s/wÜdsize.h
+>
+
+412 #ià
+defšed
+ 
+__LONG_DOUBLE_MATH_OPTIONAL
+ && defšed 
+__NO_LONG_DOUBLE_MATH
+
+
+413 
+	#__LDBL_COMPAT
+ 1
+
+	)
+
+414 #ifdeà
+__REDIRECT
+
+
+415 
+	#__LDBL_REDIR1
+(
+Çme
+, 
+´Ùo
+, 
+®Ÿs
+è
+	`__REDIRECT
+ (Çme,…rÙo,‡lŸs)
+
+	)
+
+416 
+	#__LDBL_REDIR
+(
+Çme
+, 
+´Ùo
+) \
+
+417 
+	`__LDBL_REDIR1
+ (
+Çme
+, 
+´Ùo
+, 
+__Ædbl_
+##Çme)
+
+	)
+
+418 
+	#__LDBL_REDIR1_NTH
+(
+Çme
+, 
+´Ùo
+, 
+®Ÿs
+è
+	`__REDIRECT_NTH
+ (Çme,…rÙo,‡lŸs)
+
+	)
+
+419 
+	#__LDBL_REDIR_NTH
+(
+Çme
+, 
+´Ùo
+) \
+
+420 
+	`__LDBL_REDIR1_NTH
+ (
+Çme
+, 
+´Ùo
+, 
+__Ædbl_
+##Çme)
+
+	)
+
+421 
+	#__LDBL_REDIR1_DECL
+(
+Çme
+, 
+®Ÿs
+) \
+
+422 
+	`__ty³of
+ (
+Çme
+èÇm
+	`__asm
+ (
+	`__ASMNAME
+ (#®Ÿs));
+
+	)
+
+423 
+	#__LDBL_REDIR_DECL
+(
+Çme
+) \
+
+424 
+	`__ty³of
+ (
+Çme
+èÇm
+	`__asm
+ (
+	`__ASMNAME
+ ("__Ædbl_" #Çme));
+
+	)
+
+425 
+	#__REDIRECT_LDBL
+(
+Çme
+, 
+´Ùo
+, 
+®Ÿs
+) \
+
+426 
+	`__LDBL_REDIR1
+ (
+Çme
+, 
+´Ùo
+, 
+__Ædbl_
+##
+®Ÿs
+)
+
+	)
+
+427 
+	#__REDIRECT_NTH_LDBL
+(
+Çme
+, 
+´Ùo
+, 
+®Ÿs
+) \
+
+428 
+	`__LDBL_REDIR1_NTH
+ (
+Çme
+, 
+´Ùo
+, 
+__Ædbl_
+##
+®Ÿs
+)
+
+	)
+
+431 #ià!
+defšed
+ 
+__LDBL_COMPAT
+ || !defšed 
+__REDIRECT
+
+
+432 
+	#__LDBL_REDIR1
+(
+Çme
+, 
+´Ùo
+, 
+®Ÿs
+èÇm
+	)
+proto
+
+433 
+	#__LDBL_REDIR
+(
+Çme
+, 
+´Ùo
+èÇm
+	)
+proto
+
+434 
+	#__LDBL_REDIR1_NTH
+(
+Çme
+, 
+´Ùo
+, 
+®Ÿs
+èÇm´ÙØ
+__THROW
+
+
+	)
+
+435 
+	#__LDBL_REDIR_NTH
+(
+Çme
+, 
+´Ùo
+èÇm´ÙØ
+__THROW
+
+
+	)
+
+436 
+	#__LDBL_REDIR_DECL
+(
+Çme
+)
+
+	)
+
+437 #ifdeà
+__REDIRECT
+
+
+438 
+	#__REDIRECT_LDBL
+(
+Çme
+, 
+´Ùo
+, 
+®Ÿs
+è
+	`__REDIRECT
+ (Çme,…rÙo,‡lŸs)
+
+	)
+
+439 
+	#__REDIRECT_NTH_LDBL
+(
+Çme
+, 
+´Ùo
+, 
+®Ÿs
+) \
+
+440 
+	`__REDIRECT_NTH
+ (
+Çme
+, 
+´Ùo
+, 
+®Ÿs
+)
+
+	)
+
+	@/usr/include/asm-generic/socket.h
+
+1 #iâdeà
+__ASM_GENERIC_SOCKET_H
+
+
+2 
+	#__ASM_GENERIC_SOCKET_H
+
+
+	)
+
+4 
+	~<asm/sockios.h
+>
+
+7 
+	#SOL_SOCKET
+ 1
+
+	)
+
+9 
+	#SO_DEBUG
+ 1
+
+	)
+
+10 
+	#SO_REUSEADDR
+ 2
+
+	)
+
+11 
+	#SO_TYPE
+ 3
+
+	)
+
+12 
+	#SO_ERROR
+ 4
+
+	)
+
+13 
+	#SO_DONTROUTE
+ 5
+
+	)
+
+14 
+	#SO_BROADCAST
+ 6
+
+	)
+
+15 
+	#SO_SNDBUF
+ 7
+
+	)
+
+16 
+	#SO_RCVBUF
+ 8
+
+	)
+
+17 
+	#SO_SNDBUFFORCE
+ 32
+
+	)
+
+18 
+	#SO_RCVBUFFORCE
+ 33
+
+	)
+
+19 
+	#SO_KEEPALIVE
+ 9
+
+	)
+
+20 
+	#SO_OOBINLINE
+ 10
+
+	)
+
+21 
+	#SO_NO_CHECK
+ 11
+
+	)
+
+22 
+	#SO_PRIORITY
+ 12
+
+	)
+
+23 
+	#SO_LINGER
+ 13
+
+	)
+
+24 
+	#SO_BSDCOMPAT
+ 14
+
+	)
+
+25 
+	#SO_REUSEPORT
+ 15
+
+	)
+
+26 #iâdeà
+SO_PASSCRED
+
+
+27 
+	#SO_PASSCRED
+ 16
+
+	)
+
+28 
+	#SO_PEERCRED
+ 17
+
+	)
+
+29 
+	#SO_RCVLOWAT
+ 18
+
+	)
+
+30 
+	#SO_SNDLOWAT
+ 19
+
+	)
+
+31 
+	#SO_RCVTIMEO
+ 20
+
+	)
+
+32 
+	#SO_SNDTIMEO
+ 21
+
+	)
+
+36 
+	#SO_SECURITY_AUTHENTICATION
+ 22
+
+	)
+
+37 
+	#SO_SECURITY_ENCRYPTION_TRANSPORT
+ 23
+
+	)
+
+38 
+	#SO_SECURITY_ENCRYPTION_NETWORK
+ 24
+
+	)
+
+40 
+	#SO_BINDTODEVICE
+ 25
+
+	)
+
+43 
+	#SO_ATTACH_FILTER
+ 26
+
+	)
+
+44 
+	#SO_DETACH_FILTER
+ 27
+
+	)
+
+45 
+	#SO_GET_FILTER
+ 
+SO_ATTACH_FILTER
+
+
+	)
+
+47 
+	#SO_PEERNAME
+ 28
+
+	)
+
+48 
+	#SO_TIMESTAMP
+ 29
+
+	)
+
+49 
+	#SCM_TIMESTAMP
+ 
+SO_TIMESTAMP
+
+
+	)
+
+51 
+	#SO_ACCEPTCONN
+ 30
+
+	)
+
+53 
+	#SO_PEERSEC
+ 31
+
+	)
+
+54 
+	#SO_PASSSEC
+ 34
+
+	)
+
+55 
+	#SO_TIMESTAMPNS
+ 35
+
+	)
+
+56 
+	#SCM_TIMESTAMPNS
+ 
+SO_TIMESTAMPNS
+
+
+	)
+
+58 
+	#SO_MARK
+ 36
+
+	)
+
+60 
+	#SO_TIMESTAMPING
+ 37
+
+	)
+
+61 
+	#SCM_TIMESTAMPING
+ 
+SO_TIMESTAMPING
+
+
+	)
+
+63 
+	#SO_PROTOCOL
+ 38
+
+	)
+
+64 
+	#SO_DOMAIN
+ 39
+
+	)
+
+66 
+	#SO_RXQ_OVFL
+ 40
+
+	)
+
+68 
+	#SO_WIFI_STATUS
+ 41
+
+	)
+
+69 
+	#SCM_WIFI_STATUS
+ 
+SO_WIFI_STATUS
+
+
+	)
+
+70 
+	#SO_PEEK_OFF
+ 42
+
+	)
+
+73 
+	#SO_NOFCS
+ 43
+
+	)
+
+75 
+	#SO_LOCK_FILTER
+ 44
+
+	)
+
+77 
+	#SO_SELECT_ERR_QUEUE
+ 45
+
+	)
+
+79 
+	#SO_BUSY_POLL
+ 46
+
+	)
+
+81 
+	#SO_MAX_PACING_RATE
+ 47
+
+	)
+
+83 
+	#SO_BPF_EXTENSIONS
+ 48
+
+	)
+
+85 
+	#SO_INCOMING_CPU
+ 49
+
+	)
+
+87 
+	#SO_ATTACH_BPF
+ 50
+
+	)
+
+88 
+	#SO_DETACH_BPF
+ 
+SO_DETACH_FILTER
+
+
+	)
+
+	@/usr/include/asm/errno.h
+
+1 
+	~<asm-g’”ic/”ºo.h
+>
+
+	@/usr/include/asm/param.h
+
+1 
+	~<asm-g’”ic/·¿m.h
+>
+
+	@/usr/include/bits/local_lim.h
+
+24 #iâdeà
+NR_OPEN
+
+
+25 
+	#__undef_NR_OPEN
+
+
+	)
+
+27 #iâdeà
+LINK_MAX
+
+
+28 
+	#__undef_LINK_MAX
+
+
+	)
+
+30 #iâdeà
+OPEN_MAX
+
+
+31 
+	#__undef_OPEN_MAX
+
+
+	)
+
+33 #iâdeà
+ARG_MAX
+
+
+34 
+	#__undef_ARG_MAX
+
+
+	)
+
+38 
+	~<lšux/lim™s.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 
+	#_POSIX_THREAD_KEYS_MAX
+ 128
+
+	)
+
+64 
+	#PTHREAD_KEYS_MAX
+ 1024
+
+	)
+
+67 
+	#_POSIX_THREAD_DESTRUCTOR_ITERATIONS
+ 4
+
+	)
+
+69 
+	#PTHREAD_DESTRUCTOR_ITERATIONS
+ 
+_POSIX_THREAD_DESTRUCTOR_ITERATIONS
+
+
+	)
+
+72 
+	#_POSIX_THREAD_THREADS_MAX
+ 64
+
+	)
+
+74 #undeà
+PTHREAD_THREADS_MAX
+
+
+78 
+	#AIO_PRIO_DELTA_MAX
+ 20
+
+	)
+
+81 
+	#PTHREAD_STACK_MIN
+ 16384
+
+	)
+
+84 
+	#DELAYTIMER_MAX
+ 2147483647
+
+	)
+
+87 
+	#TTY_NAME_MAX
+ 32
+
+	)
+
+90 
+	#LOGIN_NAME_MAX
+ 256
+
+	)
+
+93 
+	#HOST_NAME_MAX
+ 64
+
+	)
+
+96 
+	#MQ_PRIO_MAX
+ 32768
+
+	)
+
+99 
+	#SEM_VALUE_MAX
+ (2147483647)
+
+	)
+
+	@/usr/include/gconv.h
+
+22 #iâdeà
+_GCONV_H
+
+
+23 
+	#_GCONV_H
+ 1
+
+	)
+
+25 
+	~<ã©u»s.h
+>
+
+26 
+	#__Ãed_mb¡©e_t
+
+
+	)
+
+27 
+	#__Ãed_wšt_t
+
+
+	)
+
+28 
+	~<wch¬.h
+>
+
+29 
+	#__Ãed_size_t
+
+
+	)
+
+30 
+	#__Ãed_wch¬_t
+
+
+	)
+
+31 
+	~<¡ddef.h
+>
+
+34 
+	#__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 
+	g__gcÚv_¡•
+;
+
+66 
+	g__gcÚv_¡•_d©a
+;
+
+67 
+	g__gcÚv_lßded_objeù
+;
+
+71 (*
+	t__gcÚv_fù
+è(
+	t__gcÚv_¡•
+ *, 
+	t__gcÚv_¡•_d©a
+ *,
+
+73 **, 
+	tsize_t
+ *, , );
+
+76 
+	$wšt_t
+ (*
+	t__gcÚv_btowc_fù
+è(
+	t__gcÚv_¡•
+ *, );
+
+79 (*
+	t__gcÚv_š™_fù
+è(
+	t__gcÚv_¡•
+ *);
+
+80 (*
+	t__gcÚv_’d_fù
+è(
+	t__gcÚv_¡•
+ *);
+
+84 
+	s__gcÚv_¡•
+
+
+86 
+__gcÚv_lßded_objeù
+ *
+__shlib_hªdË
+;
+
+87 cÚ¡ *
+__modÇme
+;
+
+89 
+__couÁ”
+;
+
+91 *
+__äom_Çme
+;
+
+92 *
+__to_Çme
+;
+
+94 
+__gcÚv_fù
+ 
+__fù
+;
+
+95 
+__gcÚv_btowc_fù
+ 
+__btowc_fù
+;
+
+96 
+__gcÚv_š™_fù
+ 
+__š™_fù
+;
+
+97 
+__gcÚv_’d_fù
+ 
+__’d_fù
+;
+
+101 
+__mš_Ãeded_äom
+;
+
+102 
+__max_Ãeded_äom
+;
+
+103 
+__mš_Ãeded_to
+;
+
+104 
+__max_Ãeded_to
+;
+
+107 
+__¡©eful
+;
+
+109 *
+__d©a
+;
+
+114 
+	s__gcÚv_¡•_d©a
+
+
+116 *
+__outbuf
+;
+
+117 *
+__outbuãnd
+;
+
+121 
+__æags
+;
+
+125 
+__švoÿtiÚ_couÁ”
+;
+
+129 
+__š‹º®_u£
+;
+
+131 
+__mb¡©e_t
+ *
+__¡©•
+;
+
+132 
+__mb¡©e_t
+ 
+__¡©e
+;
+
+138 
+	s__gcÚv_šfo
+
+
+140 
+size_t
+ 
+__n¡•s
+;
+
+141 
+__gcÚv_¡•
+ *
+__¡•s
+;
+
+142 
+__ex‹nsiÚ__
+ 
+__gcÚv_¡•_d©a
+ 
+__d©a
+ 
+__æex¬r
+;
+
+143 } *
+	t__gcÚv_t
+;
+
+146 

+	`__gcÚv_Œª¦™”©e
+ (
+__gcÚv_¡•
+ *
+¡•
+,
+
+147 
+__gcÚv_¡•_d©a
+ *
+¡•_d©a
+,
+
+148 cÚ¡ *
+šbuf¡¬t
+,
+
+149 cÚ¡ **
+šbuå
+,
+
+150 cÚ¡ *
+šbuãnd
+,
+
+151 **
+outbuf¡¬t
+,
+
+152 
+size_t
+ *
+œ»v”sibË
+);
+
+	@/usr/include/gnu/stubs-32.h
+
+6 #ifdeà
+_LIBC
+
+
+7 #”rÜ 
+AµliÿtiÚs
+ 
+may
+ 
+nÙ
+ 
+defše
+ 
+the
+ 
+maüo
+ 
+_LIBC
+
+
+10 
+	#__¡ub_chæags
+
+
+	)
+
+11 
+	#__¡ub_ç‰ach
+
+
+	)
+
+12 
+	#__¡ub_fchæags
+
+
+	)
+
+13 
+	#__¡ub_fd‘ach
+
+
+	)
+
+14 
+	#__¡ub_g‰y
+
+
+	)
+
+15 
+	#__¡ub_lchmod
+
+
+	)
+
+16 
+	#__¡ub_»voke
+
+
+	)
+
+17 
+	#__¡ub_£Žogš
+
+
+	)
+
+18 
+	#__¡ub_sig»tuº
+
+
+	)
+
+19 
+	#__¡ub_s¡k
+
+
+	)
+
+20 
+	#__¡ub_¡ty
+
+
+	)
+
+	@/usr/include/gnu/stubs-64.h
+
+6 #ifdeà
+_LIBC
+
+
+7 #”rÜ 
+AµliÿtiÚs
+ 
+may
+ 
+nÙ
+ 
+defše
+ 
+the
+ 
+maüo
+ 
+_LIBC
+
+
+10 
+	#__¡ub___com·t_bdæush
+
+
+	)
+
+11 
+	#__¡ub_chæags
+
+
+	)
+
+12 
+	#__¡ub_ç‰ach
+
+
+	)
+
+13 
+	#__¡ub_fchæags
+
+
+	)
+
+14 
+	#__¡ub_fd‘ach
+
+
+	)
+
+15 
+	#__¡ub_g‘msg
+
+
+	)
+
+16 
+	#__¡ub_g‰y
+
+
+	)
+
+17 
+	#__¡ub_lchmod
+
+
+	)
+
+18 
+	#__¡ub_putmsg
+
+
+	)
+
+19 
+	#__¡ub_»voke
+
+
+	)
+
+20 
+	#__¡ub_£Žogš
+
+
+	)
+
+21 
+	#__¡ub_sig»tuº
+
+
+	)
+
+22 
+	#__¡ub_s¡k
+
+
+	)
+
+23 
+	#__¡ub_¡ty
+
+
+	)
+
+	@/usr/include/gnu/stubs-x32.h
+
+6 #ifdeà
+_LIBC
+
+
+7 #”rÜ 
+AµliÿtiÚs
+ 
+may
+ 
+nÙ
+ 
+defše
+ 
+the
+ 
+maüo
+ 
+_LIBC
+
+
+10 
+	#__¡ub___com·t_bdæush
+
+
+	)
+
+11 
+	#__¡ub___com·t_ü—‹_moduË
+
+
+	)
+
+12 
+	#__¡ub___com·t_g‘_k”Ãl_syms
+
+
+	)
+
+13 
+	#__¡ub___com·t_qu”y_moduË
+
+
+	)
+
+14 
+	#__¡ub___com·t_u£lib
+
+
+	)
+
+15 
+	#__¡ub_chæags
+
+
+	)
+
+16 
+	#__¡ub_ç‰ach
+
+
+	)
+
+17 
+	#__¡ub_fchæags
+
+
+	)
+
+18 
+	#__¡ub_fd‘ach
+
+
+	)
+
+19 
+	#__¡ub_g‘msg
+
+
+	)
+
+20 
+	#__¡ub_g‰y
+
+
+	)
+
+21 
+	#__¡ub_lchmod
+
+
+	)
+
+22 
+	#__¡ub_nfs£rvùl
+
+
+	)
+
+23 
+	#__¡ub_putmsg
+
+
+	)
+
+24 
+	#__¡ub_»voke
+
+
+	)
+
+25 
+	#__¡ub_£Žogš
+
+
+	)
+
+26 
+	#__¡ub_sig»tuº
+
+
+	)
+
+27 
+	#__¡ub_s¡k
+
+
+	)
+
+28 
+	#__¡ub_¡ty
+
+
+	)
+
+	@/usr/include/wchar.h
+
+23 #iâdeà
+_WCHAR_H
+
+
+25 #ià!
+defšed
+ 
+__Ãed_mb¡©e_t
+ && !defšed 
+__Ãed_wšt_t
+
+
+26 
+	#_WCHAR_H
+ 1
+
+	)
+
+27 
+	~<ã©u»s.h
+>
+
+30 #ifdeà
+_WCHAR_H
+
+
+32 
+	#__Ãed___FILE
+
+
+	)
+
+33 #ià
+defšed
+ 
+__USE_UNIX98
+ || defšed 
+__USE_XOPEN2K
+
+
+34 
+	#__Ãed_FILE
+
+
+	)
+
+36 
+	~<¡dio.h
+>
+
+38 
+	#__Ãed___va_li¡
+
+
+	)
+
+39 
+	~<¡d¬g.h
+>
+
+41 
+	~<b™s/wch¬.h
+>
+
+44 
+	#__Ãed_size_t
+
+
+	)
+
+45 
+	#__Ãed_wch¬_t
+
+
+	)
+
+46 
+	#__Ãed_NULL
+
+
+	)
+
+48 #ià
+defšed
+ 
+_WCHAR_H
+ || defšed 
+__Ãed_wšt_t
+ || !defšed 
+__WINT_TYPE__
+
+
+49 #undeà
+__Ãed_wšt_t
+
+
+50 
+	#__Ãed_wšt_t
+
+
+	)
+
+51 
+	~<¡ddef.h
+>
+
+55 #iâdeà
+_WINT_T
+
+
+60 
+	#_WINT_T
+
+
+	)
+
+61 
+	twšt_t
+;
+
+65 #ià
+defšed
+ 
+__ýlu¥lus
+ && defšed 
+_GLIBCPP_USE_NAMESPACES
+ \
+
+66 && 
+defšed
+ 
+__WINT_TYPE__
+
+
+67 
+__BEGIN_NAMESPACE_STD
+
+
+68 
+__WINT_TYPE__
+ 
+	twšt_t
+;
+
+69 
+	g__END_NAMESPACE_STD
+
+
+74 #ià
+defšed
+ 
+__ýlu¥lus
+ && 
+__GNUC_PREREQ
+ (4, 4)
+
+75 
+	#__CORRECT_ISO_CPP_WCHAR_H_PROTO
+
+
+	)
+
+79 #ià(
+defšed
+ 
+_WCHAR_H
+ || defšed 
+__Ãed_mb¡©e_t
+è&& !defšed 
+____mb¡©e_t_defšed
+
+
+80 
+	#____mb¡©e_t_defšed
+ 1
+
+	)
+
+84 
+	m__couÁ
+;
+
+87 #ifdeà
+__WINT_TYPE__
+
+
+88 
+__WINT_TYPE__
+ 
+	m__wch
+;
+
+90 
+wšt_t
+ 
+	m__wch
+;
+
+92 
+	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šed
+
+
+104 
+__BEGIN_NAMESPACE_C99
+
+
+106 
+__mb¡©e_t
+ 
+	tmb¡©e_t
+;
+
+107 
+	g__END_NAMESPACE_C99
+
+
+108 
+	#__mb¡©e_t_defšed
+ 1
+
+	)
+
+111 #ifdeà
+__USE_GNU
+
+
+112 
+	$__USING_NAMESPACE_C99
+(
+mb¡©e_t
+)
+
+115 #iâdeà
+WCHAR_MIN
+
+
+117 
+	#WCHAR_MIN
+ 
+__WCHAR_MIN
+
+
+	)
+
+118 
+	#WCHAR_MAX
+ 
+__WCHAR_MAX
+
+
+	)
+
+121 #iâdeà
+WEOF
+
+
+122 
+	#WEOF
+ (0xffffffffu)
+
+	)
+
+127 #ià
+defšed
+ 
+__USE_XOPEN
+ && !defšed 
+__USE_UNIX98
+
+
+128 
+	~<wùy³.h
+>
+
+132 
+__BEGIN_DECLS
+
+
+134 
+__BEGIN_NAMESPACE_STD
+
+
+137 
+tm
+;
+
+138 
+__END_NAMESPACE_STD
+
+
+142 
+	$__USING_NAMESPACE_STD
+(
+tm
+)
+
+145 
+__BEGIN_NAMESPACE_STD
+
+
+147 
+wch¬_t
+ *
+	$wcsýy
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__de¡
+,
+
+148 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+)
+
+149 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+152 
+wch¬_t
+ *
+	$wc¢ýy
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__de¡
+,
+
+153 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+154 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+157 
+wch¬_t
+ *
+	$wcsÿt
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__de¡
+,
+
+158 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+)
+
+159 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+161 
+wch¬_t
+ *
+	$wc¢ÿt
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__de¡
+,
+
+162 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+163 
+__THROW
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+166 

+	$wcscmp
+ (cÚ¡ 
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_ˆ*
+__s2
+)
+
+167 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+169 

+	$wc¢cmp
+ (cÚ¡ 
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_ˆ*
+__s2
+, 
+size_t
+ 
+__n
+)
+
+170 
+__THROW
+ 
+__©Œibu‹_pu»__
+ 
+	`__nÚnuÎ
+ ((1, 2));
+
+171 
+__END_NAMESPACE_STD
+
+
+173 #ifdeà
+__USE_XOPEN2K8
+
+
+175 

+	$wcsÿ£cmp
+ (cÚ¡ 
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_ˆ*
+__s2
+è
+__THROW
+;
+
+178 

+	$wc¢ÿ£cmp
+ (cÚ¡ 
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_ˆ*
+__s2
+,
+
+179 
+size_t
+ 
+__n
+è
+__THROW
+;
+
+183 
+	~<xloÿË.h
+>
+
+185 

+	$wcsÿ£cmp_l
+ (cÚ¡ 
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_ˆ*
+__s2
+,
+
+186 
+__loÿË_t
+ 
+__loc
+è
+__THROW
+;
+
+188 

+	$wc¢ÿ£cmp_l
+ (cÚ¡ 
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_ˆ*
+__s2
+,
+
+189 
+size_t
+ 
+__n
+, 
+__loÿË_t
+ 
+__loc
+è
+__THROW
+;
+
+192 
+__BEGIN_NAMESPACE_STD
+
+
+195 

+	$wcscÞl
+ (cÚ¡ 
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_ˆ*
+__s2
+è
+__THROW
+;
+
+199 
+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 

+	$wcscÞl_l
+ (cÚ¡ 
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_ˆ*
+__s2
+,
+
+210 
+__loÿË_t
+ 
+__loc
+è
+__THROW
+;
+
+215 
+size_t
+ 
+	$wcsxäm_l
+ (
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_ˆ*
+__s2
+,
+
+216 
+size_t
+ 
+__n
+, 
+__loÿË_t
+ 
+__loc
+è
+__THROW
+;
+
+219 
+wch¬_t
+ *
+	$wcsdup
+ (cÚ¡ 
+wch¬_t
+ *
+__s
+è
+__THROW
+ 
+__©Œibu‹_m®loc__
+;
+
+222 
+__BEGIN_NAMESPACE_STD
+
+
+224 #ifdeà
+__CORRECT_ISO_CPP_WCHAR_H_PROTO
+
+
+225 
"C++" 
+wch¬_t
+ *
+	$wcschr
+ (
+wch¬_t
+ *
+__wcs
+, wch¬_ˆ
+__wc
+)
+
+226 
+__THROW
+ 
+	`__asm
+ ("wcschr"è
+__©Œibu‹_pu»__
+;
+
+227 
"C++" cÚ¡ 
+wch¬_t
+ *
+	$wcschr
+ (cÚ¡ 
+wch¬_t
+ *
+__wcs
+, wch¬_ˆ
+__wc
+)
+
+228 
+__THROW
+ 
+	`__asm
+ ("wcschr"è
+__©Œibu‹_pu»__
+;
+
+230 
+wch¬_t
+ *
+	$wcschr
+ (cÚ¡ 
+wch¬_t
+ *
+__wcs
+, wch¬_ˆ
+__wc
+)
+
+231 
+__THROW
+ 
+__©Œibu‹_pu»__
+;
+
+234 #ifdeà
+__CORRECT_ISO_CPP_WCHAR_H_PROTO
+
+
+235 
"C++" 
+wch¬_t
+ *
+	$wc¤chr
+ (
+wch¬_t
+ *
+__wcs
+, wch¬_ˆ
+__wc
+)
+
+236 
+__THROW
+ 
+	`__asm
+ ("wc¤chr"è
+__©Œibu‹_pu»__
+;
+
+237 
"C++" cÚ¡ 
+wch¬_t
+ *
+	$wc¤chr
+ (cÚ¡ 
+wch¬_t
+ *
+__wcs
+, wch¬_ˆ
+__wc
+)
+
+238 
+__THROW
+ 
+	`__asm
+ ("wc¤chr"è
+__©Œibu‹_pu»__
+;
+
+240 
+wch¬_t
+ *
+	$wc¤chr
+ (cÚ¡ 
+wch¬_t
+ *
+__wcs
+, wch¬_ˆ
+__wc
+)
+
+241 
+__THROW
+ 
+__©Œibu‹_pu»__
+;
+
+243 
+__END_NAMESPACE_STD
+
+
+245 #ifdeà
+__USE_GNU
+
+
+248 
+wch¬_t
+ *
+	$wcschºul
+ (cÚ¡ 
+wch¬_t
+ *
+__s
+, wch¬_ˆ
+__wc
+)
+
+249 
+__THROW
+ 
+__©Œibu‹_pu»__
+;
+
+252 
+__BEGIN_NAMESPACE_STD
+
+
+255 
+size_t
+ 
+	$wcsc¥n
+ (cÚ¡ 
+wch¬_t
+ *
+__wcs
+, cÚ¡ wch¬_ˆ*
+__»jeù
+)
+
+256 
+__THROW
+ 
+__©Œibu‹_pu»__
+;
+
+259 
+size_t
+ 
+	$wcs¥n
+ (cÚ¡ 
+wch¬_t
+ *
+__wcs
+, cÚ¡ wch¬_ˆ*
+__acû±
+)
+
+260 
+__THROW
+ 
+__©Œibu‹_pu»__
+;
+
+262 #ifdeà
+__CORRECT_ISO_CPP_WCHAR_H_PROTO
+
+
+263 
"C++" 
+wch¬_t
+ *
+	$wc¥brk
+ (
+wch¬_t
+ *
+__wcs
+, cÚ¡ wch¬_ˆ*
+__acû±
+)
+
+264 
+__THROW
+ 
+	`__asm
+ ("wc¥brk"è
+__©Œibu‹_pu»__
+;
+
+265 
"C++" cÚ¡ 
+wch¬_t
+ *
+	$wc¥brk
+ (cÚ¡ 
+wch¬_t
+ *
+__wcs
+,
+
+266 cÚ¡ 
+wch¬_t
+ *
+__acû±
+)
+
+267 
+__THROW
+ 
+	`__asm
+ ("wc¥brk"è
+__©Œibu‹_pu»__
+;
+
+269 
+wch¬_t
+ *
+	$wc¥brk
+ (cÚ¡ 
+wch¬_t
+ *
+__wcs
+, cÚ¡ wch¬_ˆ*
+__acû±
+)
+
+270 
+__THROW
+ 
+__©Œibu‹_pu»__
+;
+
+273 #ifdeà
+__CORRECT_ISO_CPP_WCHAR_H_PROTO
+
+
+274 
"C++" 
+wch¬_t
+ *
+	$wcs¡r
+ (
+wch¬_t
+ *
+__hay¡ack
+, cÚ¡ wch¬_ˆ*
+__ÃedË
+)
+
+275 
+__THROW
+ 
+	`__asm
+ ("wcs¡r"è
+__©Œibu‹_pu»__
+;
+
+276 
"C++" cÚ¡ 
+wch¬_t
+ *
+	$wcs¡r
+ (cÚ¡ 
+wch¬_t
+ *
+__hay¡ack
+,
+
+277 cÚ¡ 
+wch¬_t
+ *
+__ÃedË
+)
+
+278 
+__THROW
+ 
+	`__asm
+ ("wcs¡r"è
+__©Œibu‹_pu»__
+;
+
+280 
+wch¬_t
+ *
+	$wcs¡r
+ (cÚ¡ 
+wch¬_t
+ *
+__hay¡ack
+, cÚ¡ wch¬_ˆ*
+__ÃedË
+)
+
+281 
+__THROW
+ 
+__©Œibu‹_pu»__
+;
+
+285 
+wch¬_t
+ *
+	$wc¡ok
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+,
+
+286 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__d–im
+,
+
+287 
+wch¬_t
+ **
+__»¡riù
+ 
+__±r
+è
+__THROW
+;
+
+290 
+size_t
+ 
+	$wc¦’
+ (cÚ¡ 
+wch¬_t
+ *
+__s
+è
+__THROW
+ 
+__©Œibu‹_pu»__
+;
+
+291 
+__END_NAMESPACE_STD
+
+
+293 #ifdeà
+__USE_XOPEN
+
+
+295 #ifdeà
+__CORRECT_ISO_CPP_WCHAR_H_PROTO
+
+
+296 
"C++" 
+wch¬_t
+ *
+	$wcswcs
+ (
+wch¬_t
+ *
+__hay¡ack
+, cÚ¡ wch¬_ˆ*
+__ÃedË
+)
+
+297 
+__THROW
+ 
+	`__asm
+ ("wcswcs"è
+__©Œibu‹_pu»__
+;
+
+298 
"C++" cÚ¡ 
+wch¬_t
+ *
+	$wcswcs
+ (cÚ¡ 
+wch¬_t
+ *
+__hay¡ack
+,
+
+299 cÚ¡ 
+wch¬_t
+ *
+__ÃedË
+)
+
+300 
+__THROW
+ 
+	`__asm
+ ("wcswcs"è
+__©Œibu‹_pu»__
+;
+
+302 
+wch¬_t
+ *
+	$wcswcs
+ (cÚ¡ 
+wch¬_t
+ *
+__hay¡ack
+, cÚ¡ wch¬_ˆ*
+__ÃedË
+)
+
+303 
+__THROW
+ 
+__©Œibu‹_pu»__
+;
+
+307 #ifdeà
+__USE_XOPEN2K8
+
+
+309 
+size_t
+ 
+	$wc¢Ën
+ (cÚ¡ 
+wch¬_t
+ *
+__s
+, 
+size_t
+ 
+__maxËn
+)
+
+310 
+__THROW
+ 
+__©Œibu‹_pu»__
+;
+
+314 
+__BEGIN_NAMESPACE_STD
+
+
+316 #ifdeà
+__CORRECT_ISO_CPP_WCHAR_H_PROTO
+
+
+317 
"C++" 
+wch¬_t
+ *
+	$wmemchr
+ (
+wch¬_t
+ *
+__s
+, wch¬_ˆ
+__c
+, 
+size_t
+ 
+__n
+)
+
+318 
+__THROW
+ 
+	`__asm
+ ("wmemchr"è
+__©Œibu‹_pu»__
+;
+
+319 
"C++" cÚ¡ 
+wch¬_t
+ *
+	$wmemchr
+ (cÚ¡ 
+wch¬_t
+ *
+__s
+, wch¬_ˆ
+__c
+,
+
+320 
+size_t
+ 
+__n
+)
+
+321 
+__THROW
+ 
+	`__asm
+ ("wmemchr"è
+__©Œibu‹_pu»__
+;
+
+323 
+wch¬_t
+ *
+	$wmemchr
+ (cÚ¡ 
+wch¬_t
+ *
+__s
+, wch¬_ˆ
+__c
+, 
+size_t
+ 
+__n
+)
+
+324 
+__THROW
+ 
+__©Œibu‹_pu»__
+;
+
+328 

+	$wmemcmp
+ (cÚ¡ 
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_ˆ*
+__s2
+, 
+size_t
+ 
+__n
+)
+
+329 
+__THROW
+ 
+__©Œibu‹_pu»__
+;
+
+332 
+wch¬_t
+ *
+	$wmemýy
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s1
+,
+
+333 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__s2
+, 
+size_t
+ 
+__n
+è
+__THROW
+;
+
+337 
+wch¬_t
+ *
+	$wmemmove
+ (
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_ˆ*
+__s2
+, 
+size_t
+ 
+__n
+)
+
+338 
+__THROW
+;
+
+341 
+wch¬_t
+ *
+	$wmem£t
+ (
+wch¬_t
+ *
+__s
+, wch¬_ˆ
+__c
+, 
+size_t
+ 
+__n
+è
+__THROW
+;
+
+342 
+__END_NAMESPACE_STD
+
+
+344 #ifdeà
+__USE_GNU
+
+
+347 
+wch¬_t
+ *
+	$wmempýy
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s1
+,
+
+348 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__s2
+, 
+size_t
+ 
+__n
+)
+
+349 
+__THROW
+;
+
+353 
+__BEGIN_NAMESPACE_STD
+
+
+356 
+wšt_t
+ 
+	$btowc
+ (
+__c
+è
+__THROW
+;
+
+360 

+	$wùob
+ (
+wšt_t
+ 
+__c
+è
+__THROW
+;
+
+364 

+	$mbsš™
+ (cÚ¡ 
+mb¡©e_t
+ *
+__ps
+è
+__THROW
+ 
+__©Œibu‹_pu»__
+;
+
+368 
+size_t
+ 
+	$mb¹owc
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__pwc
+,
+
+369 cÚ¡ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+,
+
+370 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__p
+è
+__THROW
+;
+
+373 
+size_t
+ 
+	$wütomb
+ (*
+__»¡riù
+ 
+__s
+, 
+wch¬_t
+ 
+__wc
+,
+
+374 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+è
+__THROW
+;
+
+377 
+size_t
+ 
+	$__mb¾’
+ (cÚ¡ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+,
+
+378 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+è
+__THROW
+;
+
+379 
+size_t
+ 
+	$mb¾’
+ (cÚ¡ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+,
+
+380 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+è
+__THROW
+;
+
+381 
+__END_NAMESPACE_STD
+
+
+383 #ifdeà
+__USE_EXTERN_INLINES
+
+
+389 
+wšt_t
+ 
+	$__btowc_®Ÿs
+ (
+__c
+è
+	`__asm
+ ("btowc");
+
+390 
+__ex‹º_šlše
+ 
+wšt_t
+
+
+391 
+	`__NTH
+ (
+	$btowc
+ (
+__c
+))
+
+392 {  (
+	`__bužtš_cÚ¡ªt_p
+ (
+__c
+) && __c >= '\0' && __c <= '\x7f'
+
+393 ? (
+wšt_t
+è
+__c
+ : 
+	`__btowc_®Ÿs
+ (__c)); 
+	}
+}
+
+395 

+	$__wùob_®Ÿs
+ (
+wšt_t
+ 
+__c
+è
+	`__asm
+ ("wctob");
+
+396 
+__ex‹º_šlše
+ 
+
+397 
+	`__NTH
+ (
+	$wùob
+ (
+wšt_t
+ 
+__wc
+))
+
+398 {  (
+	`__bužtš_cÚ¡ªt_p
+ (
+__wc
+è&& __wø>ð
+L
+'\0' && __wc <= L'\x7f'
+
+399 ? (è
+__wc
+ : 
+	`__wùob_®Ÿs
+ (__wc)); 
+	}
+}
+
+401 
+__ex‹º_šlše
+ 
+size_t
+
+
+402 
+__NTH
+ (
+	$mb¾’
+ (cÚ¡ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+,
+
+403 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+))
+
+404 {  (
+__ps
+ !ð
+NULL
+
+
+405 ? 
+	`mb¹owc
+ (
+NULL
+, 
+__s
+, 
+__n
+, 
+__ps
+è: 
+	`__mb¾’
+ (__s, __n, NULL)); 
+	}
+}
+
+408 
+__BEGIN_NAMESPACE_STD
+
+
+411 
+size_t
+ 
+	$mb¤towcs
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__d¡
+,
+
+412 cÚ¡ **
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__Ën
+,
+
+413 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+è
+__THROW
+;
+
+417 
+size_t
+ 
+	$wc¤tombs
+ (*
+__»¡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 
+size_t
+ 
+	$mb¢¹owcs
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__d¡
+,
+
+427 cÚ¡ **
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__nmc
+,
+
+428 
+size_t
+ 
+__Ën
+, 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+è
+__THROW
+;
+
+432 
+size_t
+ 
+	$wc¢¹ombs
+ (*
+__»¡riù
+ 
+__d¡
+,
+
+433 cÚ¡ 
+wch¬_t
+ **
+__»¡riù
+ 
+__¤c
+,
+
+434 
+size_t
+ 
+__nwc
+, size_ˆ
+__Ën
+,
+
+435 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+è
+__THROW
+;
+
+440 #ifdeà
+__USE_XOPEN
+
+
+442 

+	$wcwidth
+ (
+wch¬_t
+ 
+__c
+è
+__THROW
+;
+
+446 

+	$wcswidth
+ (cÚ¡ 
+wch¬_t
+ *
+__s
+, 
+size_t
+ 
+__n
+è
+__THROW
+;
+
+450 
+__BEGIN_NAMESPACE_STD
+
+
+453 

+	$wc¡od
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+454 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+è
+__THROW
+;
+
+455 
+__END_NAMESPACE_STD
+
+
+457 #ifdeà
+__USE_ISOC99
+
+
+458 
+__BEGIN_NAMESPACE_C99
+
+
+460 

+	$wc¡of
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+461 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+è
+__THROW
+;
+
+462 

+	$wc¡Þd
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+463 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+è
+__THROW
+;
+
+464 
+__END_NAMESPACE_C99
+
+
+468 
+__BEGIN_NAMESPACE_STD
+
+
+471 

+	$wc¡Þ
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+472 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+è
+__THROW
+;
+
+476 

+	$wc¡oul
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+477 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+)
+
+478 
+__THROW
+;
+
+479 
+__END_NAMESPACE_STD
+
+
+481 #ifdeà
+__USE_ISOC99
+
+
+482 
+__BEGIN_NAMESPACE_C99
+
+
+485 
+__ex‹nsiÚ__
+
+
+486 

+	$wc¡Þl
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+487 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+)
+
+488 
+__THROW
+;
+
+492 
+__ex‹nsiÚ__
+
+
+493 

+	$wc¡ouÎ
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+494 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+,
+
+495 
+__ba£
+è
+__THROW
+;
+
+496 
+__END_NAMESPACE_C99
+
+
+499 #ifdeà
+__USE_GNU
+
+
+502 
+__ex‹nsiÚ__
+
+
+503 

+	$wc¡oq
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+504 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+)
+
+505 
+__THROW
+;
+
+509 
+__ex‹nsiÚ__
+
+
+510 

+	$wc¡ouq
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+511 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+,
+
+512 
+__ba£
+è
+__THROW
+;
+
+515 #ifdeà
+__USE_GNU
+
+
+529 
+	~<xloÿË.h
+>
+
+533 

+	$wc¡Þ_l
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+534 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+, 
+__ba£
+,
+
+535 
+__loÿË_t
+ 
+__loc
+è
+__THROW
+;
+
+537 

+	$wc¡oul_l
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+538 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+,
+
+539 
+__ba£
+, 
+__loÿË_t
+ 
+__loc
+è
+__THROW
+;
+
+541 
+__ex‹nsiÚ__
+
+
+542 

+	$wc¡Þl_l
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+543 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+,
+
+544 
+__ba£
+, 
+__loÿË_t
+ 
+__loc
+è
+__THROW
+;
+
+546 
+__ex‹nsiÚ__
+
+
+547 

+	$wc¡ouÎ_l
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+548 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+,
+
+549 
+__ba£
+, 
+__loÿË_t
+ 
+__loc
+)
+
+550 
+__THROW
+;
+
+552 

+	$wc¡od_l
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+553 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+, 
+__loÿË_t
+ 
+__loc
+)
+
+554 
+__THROW
+;
+
+556 

+	$wc¡of_l
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+557 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+, 
+__loÿË_t
+ 
+__loc
+)
+
+558 
+__THROW
+;
+
+560 

+	$wc¡Þd_l
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__Ō
+,
+
+561 
+wch¬_t
+ **
+__»¡riù
+ 
+__’d±r
+,
+
+562 
+__loÿË_t
+ 
+__loc
+è
+__THROW
+;
+
+566 #ifdeà
+__USE_XOPEN2K8
+
+
+569 
+wch¬_t
+ *
+	$wýýy
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__de¡
+,
+
+570 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+è
+__THROW
+;
+
+574 
+wch¬_t
+ *
+	$wýnýy
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__de¡
+,
+
+575 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__n
+)
+
+576 
+__THROW
+;
+
+583 
+__FILE
+ *
+	$ݒ_wmem¡»am
+ (
+wch¬_t
+ **
+__buæoc
+, 
+size_t
+ *
+__siz–oc
+è
+__THROW
+;
+
+586 #ià
+defšed
+ 
+__USE_ISOC95
+ || defšed 
+__USE_UNIX98
+
+
+587 
+__BEGIN_NAMESPACE_STD
+
+
+590 

+	$fwide
+ (
+__FILE
+ *
+__å
+, 
+__mode
+è
+__THROW
+;
+
+597 

+	`fw´štf
+ (
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+,
+
+598 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+, ...)
+
+604 

+	`w´štf
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+, ...)
+
+607 

+	$sw´štf
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+,
+
+608 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+, ...)
+
+609 
+__THROW
+ ;
+
+615 

+	`vfw´štf
+ (
+__FILE
+ *
+__»¡riù
+ 
+__s
+,
+
+616 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+617 
+__gnuc_va_li¡
+ 
+__¬g
+)
+
+623 

+	`vw´štf
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+624 
+__gnuc_va_li¡
+ 
+__¬g
+)
+
+628 

+	$vsw´štf
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+,
+
+629 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+630 
+__gnuc_va_li¡
+ 
+__¬g
+)
+
+631 
+__THROW
+ ;
+
+638 

+	`fwsÿnf
+ (
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+,
+
+639 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+, ...)
+
+645 

+	`wsÿnf
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+, ...)
+
+648 

+	$swsÿnf
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+,
+
+649 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+, ...)
+
+650 
+__THROW
+ ;
+
+652 #ià
+defšed
+ 
+__USE_ISOC99
+ && !defšed 
+__USE_GNU
+ \
+
+653 && (!
+defšed
+ 
+__LDBL_COMPAT
+ || !defšed 
+__REDIRECT
+) \
+
+654 && (
+defšed
+ 
+__STRICT_ANSI__
+ || defšed 
+__USE_XOPEN2K
+)
+
+655 #ifdeà
+__REDIRECT
+
+
+659 

+	`__REDIRECT
+ (
+fwsÿnf
+, (
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+,
+
+660 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+, ...),
+
+661 
+__isoc99_fwsÿnf
+)
+
+663 

+	`__REDIRECT
+ (
+wsÿnf
+, (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+, ...),
+
+664 
+__isoc99_wsÿnf
+)
+
+666 

+	`__REDIRECT_NTH
+ (
+swsÿnf
+, (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+,
+
+667 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+668 ...), 
+__isoc99_swsÿnf
+)
+
+671 

+	`__isoc99_fwsÿnf
+ (
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+,
+
+672 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+, ...);
+
+673 

+	`__isoc99_wsÿnf
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+, ...);
+
+674 

+	$__isoc99_swsÿnf
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+,
+
+675 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+, ...)
+
+676 
+__THROW
+;
+
+677 
+	#fwsÿnf
+ 
+__isoc99_fwsÿnf
+
+
+	)
+
+678 
+	#wsÿnf
+ 
+__isoc99_wsÿnf
+
+
+	)
+
+679 
+	#swsÿnf
+ 
+__isoc99_swsÿnf
+
+
+	)
+
+683 
+__END_NAMESPACE_STD
+
+
+686 #ifdeà
+__USE_ISOC99
+
+
+687 
+__BEGIN_NAMESPACE_C99
+
+
+692 

+	`vfwsÿnf
+ (
+__FILE
+ *
+__»¡riù
+ 
+__s
+,
+
+693 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+694 
+__gnuc_va_li¡
+ 
+__¬g
+)
+
+700 

+	`vwsÿnf
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+701 
+__gnuc_va_li¡
+ 
+__¬g
+)
+
+704 

+	$vswsÿnf
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+,
+
+705 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+706 
+__gnuc_va_li¡
+ 
+__¬g
+)
+
+707 
+__THROW
+ ;
+
+709 #ià!
+defšed
+ 
+__USE_GNU
+ \
+
+710 && (!
+defšed
+ 
+__LDBL_COMPAT
+ || !defšed 
+__REDIRECT
+) \
+
+711 && (
+defšed
+ 
+__STRICT_ANSI__
+ || defšed 
+__USE_XOPEN2K
+)
+
+712 #ifdeà
+__REDIRECT
+
+
+713 

+	`__REDIRECT
+ (
+vfwsÿnf
+, (
+__FILE
+ *
+__»¡riù
+ 
+__s
+,
+
+714 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+715 
+__gnuc_va_li¡
+ 
+__¬g
+), 
+__isoc99_vfwsÿnf
+)
+
+717 

+	`__REDIRECT
+ (
+vwsÿnf
+, (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+718 
+__gnuc_va_li¡
+ 
+__¬g
+), 
+__isoc99_vwsÿnf
+)
+
+720 

+	`__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 

+	`__isoc99_vfwsÿnf
+ (
+__FILE
+ *
+__»¡riù
+ 
+__s
+,
+
+726 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+727 
+__gnuc_va_li¡
+ 
+__¬g
+);
+
+728 

+	`__isoc99_vwsÿnf
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+729 
+__gnuc_va_li¡
+ 
+__¬g
+);
+
+730 

+	$__isoc99_vswsÿnf
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+,
+
+731 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+732 
+__gnuc_va_li¡
+ 
+__¬g
+è
+__THROW
+;
+
+733 
+	#vfwsÿnf
+ 
+__isoc99_vfwsÿnf
+
+
+	)
+
+734 
+	#vwsÿnf
+ 
+__isoc99_vwsÿnf
+
+
+	)
+
+735 
+	#vswsÿnf
+ 
+__isoc99_vswsÿnf
+
+
+	)
+
+739 
+__END_NAMESPACE_C99
+
+
+743 
+__BEGIN_NAMESPACE_STD
+
+
+748 
+wšt_t
+ 
+	`fg‘wc
+ (
+__FILE
+ *
+__¡»am
+);
+
+749 
+wšt_t
+ 
+	`g‘wc
+ (
+__FILE
+ *
+__¡»am
+);
+
+755 
+wšt_t
+ 
+	`g‘wch¬
+ ();
+
+762 
+wšt_t
+ 
+	`åutwc
+ (
+wch¬_t
+ 
+__wc
+, 
+__FILE
+ *
+__¡»am
+);
+
+763 
+wšt_t
+ 
+	`putwc
+ (
+wch¬_t
+ 
+__wc
+, 
+__FILE
+ *
+__¡»am
+);
+
+769 
+wšt_t
+ 
+	`putwch¬
+ (
+wch¬_t
+ 
+__wc
+);
+
+777 
+wch¬_t
+ *
+	`fg‘ws
+ (wch¬_ˆ*
+__»¡riù
+ 
+__ws
+, 
+__n
+,
+
+778 
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+);
+
+784 

+	`åutws
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__ws
+,
+
+785 
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+);
+
+792 
+wšt_t
+ 
+	`ung‘wc
+ (wšt_ˆ
+__wc
+, 
+__FILE
+ *
+__¡»am
+);
+
+793 
+__END_NAMESPACE_STD
+
+
+796 #ifdeà
+__USE_GNU
+
+
+804 
+wšt_t
+ 
+	`g‘wc_uÆocked
+ (
+__FILE
+ *
+__¡»am
+);
+
+805 
+wšt_t
+ 
+	`g‘wch¬_uÆocked
+ ();
+
+813 
+wšt_t
+ 
+	`fg‘wc_uÆocked
+ (
+__FILE
+ *
+__¡»am
+);
+
+821 
+wšt_t
+ 
+	`åutwc_uÆocked
+ (
+wch¬_t
+ 
+__wc
+, 
+__FILE
+ *
+__¡»am
+);
+
+830 
+wšt_t
+ 
+	`putwc_uÆocked
+ (
+wch¬_t
+ 
+__wc
+, 
+__FILE
+ *
+__¡»am
+);
+
+831 
+wšt_t
+ 
+	`putwch¬_uÆocked
+ (
+wch¬_t
+ 
+__wc
+);
+
+840 
+wch¬_t
+ *
+	`fg‘ws_uÆocked
+ (wch¬_ˆ*
+__»¡riù
+ 
+__ws
+, 
+__n
+,
+
+841 
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+);
+
+849 

+	`åutws_uÆocked
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__ws
+,
+
+850 
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+);
+
+854 
+__BEGIN_NAMESPACE_C99
+
+
+858 
+size_t
+ 
+	$wcsáime
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__maxsize
+,
+
+859 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+860 cÚ¡ 
+tm
+ *
+__»¡riù
+ 
+__
+è
+__THROW
+;
+
+861 
+__END_NAMESPACE_C99
+
+
+863 #ifdeà
+__USE_GNU
+
+
+864 
+	~<xloÿË.h
+>
+
+868 
+size_t
+ 
+	$wcsáime_l
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__maxsize
+,
+
+869 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+870 cÚ¡ 
+tm
+ *
+__»¡riù
+ 
+__
+,
+
+871 
+__loÿË_t
+ 
+__loc
+è
+__THROW
+;
+
+880 #ià
+defšed
+ 
+__USE_UNIX98
+ && !defšed 
+__USE_GNU
+
+
+881 
+	#__Ãed_iswxxx
+
+
+	)
+
+882 
+	~<wùy³.h
+>
+
+886 #ià
+__USE_FORTIFY_LEVEL
+ > 0 && 
+defšed
+ 
+__fÜtify_funùiÚ
+
+
+887 
+	~<b™s/wch¬2.h
+>
+
+890 #ifdeà
+__LDBL_COMPAT
+
+
+891 
+	~<b™s/wch¬-ldbl.h
+>
+
+894 
+__END_DECLS
+
+
+902 #undeà
+__Ãed_mb¡©e_t
+
+
+903 #undeà
+__Ãed_wšt_t
+
+
+	@/usr/include/asm-generic/errno.h
+
+1 #iâdeà
+_ASM_GENERIC_ERRNO_H
+
+
+2 
+	#_ASM_GENERIC_ERRNO_H
+
+
+	)
+
+4 
+	~<asm-g’”ic/”ºo-ba£.h
+>
+
+6 
+	#EDEADLK
+ 35
+
+	)
+
+7 
+	#ENAMETOOLONG
+ 36
+
+	)
+
+8 
+	#ENOLCK
+ 37
+
+	)
+
+17 
+	#ENOSYS
+ 38
+
+	)
+
+19 
+	#ENOTEMPTY
+ 39
+
+	)
+
+20 
+	#ELOOP
+ 40
+
+	)
+
+21 
+	#EWOULDBLOCK
+ 
+EAGAIN
+
+
+	)
+
+22 
+	#ENOMSG
+ 42
+
+	)
+
+23 
+	#EIDRM
+ 43
+
+	)
+
+24 
+	#ECHRNG
+ 44
+
+	)
+
+25 
+	#EL2NSYNC
+ 45
+
+	)
+
+26 
+	#EL3HLT
+ 46
+
+	)
+
+27 
+	#EL3RST
+ 47
+
+	)
+
+28 
+	#ELNRNG
+ 48
+
+	)
+
+29 
+	#EUNATCH
+ 49
+
+	)
+
+30 
+	#ENOCSI
+ 50
+
+	)
+
+31 
+	#EL2HLT
+ 51
+
+	)
+
+32 
+	#EBADE
+ 52
+
+	)
+
+33 
+	#EBADR
+ 53
+
+	)
+
+34 
+	#EXFULL
+ 54
+
+	)
+
+35 
+	#ENOANO
+ 55
+
+	)
+
+36 
+	#EBADRQC
+ 56
+
+	)
+
+37 
+	#EBADSLT
+ 57
+
+	)
+
+39 
+	#EDEADLOCK
+ 
+EDEADLK
+
+
+	)
+
+41 
+	#EBFONT
+ 59
+
+	)
+
+42 
+	#ENOSTR
+ 60
+
+	)
+
+43 
+	#ENODATA
+ 61
+
+	)
+
+44 
+	#ETIME
+ 62
+
+	)
+
+45 
+	#ENOSR
+ 63
+
+	)
+
+46 
+	#ENONET
+ 64
+
+	)
+
+47 
+	#ENOPKG
+ 65
+
+	)
+
+48 
+	#EREMOTE
+ 66
+
+	)
+
+49 
+	#ENOLINK
+ 67
+
+	)
+
+50 
+	#EADV
+ 68
+
+	)
+
+51 
+	#ESRMNT
+ 69
+
+	)
+
+52 
+	#ECOMM
+ 70
+
+	)
+
+53 
+	#EPROTO
+ 71
+
+	)
+
+54 
+	#EMULTIHOP
+ 72
+
+	)
+
+55 
+	#EDOTDOT
+ 73
+
+	)
+
+56 
+	#EBADMSG
+ 74
+
+	)
+
+57 
+	#EOVERFLOW
+ 75
+
+	)
+
+58 
+	#ENOTUNIQ
+ 76
+
+	)
+
+59 
+	#EBADFD
+ 77
+
+	)
+
+60 
+	#EREMCHG
+ 78
+
+	)
+
+61 
+	#ELIBACC
+ 79
+
+	)
+
+62 
+	#ELIBBAD
+ 80
+
+	)
+
+63 
+	#ELIBSCN
+ 81
+
+	)
+
+64 
+	#ELIBMAX
+ 82
+
+	)
+
+65 
+	#ELIBEXEC
+ 83
+
+	)
+
+66 
+	#EILSEQ
+ 84
+
+	)
+
+67 
+	#ERESTART
+ 85
+
+	)
+
+68 
+	#ESTRPIPE
+ 86
+
+	)
+
+69 
+	#EUSERS
+ 87
+
+	)
+
+70 
+	#ENOTSOCK
+ 88
+
+	)
+
+71 
+	#EDESTADDRREQ
+ 89
+
+	)
+
+72 
+	#EMSGSIZE
+ 90
+
+	)
+
+73 
+	#EPROTOTYPE
+ 91
+
+	)
+
+74 
+	#ENOPROTOOPT
+ 92
+
+	)
+
+75 
+	#EPROTONOSUPPORT
+ 93
+
+	)
+
+76 
+	#ESOCKTNOSUPPORT
+ 94
+
+	)
+
+77 
+	#EOPNOTSUPP
+ 95
+
+	)
+
+78 
+	#EPFNOSUPPORT
+ 96
+
+	)
+
+79 
+	#EAFNOSUPPORT
+ 97
+
+	)
+
+80 
+	#EADDRINUSE
+ 98
+
+	)
+
+81 
+	#EADDRNOTAVAIL
+ 99
+
+	)
+
+82 
+	#ENETDOWN
+ 100
+
+	)
+
+83 
+	#ENETUNREACH
+ 101
+
+	)
+
+84 
+	#ENETRESET
+ 102
+
+	)
+
+85 
+	#ECONNABORTED
+ 103
+
+	)
+
+86 
+	#ECONNRESET
+ 104
+
+	)
+
+87 
+	#ENOBUFS
+ 105
+
+	)
+
+88 
+	#EISCONN
+ 106
+
+	)
+
+89 
+	#ENOTCONN
+ 107
+
+	)
+
+90 
+	#ESHUTDOWN
+ 108
+
+	)
+
+91 
+	#ETOOMANYREFS
+ 109
+
+	)
+
+92 
+	#ETIMEDOUT
+ 110
+
+	)
+
+93 
+	#ECONNREFUSED
+ 111
+
+	)
+
+94 
+	#EHOSTDOWN
+ 112
+
+	)
+
+95 
+	#EHOSTUNREACH
+ 113
+
+	)
+
+96 
+	#EALREADY
+ 114
+
+	)
+
+97 
+	#EINPROGRESS
+ 115
+
+	)
+
+98 
+	#ESTALE
+ 116
+
+	)
+
+99 
+	#EUCLEAN
+ 117
+
+	)
+
+100 
+	#ENOTNAM
+ 118
+
+	)
+
+101 
+	#ENAVAIL
+ 119
+
+	)
+
+102 
+	#EISNAM
+ 120
+
+	)
+
+103 
+	#EREMOTEIO
+ 121
+
+	)
+
+104 
+	#EDQUOT
+ 122
+
+	)
+
+106 
+	#ENOMEDIUM
+ 123
+
+	)
+
+107 
+	#EMEDIUMTYPE
+ 124
+
+	)
+
+108 
+	#ECANCELED
+ 125
+
+	)
+
+109 
+	#ENOKEY
+ 126
+
+	)
+
+110 
+	#EKEYEXPIRED
+ 127
+
+	)
+
+111 
+	#EKEYREVOKED
+ 128
+
+	)
+
+112 
+	#EKEYREJECTED
+ 129
+
+	)
+
+115 
+	#EOWNERDEAD
+ 130
+
+	)
+
+116 
+	#ENOTRECOVERABLE
+ 131
+
+	)
+
+118 
+	#ERFKILL
+ 132
+
+	)
+
+120 
+	#EHWPOISON
+ 133
+
+	)
+
+	@/usr/include/asm-generic/param.h
+
+1 #iâdeà
+__ASM_GENERIC_PARAM_H
+
+
+2 
+	#__ASM_GENERIC_PARAM_H
+
+
+	)
+
+4 #iâdeà
+HZ
+
+
+5 
+	#HZ
+ 100
+
+	)
+
+8 #iâdeà
+EXEC_PAGESIZE
+
+
+9 
+	#EXEC_PAGESIZE
+ 4096
+
+	)
+
+12 #iâdeà
+NOGROUP
+
+
+13 
+	#NOGROUP
+ (-1)
+
+	)
+
+16 
+	#MAXHOSTNAMELEN
+ 64
+
+	)
+
+	@/usr/include/asm/sockios.h
+
+1 
+	~<asm-g’”ic/sockios.h
+>
+
+	@/usr/include/bits/wchar-ldbl.h
+
+19 #iâdeà
+_WCHAR_H
+
+
+23 #ià
+defšed
+ 
+__USE_ISOC95
+ || defšed 
+__USE_UNIX98
+
+
+24 
+__BEGIN_NAMESPACE_C99
+
+
+25 
+__LDBL_REDIR_DECL
+ (
+fw´štf
+);
+
+26 
+__LDBL_REDIR_DECL
+ (
+w´štf
+);
+
+27 
+__LDBL_REDIR_DECL
+ (
+sw´štf
+);
+
+28 
+__LDBL_REDIR_DECL
+ (
+vfw´štf
+);
+
+29 
+__LDBL_REDIR_DECL
+ (
+vw´štf
+);
+
+30 
+__LDBL_REDIR_DECL
+ (
+vsw´štf
+);
+
+31 #ià
+defšed
+ 
+__USE_ISOC99
+ && !defšed 
+__USE_GNU
+ \
+
+32 && !
+defšed
+ 
+	g__REDIRECT
+ \
+
+33 && (
+defšed
+ 
+	g__STRICT_ANSI__
+ || defšed 
+	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šed
+ 
+__USE_GNU
+ && !defšed 
+__REDIRECT
+ \
+
+49 && (
+defšed
+ 
+__STRICT_ANSI__
+ || defšed 
+__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šed
+ 
+__fÜtify_funùiÚ
+
+
+66 
+	$__LDBL_REDIR_DECL
+ (
+__sw´štf_chk
+)
+
+67 
+	$__LDBL_REDIR_DECL
+ (
+__vsw´štf_chk
+)
+
+68 #ià
+__USE_FORTIFY_LEVEL
+ > 1
+
+69 
+	$__LDBL_REDIR_DECL
+ (
+__fw´štf_chk
+)
+
+70 
+	$__LDBL_REDIR_DECL
+ (
+__w´štf_chk
+)
+
+71 
+	$__LDBL_REDIR_DECL
+ (
+__vfw´štf_chk
+)
+
+72 
+	$__LDBL_REDIR_DECL
+ (
+__vw´štf_chk
+)
+
+	@/usr/include/bits/wchar2.h
+
+19 #iâdeà
+_WCHAR_H
+
+
+24 
+wch¬_t
+ *
+	$__wmemýy_chk
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s1
+,
+
+25 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__s2
+, 
+size_t
+ 
+__n
+,
+
+26 
+size_t
+ 
+__ns1
+è
+__THROW
+;
+
+27 
+wch¬_t
+ *
+	`__REDIRECT_NTH
+ (
+__wmemýy_®Ÿs
+,
+
+28 (
+wch¬_t
+ *
+__»¡riù
+ 
+__s1
+,
+
+29 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__s2
+, 
+size_t
+ 
+__n
+),
+
+30 
+wmemýy
+);
+
+31 
+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¬Ç‰r
+ ("wmemcpy called with†ength biggerhan size of destination "
+
+38 
+__fÜtify_funùiÚ
+ 
+wch¬_t
+ *
+
+39 
+	`__NTH
+ (
+	$wmemýy
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s1
+, cÚ¡ wch¬_ˆ*__»¡riù 
+__s2
+,
+
+40 
+size_t
+ 
+__n
+))
+
+42 ià(
+	`__bos0
+ (
+__s1
+è!ð(
+size_t
+) -1)
+
+44 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+))
+
+45  
+	`__wmemýy_chk
+ (
+__s1
+, 
+__s2
+, 
+__n
+,
+
+46 
+	`__bos0
+ (
+__s1
+è/  (
+wch¬_t
+));
+
+48 ià(
+__n
+ > 
+	`__bos0
+ (
+__s1
+è/  (
+wch¬_t
+))
+
+49  
+	`__wmemýy_chk_w¬n
+ (
+__s1
+, 
+__s2
+, 
+__n
+,
+
+50 
+	`__bos0
+ (
+__s1
+è/  (
+wch¬_t
+));
+
+52  
+	`__wmemýy_®Ÿs
+ (
+__s1
+, 
+__s2
+, 
+__n
+);
+
+53 
+	}
+}
+
+56 
+wch¬_t
+ *
+	$__wmemmove_chk
+ (
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_ˆ*
+__s2
+,
+
+57 
+size_t
+ 
+__n
+, size_ˆ
+__ns1
+è
+__THROW
+;
+
+58 
+wch¬_t
+ *
+	`__REDIRECT_NTH
+ (
+__wmemmove_®Ÿs
+, (wch¬_ˆ*
+__s1
+,
+
+59 cÚ¡ 
+wch¬_t
+ *
+__s2
+,
+
+60 
+size_t
+ 
+__n
+), 
+wmemmove
+);
+
+61 
+wch¬_t
+ *
+	`__REDIRECT_NTH
+ (
+__wmemmove_chk_w¬n
+,
+
+62 (
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_ˆ*
+__s2
+,
+
+63 
+size_t
+ 
+__n
+, size_ˆ
+__ns1
+), 
+__wmemmove_chk
+)
+
+64 
+	`__w¬Ç‰r
+ ("wmemmove called with†ength biggerhan size of destination "
+
+67 
+__fÜtify_funùiÚ
+ 
+wch¬_t
+ *
+
+68 
+	`__NTH
+ (
+	$wmemmove
+ (
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_ˆ*
+__s2
+, 
+size_t
+ 
+__n
+))
+
+70 ià(
+	`__bos0
+ (
+__s1
+è!ð(
+size_t
+) -1)
+
+72 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+))
+
+73  
+	`__wmemmove_chk
+ (
+__s1
+, 
+__s2
+, 
+__n
+,
+
+74 
+	`__bos0
+ (
+__s1
+è/  (
+wch¬_t
+));
+
+76 ià(
+__n
+ > 
+	`__bos0
+ (
+__s1
+è/  (
+wch¬_t
+))
+
+77  
+	`__wmemmove_chk_w¬n
+ (
+__s1
+, 
+__s2
+, 
+__n
+,
+
+78 
+	`__bos0
+ (
+__s1
+è/  (
+wch¬_t
+));
+
+80  
+	`__wmemmove_®Ÿs
+ (
+__s1
+, 
+__s2
+, 
+__n
+);
+
+81 
+	}
+}
+
+84 #ifdeà
+__USE_GNU
+
+
+85 
+wch¬_t
+ *
+	$__wmempýy_chk
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s1
+,
+
+86 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__s2
+, 
+size_t
+ 
+__n
+,
+
+87 
+size_t
+ 
+__ns1
+è
+__THROW
+;
+
+88 
+wch¬_t
+ *
+	`__REDIRECT_NTH
+ (
+__wmempýy_®Ÿs
+,
+
+89 (
+wch¬_t
+ *
+__»¡riù
+ 
+__s1
+,
+
+90 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__s2
+,
+
+91 
+size_t
+ 
+__n
+), 
+wmempýy
+);
+
+92 
+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¬Ç‰r
+ ("wmempcpy called with†ength biggerhan size of destination "
+
+99 
+__fÜtify_funùiÚ
+ 
+wch¬_t
+ *
+
+100 
+	`__NTH
+ (
+	$wmempýy
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s1
+, cÚ¡ wch¬_ˆ*__»¡riù 
+__s2
+,
+
+101 
+size_t
+ 
+__n
+))
+
+103 ià(
+	`__bos0
+ (
+__s1
+è!ð(
+size_t
+) -1)
+
+105 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+))
+
+106  
+	`__wmempýy_chk
+ (
+__s1
+, 
+__s2
+, 
+__n
+,
+
+107 
+	`__bos0
+ (
+__s1
+è/  (
+wch¬_t
+));
+
+109 ià(
+__n
+ > 
+	`__bos0
+ (
+__s1
+è/  (
+wch¬_t
+))
+
+110  
+	`__wmempýy_chk_w¬n
+ (
+__s1
+, 
+__s2
+, 
+__n
+,
+
+111 
+	`__bos0
+ (
+__s1
+è/  (
+wch¬_t
+));
+
+113  
+	`__wmempýy_®Ÿs
+ (
+__s1
+, 
+__s2
+, 
+__n
+);
+
+114 
+	}
+}
+
+118 
+wch¬_t
+ *
+	$__wmem£t_chk
+ (
+wch¬_t
+ *
+__s
+, wch¬_ˆ
+__c
+, 
+size_t
+ 
+__n
+,
+
+119 
+size_t
+ 
+__ns
+è
+__THROW
+;
+
+120 
+wch¬_t
+ *
+	`__REDIRECT_NTH
+ (
+__wmem£t_®Ÿs
+, (wch¬_ˆ*
+__s
+, wch¬_ˆ
+__c
+,
+
+121 
+size_t
+ 
+__n
+), 
+wmem£t
+);
+
+122 
+wch¬_t
+ *
+	`__REDIRECT_NTH
+ (
+__wmem£t_chk_w¬n
+,
+
+123 (
+wch¬_t
+ *
+__s
+, wch¬_ˆ
+__c
+, 
+size_t
+ 
+__n
+,
+
+124 
+size_t
+ 
+__ns
+), 
+__wmem£t_chk
+)
+
+125 
+	`__w¬Ç‰r
+ ("wmemset called with†ength biggerhan size of destination "
+
+128 
+__fÜtify_funùiÚ
+ 
+wch¬_t
+ *
+
+129 
+	`__NTH
+ (
+	$wmem£t
+ (
+wch¬_t
+ *
+__s
+, wch¬_ˆ
+__c
+, 
+size_t
+ 
+__n
+))
+
+131 ià(
+	`__bos0
+ (
+__s
+è!ð(
+size_t
+) -1)
+
+133 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+))
+
+134  
+	`__wmem£t_chk
+ (
+__s
+, 
+__c
+, 
+__n
+, 
+	`__bos0
+ (__sè/  (
+wch¬_t
+));
+
+136 ià(
+__n
+ > 
+	`__bos0
+ (
+__s
+è/  (
+wch¬_t
+))
+
+137  
+	`__wmem£t_chk_w¬n
+ (
+__s
+, 
+__c
+, 
+__n
+,
+
+138 
+	`__bos0
+ (
+__s
+è/  (
+wch¬_t
+));
+
+140  
+	`__wmem£t_®Ÿs
+ (
+__s
+, 
+__c
+, 
+__n
+);
+
+141 
+	}
+}
+
+144 
+wch¬_t
+ *
+	$__wcsýy_chk
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__de¡
+,
+
+145 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+,
+
+146 
+size_t
+ 
+__n
+è
+__THROW
+;
+
+147 
+wch¬_t
+ *
+	`__REDIRECT_NTH
+ (
+__wcsýy_®Ÿs
+,
+
+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¬_ˆ*__»¡riù 
+__¤c
+))
+
+154 ià(
+	`__bos
+ (
+__de¡
+è!ð(
+size_t
+) -1)
+
+155  
+	`__wcsýy_chk
+ (
+__de¡
+, 
+__¤c
+, 
+	`__bos
+ (__de¡è/  (
+wch¬_t
+));
+
+156  
+	`__wcsýy_®Ÿs
+ (
+__de¡
+, 
+__¤c
+);
+
+157 
+	}
+}
+
+160 
+wch¬_t
+ *
+	$__wýýy_chk
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__de¡
+,
+
+161 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+,
+
+162 
+size_t
+ 
+__de¡Ën
+è
+__THROW
+;
+
+163 
+wch¬_t
+ *
+	`__REDIRECT_NTH
+ (
+__wýýy_®Ÿs
+,
+
+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¬_ˆ*__»¡riù 
+__¤c
+))
+
+170 ià(
+	`__bos
+ (
+__de¡
+è!ð(
+size_t
+) -1)
+
+171  
+	`__wýýy_chk
+ (
+__de¡
+, 
+__¤c
+, 
+	`__bos
+ (__de¡è/  (
+wch¬_t
+));
+
+172  
+	`__wýýy_®Ÿs
+ (
+__de¡
+, 
+__¤c
+);
+
+173 
+	}
+}
+
+176 
+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 
+wch¬_t
+ *
+	`__REDIRECT_NTH
+ (
+__wc¢ýy_®Ÿs
+,
+
+180 (
+wch¬_t
+ *
+__»¡riù
+ 
+__de¡
+,
+
+181 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+,
+
+182 
+size_t
+ 
+__n
+), 
+wc¢ýy
+);
+
+183 
+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_ˆ
+__de¡Ën
+), 
+__wc¢ýy_chk
+)
+
+187 
+	`__w¬Ç‰r
+ ("wcsncpy called with†ength biggerhan size of destination "
+
+190 
+__fÜtify_funùiÚ
+ 
+wch¬_t
+ *
+
+191 
+	`__NTH
+ (
+	$wc¢ýy
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__de¡
+, cÚ¡ wch¬_ˆ*__»¡riù 
+__¤c
+,
+
+192 
+size_t
+ 
+__n
+))
+
+194 ià(
+	`__bos
+ (
+__de¡
+è!ð(
+size_t
+) -1)
+
+196 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+))
+
+197  
+	`__wc¢ýy_chk
+ (
+__de¡
+, 
+__¤c
+, 
+__n
+,
+
+198 
+	`__bos
+ (
+__de¡
+è/  (
+wch¬_t
+));
+
+199 ià(
+__n
+ > 
+	`__bos
+ (
+__de¡
+è/  (
+wch¬_t
+))
+
+200  
+	`__wc¢ýy_chk_w¬n
+ (
+__de¡
+, 
+__¤c
+, 
+__n
+,
+
+201 
+	`__bos
+ (
+__de¡
+è/  (
+wch¬_t
+));
+
+203  
+	`__wc¢ýy_®Ÿs
+ (
+__de¡
+, 
+__¤c
+, 
+__n
+);
+
+204 
+	}
+}
+
+207 
+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 
+wch¬_t
+ *
+	`__REDIRECT_NTH
+ (
+__wýnýy_®Ÿs
+,
+
+211 (
+wch¬_t
+ *
+__»¡riù
+ 
+__de¡
+,
+
+212 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+,
+
+213 
+size_t
+ 
+__n
+), 
+wýnýy
+);
+
+214 
+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_ˆ
+__de¡Ën
+), 
+__wýnýy_chk
+)
+
+218 
+	`__w¬Ç‰r
+ ("wcpncpy called with†ength biggerhan size of destination "
+
+221 
+__fÜtify_funùiÚ
+ 
+wch¬_t
+ *
+
+222 
+	`__NTH
+ (
+	$wýnýy
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__de¡
+, cÚ¡ wch¬_ˆ*__»¡riù 
+__¤c
+,
+
+223 
+size_t
+ 
+__n
+))
+
+225 ià(
+	`__bos
+ (
+__de¡
+è!ð(
+size_t
+) -1)
+
+227 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+))
+
+228  
+	`__wýnýy_chk
+ (
+__de¡
+, 
+__¤c
+, 
+__n
+,
+
+229 
+	`__bos
+ (
+__de¡
+è/  (
+wch¬_t
+));
+
+230 ià(
+__n
+ > 
+	`__bos
+ (
+__de¡
+è/  (
+wch¬_t
+))
+
+231  
+	`__wýnýy_chk_w¬n
+ (
+__de¡
+, 
+__¤c
+, 
+__n
+,
+
+232 
+	`__bos
+ (
+__de¡
+è/  (
+wch¬_t
+));
+
+234  
+	`__wýnýy_®Ÿs
+ (
+__de¡
+, 
+__¤c
+, 
+__n
+);
+
+235 
+	}
+}
+
+238 
+wch¬_t
+ *
+	$__wcsÿt_chk
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__de¡
+,
+
+239 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+,
+
+240 
+size_t
+ 
+__de¡Ën
+è
+__THROW
+;
+
+241 
+wch¬_t
+ *
+	`__REDIRECT_NTH
+ (
+__wcsÿt_®Ÿs
+,
+
+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¬_ˆ*__»¡riù 
+__¤c
+))
+
+248 ià(
+	`__bos
+ (
+__de¡
+è!ð(
+size_t
+) -1)
+
+249  
+	`__wcsÿt_chk
+ (
+__de¡
+, 
+__¤c
+, 
+	`__bos
+ (__de¡è/  (
+wch¬_t
+));
+
+250  
+	`__wcsÿt_®Ÿs
+ (
+__de¡
+, 
+__¤c
+);
+
+251 
+	}
+}
+
+254 
+wch¬_t
+ *
+	$__wc¢ÿt_chk
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__de¡
+,
+
+255 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__¤c
+,
+
+256 
+size_t
+ 
+__n
+, size_ˆ
+__de¡Ën
+è
+__THROW
+;
+
+257 
+wch¬_t
+ *
+	`__REDIRECT_NTH
+ (
+__wc¢ÿt_®Ÿs
+,
+
+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¬_ˆ*__»¡riù 
+__¤c
+,
+
+264 
+size_t
+ 
+__n
+))
+
+266 ià(
+	`__bos
+ (
+__de¡
+è!ð(
+size_t
+) -1)
+
+267  
+	`__wc¢ÿt_chk
+ (
+__de¡
+, 
+__¤c
+, 
+__n
+,
+
+268 
+	`__bos
+ (
+__de¡
+è/  (
+wch¬_t
+));
+
+269  
+	`__wc¢ÿt_®Ÿs
+ (
+__de¡
+, 
+__¤c
+, 
+__n
+);
+
+270 
+	}
+}
+
+273 

+	$__sw´štf_chk
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+,
+
+274 
+__æag
+, 
+size_t
+ 
+__s_Ën
+,
+
+275 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+, ...)
+
+276 
+__THROW
+ ;
+
+278 

+	`__REDIRECT_NTH_LDBL
+ (
+__sw´štf_®Ÿs
+,
+
+279 (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+,
+
+280 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fmt
+, ...),
+
+281 
+sw´štf
+);
+
+283 #ifdeà
+__va_¬g_·ck
+
+
+284 
+__fÜtify_funùiÚ
+ 
+
+285 
+	`__NTH
+ (
+	$sw´štf
+ (
+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  
+	`__sw´štf_chk
+ (
+__s
+, 
+__n
+, 
+__USE_FORTIFY_LEVEL
+ - 1,
+
+290 
+	`__bos
+ (
+__s
+è/  (
+wch¬_t
+),
+
+291 
+__fmt
+, 
+	`__va_¬g_·ck
+ ());
+
+292  
+	`__sw´štf_®Ÿs
+ (
+__s
+, 
+__n
+, 
+__fmt
+, 
+	`__va_¬g_·ck
+ ());
+
+293 
+	}
+}
+
+294 #–ià!
+defšed
+ 
+__ýlu¥lus
+
+
+296 
+	#sw´štf
+(
+s
+, 
+n
+, ...) \
+
+297 (
+	`__bos
+ (
+s
+è!ð(
+size_t
+è-1 || 
+__USE_FORTIFY_LEVEL
+ > 1 \
+
+298 ? 
+	`__sw´štf_chk
+ (
+s
+, 
+n
+, 
+__USE_FORTIFY_LEVEL
+ - 1, \
+
+299 
+	`__bos
+ (
+s
+è/  (
+wch¬_t
+), 
+__VA_ARGS__
+) \
+
+300 : 
+	`sw´štf
+ (
+s
+, 
+n
+, 
+__VA_ARGS__
+))
+
+	)
+
+303 

+	$__vsw´štf_chk
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+,
+
+304 
+__æag
+, 
+size_t
+ 
+__s_Ën
+,
+
+305 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+306 
+__gnuc_va_li¡
+ 
+__¬g
+)
+
+307 
+__THROW
+ ;
+
+309 

+	`__REDIRECT_NTH_LDBL
+ (
+__vsw´štf_®Ÿs
+,
+
+310 (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__n
+,
+
+311 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fmt
+,
+
+312 
+__gnuc_va_li¡
+ 
+__­
+), 
+vsw´štf
+);
+
+314 
+__fÜtify_funùiÚ
+ 
+
+315 
+	`__NTH
+ (
+	$vsw´štf
+ (
+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  
+	`__vsw´štf_chk
+ (
+__s
+, 
+__n
+, 
+__USE_FORTIFY_LEVEL
+ - 1,
+
+320 
+	`__bos
+ (
+__s
+è/  (
+wch¬_t
+), 
+__fmt
+, 
+__­
+);
+
+321  
+	`__vsw´štf_®Ÿs
+ (
+__s
+, 
+__n
+, 
+__fmt
+, 
+__­
+);
+
+322 
+	}
+}
+
+325 #ià
+__USE_FORTIFY_LEVEL
+ > 1
+
+327 

+__fw´štf_chk
+ (
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+, 
+__æag
+,
+
+328 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+, ...);
+
+329 

+__w´štf_chk
+ (
+__æag
+, cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+331 

+__vfw´štf_chk
+ (
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+, 
+__æag
+,
+
+332 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+333 
+__gnuc_va_li¡
+ 
+__­
+);
+
+334 

+__vw´štf_chk
+ (
+__æag
+, cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fÜm©
+,
+
+335 
+__gnuc_va_li¡
+ 
+__­
+);
+
+337 #ifdeà
+__va_¬g_·ck
+
+
+338 
+__fÜtify_funùiÚ
+ 
+
+339 
+	$w´štf
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fmt
+, ...)
+
+341  
+	`__w´štf_chk
+ (
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+, 
+	`__va_¬g_·ck
+ ());
+
+342 
+	}
+}
+
+344 
+__fÜtify_funùiÚ
+ 
+
+345 
+	$fw´štf
+ (
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+, cÚ¡ 
+wch¬_t
+ *__»¡riù 
+__fmt
+, ...)
+
+347  
+	`__fw´štf_chk
+ (
+__¡»am
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+,
+
+348 
+	`__va_¬g_·ck
+ ());
+
+349 
+	}
+}
+
+350 #–ià!
+defšed
+ 
+__ýlu¥lus
+
+
+351 
+	#w´štf
+(...) \
+
+352 
+	`__w´štf_chk
+ (
+__USE_FORTIFY_LEVEL
+ - 1, 
+__VA_ARGS__
+)
+
+	)
+
+353 
+	#fw´štf
+(
+¡»am
+, ...) \
+
+354 
+	`__fw´štf_chk
+ (
+¡»am
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__VA_ARGS__
+)
+
+	)
+
+357 
+__fÜtify_funùiÚ
+ 
+
+358 
+	$vw´štf
+ (cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fmt
+, 
+__gnuc_va_li¡
+ 
+__­
+)
+
+360  
+	`__vw´štf_chk
+ (
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+, 
+__­
+);
+
+361 
+	}
+}
+
+363 
+__fÜtify_funùiÚ
+ 
+
+364 
+	$vfw´štf
+ (
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+,
+
+365 cÚ¡ 
+wch¬_t
+ *
+__»¡riù
+ 
+__fmt
+, 
+__gnuc_va_li¡
+ 
+__­
+)
+
+367  
+	`__vfw´štf_chk
+ (
+__¡»am
+, 
+__USE_FORTIFY_LEVEL
+ - 1, 
+__fmt
+, 
+__­
+);
+
+368 
+	}
+}
+
+372 
+wch¬_t
+ *
+	$__fg‘ws_chk
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__size
+, 
+__n
+,
+
+373 
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+è
+__wur
+;
+
+374 
+wch¬_t
+ *
+	`__REDIRECT
+ (
+__fg‘ws_®Ÿs
+,
+
+375 (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+__n
+,
+
+376 
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+), 
+fg‘ws
+è
+__wur
+;
+
+377 
+wch¬_t
+ *
+	`__REDIRECT
+ (
+__fg‘ws_chk_w¬n
+,
+
+378 (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__size
+, 
+__n
+,
+
+379 
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+), 
+__fg‘ws_chk
+)
+
+380 
+__wur
+ 
+	`__w¬Ç‰r
+ ("fgetws called with bigger sizehan†ength "
+
+383 
+__fÜtify_funùiÚ
+ 
+__wur
+ 
+wch¬_t
+ *
+
+384 
+	$fg‘ws
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+__n
+, 
+__FILE
+ *__»¡riù 
+__¡»am
+)
+
+386 ià(
+	`__bos
+ (
+__s
+è!ð(
+size_t
+) -1)
+
+388 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+) || __n <= 0)
+
+389  
+	`__fg‘ws_chk
+ (
+__s
+, 
+	`__bos
+ (__sè/  (
+wch¬_t
+),
+
+390 
+__n
+, 
+__¡»am
+);
+
+392 ià((
+size_t
+è
+__n
+ > 
+	`__bos
+ (
+__s
+è/  (
+wch¬_t
+))
+
+393  
+	`__fg‘ws_chk_w¬n
+ (
+__s
+, 
+	`__bos
+ (__sè/  (
+wch¬_t
+),
+
+394 
+__n
+, 
+__¡»am
+);
+
+396  
+	`__fg‘ws_®Ÿs
+ (
+__s
+, 
+__n
+, 
+__¡»am
+);
+
+397 
+	}
+}
+
+399 #ifdeà
+__USE_GNU
+
+
+400 
+wch¬_t
+ *
+	$__fg‘ws_uÆocked_chk
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__size
+,
+
+401 
+__n
+, 
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+)
+
+402 
+__wur
+;
+
+403 
+wch¬_t
+ *
+	`__REDIRECT
+ (
+__fg‘ws_uÆocked_®Ÿs
+,
+
+404 (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+__n
+,
+
+405 
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+), 
+fg‘ws_uÆocked
+)
+
+406 
+__wur
+;
+
+407 
+wch¬_t
+ *
+	`__REDIRECT
+ (
+__fg‘ws_uÆocked_chk_w¬n
+,
+
+408 (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+size_t
+ 
+__size
+, 
+__n
+,
+
+409 
+__FILE
+ *
+__»¡riù
+ 
+__¡»am
+),
+
+410 
+__fg‘ws_uÆocked_chk
+)
+
+411 
+__wur
+ 
+	`__w¬Ç‰r
+ ("fgetws_unlocked called with bigger sizehan†ength "
+
+414 
+__fÜtify_funùiÚ
+ 
+__wur
+ 
+wch¬_t
+ *
+
+415 
+	$fg‘ws_uÆocked
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__s
+, 
+__n
+, 
+__FILE
+ *__»¡riù 
+__¡»am
+)
+
+417 ià(
+	`__bos
+ (
+__s
+è!ð(
+size_t
+) -1)
+
+419 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__n
+) || __n <= 0)
+
+420  
+	`__fg‘ws_uÆocked_chk
+ (
+__s
+, 
+	`__bos
+ (__sè/  (
+wch¬_t
+),
+
+421 
+__n
+, 
+__¡»am
+);
+
+423 ià((
+size_t
+è
+__n
+ > 
+	`__bos
+ (
+__s
+è/  (
+wch¬_t
+))
+
+424  
+	`__fg‘ws_uÆocked_chk_w¬n
+ (
+__s
+, 
+	`__bos
+ (__sè/  (
+wch¬_t
+),
+
+425 
+__n
+, 
+__¡»am
+);
+
+427  
+	`__fg‘ws_uÆocked_®Ÿs
+ (
+__s
+, 
+__n
+, 
+__¡»am
+);
+
+428 
+	}
+}
+
+432 
+size_t
+ 
+	$__wütomb_chk
+ (*
+__»¡riù
+ 
+__s
+, 
+wch¬_t
+ 
+__wch¬
+,
+
+433 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__p
+,
+
+434 
+size_t
+ 
+__buæ’
+è
+__THROW
+ 
+__wur
+;
+
+435 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__wütomb_®Ÿs
+,
+
+436 (*
+__»¡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
+ (*
+__»¡riù
+ 
+__s
+, 
+wch¬_t
+ 
+__wch¬
+,
+
+441 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+))
+
+446 
+	#__WCHAR_MB_LEN_MAX
+ 16
+
+	)
+
+447 #ià
+defšed
+ 
+MB_LEN_MAX
+ && MB_LEN_MAX !ð
+__WCHAR_MB_LEN_MAX
+
+
+450 ià(
+	`__bos
+ (
+__s
+è!ð(
+size_t
+è-1 && 
+__WCHAR_MB_LEN_MAX
+ > __bos (__s))
+
+451  
+	`__wütomb_chk
+ (
+__s
+, 
+__wch¬
+, 
+__ps
+, 
+	`__bos
+ (__s));
+
+452  
+	`__wütomb_®Ÿs
+ (
+__s
+, 
+__wch¬
+, 
+__ps
+);
+
+453 
+	}
+}
+
+456 
+size_t
+ 
+	$__mb¤towcs_chk
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__d¡
+,
+
+457 cÚ¡ **
+__»¡riù
+ 
+__¤c
+,
+
+458 
+size_t
+ 
+__Ën
+, 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+,
+
+459 
+size_t
+ 
+__d¡Ën
+è
+__THROW
+;
+
+460 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__mb¤towcs_®Ÿs
+,
+
+461 (
+wch¬_t
+ *
+__»¡riù
+ 
+__d¡
+,
+
+462 cÚ¡ **
+__»¡riù
+ 
+__¤c
+,
+
+463 
+size_t
+ 
+__Ën
+, 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+),
+
+464 
+mb¤towcs
+);
+
+465 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__mb¤towcs_chk_w¬n
+,
+
+466 (
+wch¬_t
+ *
+__»¡riù
+ 
+__d¡
+,
+
+467 cÚ¡ **
+__»¡riù
+ 
+__¤c
+,
+
+468 
+size_t
+ 
+__Ën
+, 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+,
+
+469 
+size_t
+ 
+__d¡Ën
+), 
+__mb¤towcs_chk
+)
+
+470 
+	`__w¬Ç‰r
+ ("mbsrtowcs called with dst buffer smallerhan†en "
+
+473 
+__fÜtify_funùiÚ
+ 
+size_t
+
+
+474 
+	`__NTH
+ (
+	$mb¤towcs
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__d¡
+, cÚ¡ **__»¡riù 
+__¤c
+,
+
+475 
+size_t
+ 
+__Ën
+, 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+))
+
+477 ià(
+	`__bos
+ (
+__d¡
+è!ð(
+size_t
+) -1)
+
+479 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__Ën
+))
+
+480  
+	`__mb¤towcs_chk
+ (
+__d¡
+, 
+__¤c
+, 
+__Ën
+, 
+__ps
+,
+
+481 
+	`__bos
+ (
+__d¡
+è/  (
+wch¬_t
+));
+
+483 ià(
+__Ën
+ > 
+	`__bos
+ (
+__d¡
+è/  (
+wch¬_t
+))
+
+484  
+	`__mb¤towcs_chk_w¬n
+ (
+__d¡
+, 
+__¤c
+, 
+__Ën
+, 
+__ps
+,
+
+485 
+	`__bos
+ (
+__d¡
+è/  (
+wch¬_t
+));
+
+487  
+	`__mb¤towcs_®Ÿs
+ (
+__d¡
+, 
+__¤c
+, 
+__Ën
+, 
+__ps
+);
+
+488 
+	}
+}
+
+491 
+size_t
+ 
+	$__wc¤tombs_chk
+ (*
+__»¡riù
+ 
+__d¡
+,
+
+492 cÚ¡ 
+wch¬_t
+ **
+__»¡riù
+ 
+__¤c
+,
+
+493 
+size_t
+ 
+__Ën
+, 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+,
+
+494 
+size_t
+ 
+__d¡Ën
+è
+__THROW
+;
+
+495 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__wc¤tombs_®Ÿs
+,
+
+496 (*
+__»¡riù
+ 
+__d¡
+,
+
+497 cÚ¡ 
+wch¬_t
+ **
+__»¡riù
+ 
+__¤c
+,
+
+498 
+size_t
+ 
+__Ën
+, 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+),
+
+499 
+wc¤tombs
+);
+
+500 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__wc¤tombs_chk_w¬n
+,
+
+501 (*
+__»¡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¬Ç‰r
+ ("wcsrtombs called with dst buffer smallerhan†en");
+
+507 
+__fÜtify_funùiÚ
+ 
+size_t
+
+
+508 
+	`__NTH
+ (
+	$wc¤tombs
+ (*
+__»¡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žtš_cÚ¡ªt_p
+ (
+__Ën
+))
+
+514  
+	`__wc¤tombs_chk
+ (
+__d¡
+, 
+__¤c
+, 
+__Ën
+, 
+__ps
+, 
+	`__bos
+ (__dst));
+
+516 ià(
+__Ën
+ > 
+	`__bos
+ (
+__d¡
+))
+
+517  
+	`__wc¤tombs_chk_w¬n
+ (
+__d¡
+, 
+__¤c
+, 
+__Ën
+, 
+__ps
+, 
+	`__bos
+ (__dst));
+
+519  
+	`__wc¤tombs_®Ÿs
+ (
+__d¡
+, 
+__¤c
+, 
+__Ën
+, 
+__ps
+);
+
+520 
+	}
+}
+
+523 #ifdeà
+__USE_GNU
+
+
+524 
+size_t
+ 
+	$__mb¢¹owcs_chk
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__d¡
+,
+
+525 cÚ¡ **
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__nmc
+,
+
+526 
+size_t
+ 
+__Ën
+, 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+,
+
+527 
+size_t
+ 
+__d¡Ën
+è
+__THROW
+;
+
+528 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__mb¢¹owcs_®Ÿs
+,
+
+529 (
+wch¬_t
+ *
+__»¡riù
+ 
+__d¡
+,
+
+530 cÚ¡ **
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__nmc
+,
+
+531 
+size_t
+ 
+__Ën
+, 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+),
+
+532 
+mb¢¹owcs
+);
+
+533 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__mb¢¹owcs_chk_w¬n
+,
+
+534 (
+wch¬_t
+ *
+__»¡riù
+ 
+__d¡
+,
+
+535 cÚ¡ **
+__»¡riù
+ 
+__¤c
+, 
+size_t
+ 
+__nmc
+,
+
+536 
+size_t
+ 
+__Ën
+, 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+,
+
+537 
+size_t
+ 
+__d¡Ën
+), 
+__mb¢¹owcs_chk
+)
+
+538 
+	`__w¬Ç‰r
+ ("mbsnrtowcs called with dst buffer smallerhan†en "
+
+541 
+__fÜtify_funùiÚ
+ 
+size_t
+
+
+542 
+	`__NTH
+ (
+	$mb¢¹owcs
+ (
+wch¬_t
+ *
+__»¡riù
+ 
+__d¡
+, cÚ¡ **__»¡riù 
+__¤c
+,
+
+543 
+size_t
+ 
+__nmc
+, size_ˆ
+__Ën
+, 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+))
+
+545 ià(
+	`__bos
+ (
+__d¡
+è!ð(
+size_t
+) -1)
+
+547 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__Ën
+))
+
+548  
+	`__mb¢¹owcs_chk
+ (
+__d¡
+, 
+__¤c
+, 
+__nmc
+, 
+__Ën
+, 
+__ps
+,
+
+549 
+	`__bos
+ (
+__d¡
+è/  (
+wch¬_t
+));
+
+551 ià(
+__Ën
+ > 
+	`__bos
+ (
+__d¡
+è/  (
+wch¬_t
+))
+
+552  
+	`__mb¢¹owcs_chk_w¬n
+ (
+__d¡
+, 
+__¤c
+, 
+__nmc
+, 
+__Ën
+, 
+__ps
+,
+
+553 
+	`__bos
+ (
+__d¡
+è/  (
+wch¬_t
+));
+
+555  
+	`__mb¢¹owcs_®Ÿs
+ (
+__d¡
+, 
+__¤c
+, 
+__nmc
+, 
+__Ën
+, 
+__ps
+);
+
+556 
+	}
+}
+
+559 
+size_t
+ 
+	$__wc¢¹ombs_chk
+ (*
+__»¡riù
+ 
+__d¡
+,
+
+560 cÚ¡ 
+wch¬_t
+ **
+__»¡riù
+ 
+__¤c
+,
+
+561 
+size_t
+ 
+__nwc
+, size_ˆ
+__Ën
+,
+
+562 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+, 
+size_t
+ 
+__d¡Ën
+)
+
+563 
+__THROW
+;
+
+564 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__wc¢¹ombs_®Ÿs
+,
+
+565 (*
+__»¡riù
+ 
+__d¡
+,
+
+566 cÚ¡ 
+wch¬_t
+ **
+__»¡riù
+ 
+__¤c
+,
+
+567 
+size_t
+ 
+__nwc
+, size_ˆ
+__Ën
+,
+
+568 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+), 
+wc¢¹ombs
+);
+
+569 
+size_t
+ 
+	`__REDIRECT_NTH
+ (
+__wc¢¹ombs_chk_w¬n
+,
+
+570 (*
+__»¡riù
+ 
+__d¡
+,
+
+571 cÚ¡ 
+wch¬_t
+ **
+__»¡riù
+ 
+__¤c
+,
+
+572 
+size_t
+ 
+__nwc
+, size_ˆ
+__Ën
+,
+
+573 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+,
+
+574 
+size_t
+ 
+__d¡Ën
+), 
+__wc¢¹ombs_chk
+)
+
+575 
+	`__w¬Ç‰r
+ ("wcsnrtombs called with dst buffer smallerhan†en");
+
+577 
+__fÜtify_funùiÚ
+ 
+size_t
+
+
+578 
+	`__NTH
+ (
+	$wc¢¹ombs
+ (*
+__»¡riù
+ 
+__d¡
+, cÚ¡ 
+wch¬_t
+ **__»¡riù 
+__¤c
+,
+
+579 
+size_t
+ 
+__nwc
+, size_ˆ
+__Ën
+, 
+mb¡©e_t
+ *
+__»¡riù
+ 
+__ps
+))
+
+581 ià(
+	`__bos
+ (
+__d¡
+è!ð(
+size_t
+) -1)
+
+583 ià(!
+	`__bužtš_cÚ¡ªt_p
+ (
+__Ën
+))
+
+584  
+	`__wc¢¹ombs_chk
+ (
+__d¡
+, 
+__¤c
+, 
+__nwc
+, 
+__Ën
+, 
+__ps
+,
+
+585 
+	`__bos
+ (
+__d¡
+));
+
+587 ià(
+__Ën
+ > 
+	`__bos
+ (
+__d¡
+))
+
+588  
+	`__wc¢¹ombs_chk_w¬n
+ (
+__d¡
+, 
+__¤c
+, 
+__nwc
+, 
+__Ën
+, 
+__ps
+,
+
+589 
+	`__bos
+ (
+__d¡
+));
+
+591  
+	`__wc¢¹ombs_®Ÿs
+ (
+__d¡
+, 
+__¤c
+, 
+__nwc
+, 
+__Ën
+, 
+__ps
+);
+
+592 
+	}
+}
+
+	@/usr/include/wctype.h
+
+23 #iâdeà
+_WCTYPE_H
+
+
+25 
+	~<ã©u»s.h
+>
+
+26 
+	~<b™s/ty³s.h
+>
+
+28 #iâdeà
+__Ãed_iswxxx
+
+
+29 
+	#_WCTYPE_H
+ 1
+
+	)
+
+32 
+	#__Ãed_wšt_t
+
+
+	)
+
+33 
+	~<wch¬.h
+>
+
+37 #iâdeà
+WEOF
+
+
+38 
+	#WEOF
+ (0xffffffffu)
+
+	)
+
+41 #undeà
+__Ãed_iswxxx
+
+
+46 #iâdeà
+__iswxxx_defšed
+
+
+47 
+	#__iswxxx_defšed
+ 1
+
+	)
+
+49 
+__BEGIN_NAMESPACE_C99
+
+
+52 
+	twùy³_t
+;
+
+53 
+	g__END_NAMESPACE_C99
+
+
+55 #iâdeà
+_ISwb™
+
+
+60 
+	~<’dŸn.h
+>
+
+61 #ià
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+62 
+	#_ISwb™
+(
+b™
+è(1 << (b™))
+
+	)
+
+64 
+	#_ISwb™
+(
+b™
+) \
+
+65 ((
+b™
+) < 8 ? () ((1UL << (bit)) << 24) \
+
+66 : ((
+b™
+) < 16 ? () ((1UL << (bit)) << 8) \
+
+67 : ((
+b™
+) < 24 ? () ((1UL << (bit)) >> 8) \
+
+68 : (è((1UL << (
+b™
+)è>> 24))))
+
+	)
+
+73 
+	m__ISwuµ”
+ = 0,
+
+74 
+	m__ISwlow”
+ = 1,
+
+75 
+	m__ISw®pha
+ = 2,
+
+76 
+	m__ISwdig™
+ = 3,
+
+77 
+	m__ISwxdig™
+ = 4,
+
+78 
+	m__ISw¥aû
+ = 5,
+
+79 
+	m__ISw´št
+ = 6,
+
+80 
+	m__ISwg¿ph
+ = 7,
+
+81 
+	m__ISwbÏnk
+ = 8,
+
+82 
+	m__ISwúŒl
+ = 9,
+
+83 
+	m__ISwpunù
+ = 10,
+
+84 
+	m__ISw®num
+ = 11,
+
+86 
+	m_ISwuµ”
+ = 
+_ISwb™
+ (
+__ISwuµ”
+),
+
+87 
+	m_ISwlow”
+ = 
+_ISwb™
+ (
+__ISwlow”
+),
+
+88 
+	m_ISw®pha
+ = 
+_ISwb™
+ (
+__ISw®pha
+),
+
+89 
+	m_ISwdig™
+ = 
+_ISwb™
+ (
+__ISwdig™
+),
+
+90 
+	m_ISwxdig™
+ = 
+_ISwb™
+ (
+__ISwxdig™
+),
+
+91 
+	m_ISw¥aû
+ = 
+_ISwb™
+ (
+__ISw¥aû
+),
+
+92 
+	m_ISw´št
+ = 
+_ISwb™
+ (
+__ISw´št
+),
+
+93 
+	m_ISwg¿ph
+ = 
+_ISwb™
+ (
+__ISwg¿ph
+),
+
+94 
+	m_ISwbÏnk
+ = 
+_ISwb™
+ (
+__ISwbÏnk
+),
+
+95 
+	m_ISwúŒl
+ = 
+_ISwb™
+ (
+__ISwúŒl
+),
+
+96 
+	m_ISwpunù
+ = 
+_ISwb™
+ (
+__ISwpunù
+),
+
+97 
+	m_ISw®num
+ = 
+_ISwb™
+ (
+__ISw®num
+)
+
+102 
+__BEGIN_DECLS
+
+
+104 
+__BEGIN_NAMESPACE_C99
+
+
+111 

+	$isw®num
+ (
+wšt_t
+ 
+__wc
+è
+__THROW
+;
+
+117 

+	$isw®pha
+ (
+wšt_t
+ 
+__wc
+è
+__THROW
+;
+
+120 

+	$iswúŒl
+ (
+wšt_t
+ 
+__wc
+è
+__THROW
+;
+
+124 

+	$iswdig™
+ (
+wšt_t
+ 
+__wc
+è
+__THROW
+;
+
+128 

+	$iswg¿ph
+ (
+wšt_t
+ 
+__wc
+è
+__THROW
+;
+
+133 

+	$iswlow”
+ (
+wšt_t
+ 
+__wc
+è
+__THROW
+;
+
+136 

+	$isw´št
+ (
+wšt_t
+ 
+__wc
+è
+__THROW
+;
+
+141 

+	$iswpunù
+ (
+wšt_t
+ 
+__wc
+è
+__THROW
+;
+
+146 

+	$isw¥aû
+ (
+wšt_t
+ 
+__wc
+è
+__THROW
+;
+
+151 

+	$iswuµ”
+ (
+wšt_t
+ 
+__wc
+è
+__THROW
+;
+
+156 

+	$iswxdig™
+ (
+wšt_t
+ 
+__wc
+è
+__THROW
+;
+
+161 #ifdeà
+__USE_ISOC99
+
+
+162 

+	$iswbÏnk
+ (
+wšt_t
+ 
+__wc
+è
+__THROW
+;
+
+171 
+wùy³_t
+ 
+	$wùy³
+ (cÚ¡ *
+__´Ý”ty
+è
+__THROW
+;
+
+175 

+	$iswùy³
+ (
+wšt_t
+ 
+__wc
+, 
+wùy³_t
+ 
+__desc
+è
+__THROW
+;
+
+176 
+__END_NAMESPACE_C99
+
+
+183 
+__BEGIN_NAMESPACE_C99
+
+
+186 cÚ¡ 
+	t__št32_t
+ *
+	twù¿ns_t
+;
+
+187 
+__END_NAMESPACE_C99
+
+
+188 #ifdeà
+__USE_GNU
+
+
+189 
+	$__USING_NAMESPACE_C99
+(
+wù¿ns_t
+)
+
+192 
+__BEGIN_NAMESPACE_C99
+
+
+194 
+wšt_t
+ 
+	$towlow”
+ (
+wšt_t
+ 
+__wc
+è
+__THROW
+;
+
+197 
+wšt_t
+ 
+	$towuµ”
+ (
+wšt_t
+ 
+__wc
+è
+__THROW
+;
+
+198 
+__END_NAMESPACE_C99
+
+
+200 
+__END_DECLS
+
+
+207 #ifdeà
+_WCTYPE_H
+
+
+213 
+__BEGIN_DECLS
+
+
+215 
+__BEGIN_NAMESPACE_C99
+
+
+218 
+wù¿ns_t
+ 
+	$wù¿ns
+ (cÚ¡ *
+__´Ý”ty
+è
+__THROW
+;
+
+221 
+wšt_t
+ 
+	$towù¿ns
+ (
+wšt_t
+ 
+__wc
+, 
+wù¿ns_t
+ 
+__desc
+è
+__THROW
+;
+
+222 
+__END_NAMESPACE_C99
+
+
+224 #ifdeà
+__USE_XOPEN2K8
+
+
+226 
+	~<xloÿË.h
+>
+
+230 

+	$isw®num_l
+ (
+wšt_t
+ 
+__wc
+, 
+__loÿË_t
+ 
+__loÿË
+è
+__THROW
+;
+
+236 

+	$isw®pha_l
+ (
+wšt_t
+ 
+__wc
+, 
+__loÿË_t
+ 
+__loÿË
+è
+__THROW
+;
+
+239 

+	$iswúŒl_l
+ (
+wšt_t
+ 
+__wc
+, 
+__loÿË_t
+ 
+__loÿË
+è
+__THROW
+;
+
+243 

+	$iswdig™_l
+ (
+wšt_t
+ 
+__wc
+, 
+__loÿË_t
+ 
+__loÿË
+è
+__THROW
+;
+
+247 

+	$iswg¿ph_l
+ (
+wšt_t
+ 
+__wc
+, 
+__loÿË_t
+ 
+__loÿË
+è
+__THROW
+;
+
+252 

+	$iswlow”_l
+ (
+wšt_t
+ 
+__wc
+, 
+__loÿË_t
+ 
+__loÿË
+è
+__THROW
+;
+
+255 

+	$isw´št_l
+ (
+wšt_t
+ 
+__wc
+, 
+__loÿË_t
+ 
+__loÿË
+è
+__THROW
+;
+
+260 

+	$iswpunù_l
+ (
+wšt_t
+ 
+__wc
+, 
+__loÿË_t
+ 
+__loÿË
+è
+__THROW
+;
+
+265 

+	$isw¥aû_l
+ (
+wšt_t
+ 
+__wc
+, 
+__loÿË_t
+ 
+__loÿË
+è
+__THROW
+;
+
+270 

+	$iswuµ”_l
+ (
+wšt_t
+ 
+__wc
+, 
+__loÿË_t
+ 
+__loÿË
+è
+__THROW
+;
+
+275 

+	$iswxdig™_l
+ (
+wšt_t
+ 
+__wc
+, 
+__loÿË_t
+ 
+__loÿË
+è
+__THROW
+;
+
+280 

+	$iswbÏnk_l
+ (
+wšt_t
+ 
+__wc
+, 
+__loÿË_t
+ 
+__loÿË
+è
+__THROW
+;
+
+284 
+wùy³_t
+ 
+	$wùy³_l
+ (cÚ¡ *
+__´Ý”ty
+, 
+__loÿË_t
+ 
+__loÿË
+)
+
+285 
+__THROW
+;
+
+289 

+	$iswùy³_l
+ (
+wšt_t
+ 
+__wc
+, 
+wùy³_t
+ 
+__desc
+, 
+__loÿË_t
+ 
+__loÿË
+)
+
+290 
+__THROW
+;
+
+298 
+wšt_t
+ 
+	$towlow”_l
+ (
+wšt_t
+ 
+__wc
+, 
+__loÿË_t
+ 
+__loÿË
+è
+__THROW
+;
+
+301 
+wšt_t
+ 
+	$towuµ”_l
+ (
+wšt_t
+ 
+__wc
+, 
+__loÿË_t
+ 
+__loÿË
+è
+__THROW
+;
+
+305 
+wù¿ns_t
+ 
+	$wù¿ns_l
+ (cÚ¡ *
+__´Ý”ty
+, 
+__loÿË_t
+ 
+__loÿË
+)
+
+306 
+__THROW
+;
+
+309 
+wšt_t
+ 
+	$towù¿ns_l
+ (
+wšt_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 
+	#_ASM_GENERIC_ERRNO_BASE_H
+
+
+	)
+
+4 
+	#EPERM
+ 1
+
+	)
+
+5 
+	#ENOENT
+ 2
+
+	)
+
+6 
+	#ESRCH
+ 3
+
+	)
+
+7 
+	#EINTR
+ 4
+
+	)
+
+8 
+	#EIO
+ 5
+
+	)
+
+9 
+	#ENXIO
+ 6
+
+	)
+
+10 
+	#E2BIG
+ 7
+
+	)
+
+11 
+	#ENOEXEC
+ 8
+
+	)
+
+12 
+	#EBADF
+ 9
+
+	)
+
+13 
+	#ECHILD
+ 10
+
+	)
+
+14 
+	#EAGAIN
+ 11
+
+	)
+
+15 
+	#ENOMEM
+ 12
+
+	)
+
+16 
+	#EACCES
+ 13
+
+	)
+
+17 
+	#EFAULT
+ 14
+
+	)
+
+18 
+	#ENOTBLK
+ 15
+
+	)
+
+19 
+	#EBUSY
+ 16
+
+	)
+
+20 
+	#EEXIST
+ 17
+
+	)
+
+21 
+	#EXDEV
+ 18
+
+	)
+
+22 
+	#ENODEV
+ 19
+
+	)
+
+23 
+	#ENOTDIR
+ 20
+
+	)
+
+24 
+	#EISDIR
+ 21
+
+	)
+
+25 
+	#EINVAL
+ 22
+
+	)
+
+26 
+	#ENFILE
+ 23
+
+	)
+
+27 
+	#EMFILE
+ 24
+
+	)
+
+28 
+	#ENOTTY
+ 25
+
+	)
+
+29 
+	#ETXTBSY
+ 26
+
+	)
+
+30 
+	#EFBIG
+ 27
+
+	)
+
+31 
+	#ENOSPC
+ 28
+
+	)
+
+32 
+	#ESPIPE
+ 29
+
+	)
+
+33 
+	#EROFS
+ 30
+
+	)
+
+34 
+	#EMLINK
+ 31
+
+	)
+
+35 
+	#EPIPE
+ 32
+
+	)
+
+36 
+	#EDOM
+ 33
+
+	)
+
+37 
+	#ERANGE
+ 34
+
+	)
+
+	@/usr/include/asm-generic/sockios.h
+
+1 #iâdeà
+__ASM_GENERIC_SOCKIOS_H
+
+
+2 
+	#__ASM_GENERIC_SOCKIOS_H
+
+
+	)
+
+5 
+	#FIOSETOWN
+ 0x8901
+
+	)
+
+6 
+	#SIOCSPGRP
+ 0x8902
+
+	)
+
+7 
+	#FIOGETOWN
+ 0x8903
+
+	)
+
+8 
+	#SIOCGPGRP
+ 0x8904
+
+	)
+
+9 
+	#SIOCATMARK
+ 0x8905
+
+	)
+
+10 
+	#SIOCGSTAMP
+ 0x8906
+
+	)
+
+11 
+	#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
diff --git a/common/vnf_common/app.h b/common/vnf_common/app.h
index 2af62f11..51c40c97 100644
--- a/common/vnf_common/app.h
+++ b/common/vnf_common/app.h
@@ -33,7 +33,7 @@
 #include "pipeline.h"
 
 #define APP_PARAM_NAME_SIZE                      PIPELINE_NAME_SIZE
-#define APP_LINK_PCI_BDF_SIZE                    16
+#define APP_LINK_PCI_BDF_SIZE                    32
 struct app_link_params *fdir_p_link;
 struct app_mempool_params {
 	char *name;
@@ -234,7 +234,7 @@ struct app_thread_pipeline_data {
 };
 
 #ifndef APP_MAX_THREAD_PIPELINES
-#define APP_MAX_THREAD_PIPELINES                 16
+#define APP_MAX_THREAD_PIPELINES                 32
 #endif
 
 #ifndef APP_THREAD_TIMER_PERIOD
@@ -262,7 +262,7 @@ struct app_thread_data {
 };
 
 #ifndef APP_MAX_LINKS
-#define APP_MAX_LINKS                            16
+#define APP_MAX_LINKS                            32
 #endif
 
 struct app_eal_params {
@@ -386,11 +386,11 @@ struct app_eal_params {
 #define APP_MAX_PKTQ_TM                          APP_MAX_LINKS
 
 #ifndef APP_MAX_PKTQ_SOURCE
-#define APP_MAX_PKTQ_SOURCE                      16
+#define APP_MAX_PKTQ_SOURCE                      32
 #endif
 
 #ifndef APP_MAX_PKTQ_SINK
-#define APP_MAX_PKTQ_SINK                        16
+#define APP_MAX_PKTQ_SINK                        32
 #endif
 
 #ifndef APP_MAX_MSGQ
diff --git a/common/vnf_common/pipeline_be.h b/common/vnf_common/pipeline_be.h
index 006a415e..fad6b25f 100644
--- a/common/vnf_common/pipeline_be.h
+++ b/common/vnf_common/pipeline_be.h
@@ -183,31 +183,31 @@ pipeline_port_out_params_get_ops(struct pipeline_port_out_params  *p)
 }
 
 #ifndef PIPELINE_NAME_SIZE
-#define PIPELINE_NAME_SIZE                       32
+#define PIPELINE_NAME_SIZE                       64
 #endif
 
 #ifndef PIPELINE_MAX_PORT_IN
-#define PIPELINE_MAX_PORT_IN                     16
+#define PIPELINE_MAX_PORT_IN                     64
 #endif
 
 #ifndef PIPELINE_MAX_PORT_OUT
-#define PIPELINE_MAX_PORT_OUT                    16
+#define PIPELINE_MAX_PORT_OUT                    64
 #endif
 
 #ifndef PIPELINE_MAX_TABLES
-#define PIPELINE_MAX_TABLES                      16
+#define PIPELINE_MAX_TABLES                      64
 #endif
 
 #ifndef PIPELINE_MAX_MSGQ_IN
-#define PIPELINE_MAX_MSGQ_IN                     16
+#define PIPELINE_MAX_MSGQ_IN                     64
 #endif
 
 #ifndef PIPELINE_MAX_MSGQ_OUT
-#define PIPELINE_MAX_MSGQ_OUT                    16
+#define PIPELINE_MAX_MSGQ_OUT                    64
 #endif
 
 #ifndef PIPELINE_MAX_ARGS
-#define PIPELINE_MAX_ARGS                        32
+#define PIPELINE_MAX_ARGS                        64
 #endif
 
 struct pipeline_params {